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

0001 /*
0002  * This file is part of LibKGAPI library
0003  *
0004  * SPDX-FileCopyrightText: 2019 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 "teamdrivedeletejob.h"
0010 #include "driveservice.h"
0011 #include "teamdrive.h"
0012 
0013 #include <QNetworkRequest>
0014 
0015 using namespace KGAPI2;
0016 using namespace KGAPI2::Drive;
0017 
0018 class Q_DECL_HIDDEN TeamdriveDeleteJob::Private
0019 {
0020 public:
0021     QStringList teamdrivesIds;
0022 };
0023 
0024 TeamdriveDeleteJob::TeamdriveDeleteJob(const QString &teamdriveId, const AccountPtr &account, QObject *parent)
0025     : DeleteJob(account, parent)
0026     , d(new Private)
0027 {
0028     d->teamdrivesIds << teamdriveId;
0029 }
0030 
0031 TeamdriveDeleteJob::TeamdriveDeleteJob(const QStringList &teamdrivesIds, const AccountPtr &account, QObject *parent)
0032     : DeleteJob(account, parent)
0033     , d(new Private)
0034 {
0035     d->teamdrivesIds << teamdrivesIds;
0036 }
0037 
0038 TeamdriveDeleteJob::TeamdriveDeleteJob(const TeamdrivePtr &teamdrive, const AccountPtr &account, QObject *parent)
0039     : DeleteJob(account, parent)
0040     , d(new Private)
0041 {
0042     d->teamdrivesIds << teamdrive->id();
0043 }
0044 
0045 TeamdriveDeleteJob::TeamdriveDeleteJob(const TeamdrivesList &teamdrives, const AccountPtr &account, QObject *parent)
0046     : DeleteJob(account, parent)
0047     , d(new Private)
0048 {
0049     for (const TeamdrivePtr &teamdrive : std::as_const(teamdrives)) {
0050         d->teamdrivesIds << teamdrive->id();
0051     }
0052 }
0053 
0054 TeamdriveDeleteJob::~TeamdriveDeleteJob() = default;
0055 
0056 void TeamdriveDeleteJob::start()
0057 {
0058     if (d->teamdrivesIds.isEmpty()) {
0059         emitFinished();
0060         return;
0061     }
0062 
0063     const QString teamdriveId = d->teamdrivesIds.takeFirst();
0064     const QUrl url = DriveService::fetchTeamdriveUrl(teamdriveId);
0065 
0066     QNetworkRequest request(url);
0067     enqueueRequest(request);
0068 }
0069 
0070 #include "moc_teamdrivedeletejob.cpp"