File indexing completed on 2024-05-12 05:22:20
0001 /* 0002 * This file is part of LibKGAPI library 0003 * 0004 * SPDX-FileCopyrightText: 2020 David Barchiesi <david@barchie.si> 0005 * 0006 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #include "fileresumablemodifyjob.h" 0010 #include "debug.h" 0011 #include "driveservice.h" 0012 #include "utils.h" 0013 0014 #include <QUrlQuery> 0015 0016 using namespace KGAPI2; 0017 using namespace KGAPI2::Drive; 0018 0019 class Q_DECL_HIDDEN FileResumableModifyJob::Private 0020 { 0021 public: 0022 QString fileId; 0023 bool createNewRevision = true; 0024 bool changeModifiedDate = false; 0025 bool updateViewedDate = true; 0026 }; 0027 0028 FileResumableModifyJob::FileResumableModifyJob(const FilePtr &metadata, const AccountPtr &account, QObject *parent) 0029 : FileAbstractResumableJob(metadata, account, parent) 0030 , d(new Private) 0031 { 0032 d->fileId = metadata->id(); 0033 } 0034 0035 FileResumableModifyJob::FileResumableModifyJob(const QString &fileId, const AccountPtr &account, QObject *parent) 0036 : FileAbstractResumableJob(account, parent) 0037 , d(new Private) 0038 { 0039 d->fileId = fileId; 0040 } 0041 0042 FileResumableModifyJob::FileResumableModifyJob(QIODevice *device, const FilePtr &metadata, const AccountPtr &account, QObject *parent) 0043 : FileAbstractResumableJob(device, metadata, account, parent) 0044 , d(new Private) 0045 { 0046 d->fileId = metadata->id(); 0047 } 0048 0049 FileResumableModifyJob::FileResumableModifyJob(QIODevice *device, const QString &fileId, const AccountPtr &account, QObject *parent) 0050 : FileAbstractResumableJob(device, account, parent) 0051 , d(new Private) 0052 { 0053 d->fileId = fileId; 0054 } 0055 0056 FileResumableModifyJob::~FileResumableModifyJob() = default; 0057 0058 bool FileResumableModifyJob::createNewRevision() const 0059 { 0060 return d->createNewRevision; 0061 } 0062 0063 void FileResumableModifyJob::setCreateNewRevision(bool createNewRevision) 0064 { 0065 if (isRunning()) { 0066 qCWarning(KGAPIDebug) << "Can't modify createNewRevision property when the job is running"; 0067 return; 0068 } 0069 0070 d->createNewRevision = createNewRevision; 0071 } 0072 0073 bool FileResumableModifyJob::updateModifiedDate() const 0074 { 0075 return d->updateViewedDate; 0076 } 0077 0078 void FileResumableModifyJob::setUpdateModifiedDate(bool updateModifiedDate) 0079 { 0080 if (isRunning()) { 0081 qCWarning(KGAPIDebug) << "Can't modify updateModifiedDate property when the job is running"; 0082 return; 0083 } 0084 0085 d->updateViewedDate = updateModifiedDate; 0086 } 0087 0088 bool FileResumableModifyJob::updateViewedDate() const 0089 { 0090 return d->updateViewedDate; 0091 } 0092 0093 void FileResumableModifyJob::setUpdateViewedDate(bool updateViewedDate) 0094 { 0095 if (isRunning()) { 0096 qCWarning(KGAPIDebug) << "Can't modify updateViewedDate property when job is running"; 0097 return; 0098 } 0099 0100 d->updateViewedDate = updateViewedDate; 0101 } 0102 0103 QUrl FileResumableModifyJob::createUrl() 0104 { 0105 QUrl url = DriveService::uploadMediaFileUrl(d->fileId); 0106 0107 QUrlQuery query(url); 0108 query.addQueryItem(QStringLiteral("newRevision"), Utils::bool2Str(d->createNewRevision)); 0109 query.addQueryItem(QStringLiteral("setModifiedDate"), Utils::bool2Str(d->changeModifiedDate)); 0110 query.addQueryItem(QStringLiteral("updateViewedDate"), Utils::bool2Str(d->updateViewedDate)); 0111 url.setQuery(query); 0112 0113 return url; 0114 } 0115 0116 #include "moc_fileresumablemodifyjob.cpp"