File indexing completed on 2024-05-12 05:22:11
0001 /* 0002 * SPDX-FileCopyrightText: 2014 Daniel Vrátil <dvratil@redhat.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #include "pagemodifyjob.h" 0008 #include "bloggerservice.h" 0009 #include "page.h" 0010 #include "utils.h" 0011 0012 #include <QNetworkReply> 0013 #include <QNetworkRequest> 0014 0015 using namespace KGAPI2; 0016 using namespace KGAPI2::Blogger; 0017 0018 class Q_DECL_HIDDEN PageModifyJob::Private 0019 { 0020 public: 0021 Private(const PagePtr &page); 0022 0023 const PagePtr page; 0024 }; 0025 0026 PageModifyJob::Private::Private(const PagePtr &page_) 0027 : page(page_) 0028 { 0029 } 0030 0031 PageModifyJob::PageModifyJob(const PagePtr &page, const AccountPtr &account, QObject *parent) 0032 : ModifyJob(account, parent) 0033 , d(new Private(page)) 0034 { 0035 } 0036 0037 PageModifyJob::~PageModifyJob() 0038 { 0039 delete d; 0040 } 0041 0042 void PageModifyJob::start() 0043 { 0044 const QUrl url = BloggerService::modifyPageUrl(d->page->blogId(), d->page->id()); 0045 QNetworkRequest request(url); 0046 0047 const QByteArray rawData = Page::toJSON(d->page); 0048 enqueueRequest(request, rawData, QStringLiteral("application/json")); 0049 } 0050 0051 ObjectsList PageModifyJob::handleReplyWithItems(const QNetworkReply *reply, const QByteArray &rawData) 0052 { 0053 const QString contentType = reply->header(QNetworkRequest::ContentTypeHeader).toString(); 0054 ContentType ct = Utils::stringToContentType(contentType); 0055 ObjectsList items; 0056 if (ct != KGAPI2::JSON) { 0057 setError(KGAPI2::InvalidResponse); 0058 setErrorString(tr("Invalid response content type")); 0059 emitFinished(); 0060 return items; 0061 } 0062 0063 items << Page::fromJSON(rawData); 0064 emitFinished(); 0065 return items; 0066 } 0067 0068 #include "moc_pagemodifyjob.cpp"