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

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 "deletejob.h"
0010 
0011 #include <QNetworkAccessManager>
0012 #include <QNetworkRequest>
0013 #include <QUrlQuery>
0014 
0015 using namespace KGAPI2;
0016 
0017 class Q_DECL_HIDDEN DeleteJob::Private
0018 {
0019 };
0020 
0021 DeleteJob::DeleteJob(QObject *parent)
0022     : Job(parent)
0023     , d(new Private)
0024 {
0025 }
0026 
0027 DeleteJob::DeleteJob(const AccountPtr &account, QObject *parent)
0028     : Job(account, parent)
0029     , d(new Private)
0030 {
0031 }
0032 
0033 DeleteJob::~DeleteJob()
0034 {
0035     delete d;
0036 }
0037 
0038 void DeleteJob::dispatchRequest(QNetworkAccessManager *accessManager, const QNetworkRequest &request, const QByteArray &data, const QString &contentType)
0039 {
0040     Q_UNUSED(data)
0041     Q_UNUSED(contentType)
0042 
0043     QNetworkRequest r = request;
0044     if (!r.hasRawHeader("If-Match")) {
0045         r.setRawHeader("If-Match", "*");
0046     }
0047 
0048     // Delete requests have no response body so there isn't anything to pretty print
0049     QUrl cleanedUrl = r.url();
0050     QUrlQuery cleanedQuery(cleanedUrl);
0051     cleanedQuery.removeAllQueryItems(Job::StandardParams::PrettyPrint);
0052     cleanedUrl.setQuery(cleanedQuery);
0053     r.setUrl(cleanedUrl);
0054 
0055     accessManager->deleteResource(r);
0056 }
0057 
0058 void DeleteJob::handleReply(const QNetworkReply *reply, const QByteArray &rawData)
0059 {
0060     Q_UNUSED(reply)
0061     Q_UNUSED(rawData)
0062 
0063     start();
0064 }
0065 
0066 #include "moc_deletejob.cpp"