File indexing completed on 2024-05-12 05:22:24

0001 /*
0002  * SPDX-FileCopyrightText: 2019 David Barchiesi <david@barchie.si>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005  */
0006 
0007 #pragma once
0008 
0009 #include "kgapidrive_export.h"
0010 
0011 #include "searchquery.h"
0012 
0013 #include <QSharedDataPointer>
0014 #include <QVariant>
0015 
0016 namespace KGAPI2
0017 {
0018 namespace Drive
0019 {
0020 
0021 /**
0022  * TeamdriveSearchQuery class allows simply building even complex team drive search queries
0023  * for TeamdriveFetchJob.
0024  *
0025  * See https://developers.google.com/drive/web/search-parameters for allowed
0026  * combinations of fields, compare operators, and value types.
0027  *
0028  * @since 2.3
0029  */
0030 class KGAPIDRIVE_EXPORT TeamdriveSearchQuery : public SearchQuery
0031 {
0032 public:
0033     enum Field { Name, CreatedTime, MemberCount, OrganizerCount };
0034 
0035     using SearchQuery::SearchQuery;
0036 
0037     using SearchQuery::addQuery;
0038     void addQuery(Field field, CompareOperator op, const QVariant &value);
0039 
0040 private:
0041     QString fieldToString(Field field);
0042     QString valueToString(TeamdriveSearchQuery::Field field, const QVariant &var);
0043 };
0044 }
0045 }