File indexing completed on 2024-05-12 05:22:17
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 "childreferencedeletejob.h" 0010 #include "childreference.h" 0011 #include "driveservice.h" 0012 0013 #include <QNetworkRequest> 0014 0015 using namespace KGAPI2; 0016 using namespace KGAPI2::Drive; 0017 0018 class Q_DECL_HIDDEN ChildReferenceDeleteJob::Private 0019 { 0020 public: 0021 QString folderId; 0022 QStringList childrenIds; 0023 }; 0024 0025 ChildReferenceDeleteJob::ChildReferenceDeleteJob(const QString &folderId, const QString &childId, const AccountPtr &account, QObject *parent) 0026 : DeleteJob(account, parent) 0027 , d(new Private) 0028 { 0029 d->folderId = folderId; 0030 d->childrenIds << childId; 0031 } 0032 0033 ChildReferenceDeleteJob::ChildReferenceDeleteJob(const QString &folderId, const QStringList &childrenIds, const AccountPtr &account, QObject *parent) 0034 : DeleteJob(account, parent) 0035 , d(new Private) 0036 { 0037 d->folderId = folderId; 0038 d->childrenIds << childrenIds; 0039 } 0040 0041 ChildReferenceDeleteJob::ChildReferenceDeleteJob(const QString &folderId, const ChildReferencePtr &reference, const AccountPtr &account, QObject *parent) 0042 : DeleteJob(account, parent) 0043 , d(new Private) 0044 { 0045 d->folderId = folderId; 0046 d->childrenIds << reference->id(); 0047 } 0048 0049 ChildReferenceDeleteJob::ChildReferenceDeleteJob(const QString &folderId, const ChildReferencesList &references, const AccountPtr &account, QObject *parent) 0050 : DeleteJob(account, parent) 0051 , d(new Private) 0052 { 0053 d->folderId = folderId; 0054 for (const ChildReferencePtr &reference : references) { 0055 d->childrenIds << reference->id(); 0056 } 0057 } 0058 0059 ChildReferenceDeleteJob::~ChildReferenceDeleteJob() 0060 { 0061 delete d; 0062 } 0063 0064 void ChildReferenceDeleteJob::start() 0065 { 0066 if (d->childrenIds.isEmpty()) { 0067 emitFinished(); 0068 return; 0069 } 0070 0071 const QString childId = d->childrenIds.takeFirst(); 0072 const QUrl url = DriveService::deleteChildReference(d->folderId, childId); 0073 0074 QNetworkRequest request(url); 0075 0076 enqueueRequest(request); 0077 } 0078 0079 #include "moc_childreferencedeletejob.cpp"