File indexing completed on 2024-05-12 05:22:18
0001 /* 0002 * This file is part of LibKGAPI library 0003 * 0004 * SPDX-FileCopyrightText: 2013 Daniel Vrátil <dvratil@redhat.com> 0005 * 0006 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #include "driveservice.h" 0010 #include "utils.h" 0011 0012 #include <QUrlQuery> 0013 0014 namespace KGAPI2 0015 { 0016 0017 namespace Private 0018 { 0019 static const QUrl GoogleApisUrl(QStringLiteral("https://www.googleapis.com")); 0020 static const QString AppsBasePath(QStringLiteral("/drive/v2/about")); 0021 static const QString FilesBasePath(QStringLiteral("/drive/v2/files")); 0022 static const QString ChangeBasePath(QStringLiteral("/drive/v2/changes")); 0023 static const QString DrivesBasePath(QStringLiteral("/drive/v2/drives")); 0024 static const QString TeamdriveBasePath(QStringLiteral("/drive/v2/teamdrives")); 0025 } 0026 0027 namespace DriveService 0028 { 0029 0030 QUrl fetchAboutUrl(bool includeSubscribed, qlonglong maxChangeIdCount, qlonglong startChangeId) 0031 { 0032 QUrl url(Private::GoogleApisUrl); 0033 url.setPath(Private::AppsBasePath); 0034 QUrlQuery query(url); 0035 query.addQueryItem(QStringLiteral("includeSubscribed"), Utils::bool2Str(includeSubscribed)); 0036 if (maxChangeIdCount > 0) { 0037 query.addQueryItem(QStringLiteral("maxChangeIdCount"), QString::number(maxChangeIdCount)); 0038 } 0039 if (startChangeId > 0) { 0040 query.addQueryItem(QStringLiteral("startChangeId"), QString::number(startChangeId)); 0041 } 0042 url.setQuery(query); 0043 0044 return url; 0045 } 0046 0047 QUrl fetchAppUrl(const QString &appId) 0048 { 0049 QUrl url(Private::GoogleApisUrl); 0050 url.setPath(Private::AppsBasePath % QLatin1Char('/') % appId); 0051 return url; 0052 } 0053 0054 QUrl fetchAppsUrl() 0055 { 0056 QUrl url(Private::GoogleApisUrl); 0057 url.setPath(Private::AppsBasePath); 0058 return url; 0059 } 0060 0061 QUrl fetchChildReference(const QString &folderId, const QString &referenceId) 0062 { 0063 QUrl url(Private::GoogleApisUrl); 0064 url.setPath(Private::FilesBasePath % QLatin1Char('/') % folderId % QLatin1StringView("/children/") % referenceId); 0065 return url; 0066 } 0067 0068 QUrl fetchChildReferences(const QString &folderId) 0069 { 0070 QUrl url(Private::GoogleApisUrl); 0071 url.setPath(Private::FilesBasePath % QLatin1Char('/') % folderId % QLatin1StringView("/children")); 0072 return url; 0073 } 0074 0075 QUrl createChildReference(const QString &folderId) 0076 { 0077 QUrl url(Private::GoogleApisUrl); 0078 url.setPath(Private::FilesBasePath % QLatin1Char('/') % folderId % QLatin1StringView("/children")); 0079 return url; 0080 } 0081 0082 QUrl deleteChildReference(const QString &folderId, const QString &referenceId) 0083 { 0084 QUrl url(Private::GoogleApisUrl); 0085 url.setPath(Private::FilesBasePath % QLatin1Char('/') % folderId % QLatin1StringView("/children/") % referenceId); 0086 return url; 0087 } 0088 0089 QUrl fetchChangeUrl(const QString &changeId) 0090 { 0091 QUrl url(Private::GoogleApisUrl); 0092 url.setPath(Private::ChangeBasePath % QLatin1Char('/') % changeId); 0093 return url; 0094 } 0095 0096 QUrl copyFileUrl(const QString &fileId) 0097 { 0098 QUrl url(Private::GoogleApisUrl); 0099 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/copy")); 0100 return url; 0101 } 0102 0103 QUrl deleteFileUrl(const QString &fileId) 0104 { 0105 QUrl url(Private::GoogleApisUrl); 0106 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId); 0107 return url; 0108 } 0109 0110 QUrl fetchFileUrl(const QString &fileId) 0111 { 0112 QUrl url(Private::GoogleApisUrl); 0113 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId); 0114 return url; 0115 } 0116 0117 QUrl fetchFilesUrl() 0118 { 0119 QUrl url(Private::GoogleApisUrl); 0120 url.setPath(Private::FilesBasePath); 0121 return url; 0122 } 0123 0124 QUrl fetchChangesUrl() 0125 { 0126 QUrl url(Private::GoogleApisUrl); 0127 url.setPath(Private::ChangeBasePath); 0128 return url; 0129 } 0130 0131 QUrl touchFileUrl(const QString &fileId) 0132 { 0133 QUrl url(Private::GoogleApisUrl); 0134 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/touch")); 0135 return url; 0136 } 0137 0138 QUrl trashFileUrl(const QString &fileId) 0139 { 0140 QUrl url(Private::GoogleApisUrl); 0141 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/trash")); 0142 return url; 0143 } 0144 0145 QUrl untrashFileUrl(const QString &fileId) 0146 { 0147 QUrl url(Private::GoogleApisUrl); 0148 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/untrash")); 0149 return url; 0150 } 0151 0152 QUrl uploadMetadataFileUrl(const QString &fileId) 0153 { 0154 QUrl url(Private::GoogleApisUrl); 0155 if (!fileId.isEmpty()) { 0156 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId); 0157 } else { 0158 url.setPath(Private::FilesBasePath); 0159 } 0160 return url; 0161 } 0162 0163 QUrl uploadMediaFileUrl(const QString &fileId) 0164 { 0165 QUrl url(Private::GoogleApisUrl); 0166 if (!fileId.isEmpty()) { 0167 url.setPath(QLatin1StringView("/upload") % Private::FilesBasePath % QLatin1Char('/') % fileId); 0168 } else { 0169 url.setPath(QLatin1StringView("/upload") % Private::FilesBasePath); 0170 } 0171 return url; 0172 } 0173 0174 QUrl uploadMultipartFileUrl(const QString &fileId) 0175 { 0176 QUrl url(Private::GoogleApisUrl); 0177 if (!fileId.isEmpty()) { 0178 url.setPath(QLatin1StringView("/upload") % Private::FilesBasePath % QLatin1Char('/') % fileId); 0179 } else { 0180 url.setPath(QLatin1StringView("/upload") % Private::FilesBasePath); 0181 } 0182 return url; 0183 } 0184 0185 QUrl fetchParentReferenceUrl(const QString &fileId, const QString &referenceId) 0186 { 0187 QUrl url(Private::GoogleApisUrl); 0188 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/parents/") % referenceId); 0189 return url; 0190 } 0191 0192 QUrl fetchParentReferencesUrl(const QString &fileId) 0193 { 0194 QUrl url(Private::GoogleApisUrl); 0195 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/parents")); 0196 0197 return url; 0198 } 0199 0200 QUrl createParentReferenceUrl(const QString &fileId) 0201 { 0202 QUrl url(Private::GoogleApisUrl); 0203 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/parents")); 0204 return url; 0205 } 0206 0207 QUrl deleteParentReferenceUrl(const QString &fileId, const QString &referenceId) 0208 { 0209 QUrl url(Private::GoogleApisUrl); 0210 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/parents/") % referenceId); 0211 return url; 0212 } 0213 0214 QUrl fetchPermissionsUrl(const QString &fileId) 0215 { 0216 QUrl url(Private::GoogleApisUrl); 0217 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/permissions")); 0218 return url; 0219 } 0220 0221 QUrl fetchPermissionUrl(const QString &fileId, const QString &permissionId) 0222 { 0223 QUrl url(Private::GoogleApisUrl); 0224 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/permissions/") % permissionId); 0225 return url; 0226 } 0227 0228 QUrl createPermissionUrl(const QString &fileId) 0229 { 0230 QUrl url(Private::GoogleApisUrl); 0231 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/permissions")); 0232 return url; 0233 } 0234 0235 QUrl deletePermissionUrl(const QString &fileId, const QString &permissionId) 0236 { 0237 QUrl url(Private::GoogleApisUrl); 0238 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/permissions/") % permissionId); 0239 return url; 0240 } 0241 0242 QUrl modifyPermissionUrl(const QString &fileId, const QString &permissionId) 0243 { 0244 QUrl url(Private::GoogleApisUrl); 0245 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/permissions/") % permissionId); 0246 return url; 0247 } 0248 0249 QUrl fetchRevisionUrl(const QString &fileId, const QString &revisionId) 0250 { 0251 QUrl url(Private::GoogleApisUrl); 0252 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/revisions/") % revisionId); 0253 return url; 0254 } 0255 0256 QUrl fetchRevisionsUrl(const QString &fileId) 0257 { 0258 QUrl url(Private::GoogleApisUrl); 0259 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/revisions")); 0260 return url; 0261 } 0262 0263 QUrl deleteRevisionUrl(const QString &fileId, const QString &revisionId) 0264 { 0265 QUrl url(Private::GoogleApisUrl); 0266 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/revisions/") % revisionId); 0267 return url; 0268 } 0269 0270 QUrl modifyRevisionUrl(const QString &fileId, const QString &revisionId) 0271 { 0272 QUrl url(Private::GoogleApisUrl); 0273 url.setPath(Private::FilesBasePath % QLatin1Char('/') % fileId % QLatin1StringView("/revisions/") % revisionId); 0274 return url; 0275 } 0276 0277 QUrl fetchDrivesUrl(const QString &drivesId) 0278 { 0279 QUrl url(Private::GoogleApisUrl); 0280 url.setPath(Private::DrivesBasePath % QLatin1Char('/') % drivesId); 0281 return url; 0282 } 0283 0284 QUrl hideDrivesUrl(const QString &drivesId, bool hide) 0285 { 0286 QUrl url(Private::GoogleApisUrl); 0287 url.setPath(Private::DrivesBasePath % QLatin1Char('/') % drivesId % (hide ? QLatin1StringView("/hide") : QLatin1StringView("/unhide"))); 0288 return url; 0289 } 0290 0291 QUrl fetchDrivesUrl() 0292 { 0293 QUrl url(Private::GoogleApisUrl); 0294 url.setPath(Private::DrivesBasePath); 0295 return url; 0296 } 0297 0298 QUrl fetchTeamdriveUrl(const QString &teamdriveId) 0299 { 0300 QUrl url(Private::GoogleApisUrl); 0301 url.setPath(Private::TeamdriveBasePath % QLatin1Char('/') % teamdriveId); 0302 return url; 0303 } 0304 0305 QUrl fetchTeamdrivesUrl() 0306 { 0307 QUrl url(Private::GoogleApisUrl); 0308 url.setPath(Private::TeamdriveBasePath); 0309 return url; 0310 } 0311 0312 } // namespace DriveService 0313 0314 } // namespace KGAPI2