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"