File indexing completed on 2024-05-12 05:22:10
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 "commentapprovejob.h" 0008 #include "account.h" 0009 #include "bloggerservice.h" 0010 #include "comment.h" 0011 #include "utils.h" 0012 0013 #include <QNetworkReply> 0014 #include <QNetworkRequest> 0015 0016 using namespace KGAPI2; 0017 using namespace KGAPI2::Blogger; 0018 0019 class Q_DECL_HIDDEN CommentApproveJob::Private 0020 { 0021 public: 0022 Private(const QString &blogId, const QString &postId, const QString &commentId, ApprovalAction action); 0023 0024 const QString blogId; 0025 const QString postId; 0026 const QString commentId; 0027 const ApprovalAction action; 0028 }; 0029 0030 CommentApproveJob::Private::Private(const QString &blogId_, const QString &postId_, const QString &commentId_, CommentApproveJob::ApprovalAction action_) 0031 : blogId(blogId_) 0032 , postId(postId_) 0033 , commentId(commentId_) 0034 , action(action_) 0035 { 0036 } 0037 0038 CommentApproveJob::CommentApproveJob(const QString &blogId, 0039 const QString &postId, 0040 const QString &commentId, 0041 CommentApproveJob::ApprovalAction action, 0042 const AccountPtr &account, 0043 QObject *parent) 0044 : ModifyJob(account, parent) 0045 , d(new Private(blogId, postId, commentId, action)) 0046 { 0047 } 0048 0049 CommentApproveJob::CommentApproveJob(const CommentPtr &comment, CommentApproveJob::ApprovalAction action, const AccountPtr &account, QObject *parent) 0050 : ModifyJob(account, parent) 0051 , d(new Private(comment->blogId(), comment->postId(), comment->id(), action)) 0052 { 0053 } 0054 0055 CommentApproveJob::~CommentApproveJob() 0056 { 0057 delete d; 0058 } 0059 0060 void CommentApproveJob::start() 0061 { 0062 QNetworkRequest request; 0063 if (d->action == Blogger::CommentApproveJob::Approve) { 0064 request.setUrl(BloggerService::approveCommentUrl(d->blogId, d->postId, d->commentId)); 0065 } else { 0066 request.setUrl(BloggerService::markCommentAsSpamUrl(d->blogId, d->postId, d->commentId)); 0067 } 0068 0069 enqueueRequest(request); 0070 } 0071 0072 ObjectsList CommentApproveJob::handleReplyWithItems(const QNetworkReply *reply, const QByteArray &rawData) 0073 { 0074 const QString contentType = reply->header(QNetworkRequest::ContentTypeHeader).toString(); 0075 ContentType ct = Utils::stringToContentType(contentType); 0076 ObjectsList items; 0077 if (ct != KGAPI2::JSON) { 0078 setError(KGAPI2::InvalidResponse); 0079 setErrorString(tr("Invalid response content type")); 0080 emitFinished(); 0081 return items; 0082 } 0083 0084 items << Comment::fromJSON(rawData); 0085 emitFinished(); 0086 return items; 0087 } 0088 0089 #include "moc_commentapprovejob.cpp"