File indexing completed on 2024-05-12 05:22:12
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 "postmodifyjob.h" 0008 #include "bloggerservice.h" 0009 #include "post.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 PostModifyJob::Private 0019 { 0020 public: 0021 Private(const PostPtr &post); 0022 0023 const PostPtr post; 0024 }; 0025 0026 PostModifyJob::Private::Private(const PostPtr &post_) 0027 : post(post_) 0028 { 0029 } 0030 0031 PostModifyJob::PostModifyJob(const PostPtr &post, const AccountPtr &account, QObject *parent) 0032 : ModifyJob(account, parent) 0033 , d(new Private(post)) 0034 { 0035 } 0036 0037 PostModifyJob::~PostModifyJob() 0038 { 0039 delete d; 0040 } 0041 0042 void PostModifyJob::start() 0043 { 0044 const QUrl url = BloggerService::modifyPostUrl(d->post->blogId(), d->post->id()); 0045 QNetworkRequest request(url); 0046 0047 const QByteArray rawData = Post::toJSON(d->post); 0048 enqueueRequest(request, rawData, QStringLiteral("application/json")); 0049 } 0050 0051 ObjectsList PostModifyJob::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 << Post::fromJSON(rawData); 0064 emitFinished(); 0065 return items; 0066 } 0067 0068 #include "moc_postmodifyjob.cpp"