1 /* 2 SPDX-FileCopyrightText: 2019-2021 Laurent Montel <montel@kde.org> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7 #include "emojicustomdeletejob.h" 8 9 #include "restapimethod.h" 10 #include "rocketchatqtrestapi_debug.h" 11 #include <QJsonDocument> 12 #include <QJsonObject> 13 #include <QNetworkReply> 14 using namespace RocketChatRestApi; EmojiCustomDeleteJob(QObject * parent)15EmojiCustomDeleteJob::EmojiCustomDeleteJob(QObject *parent) 16 : RestApiAbstractJob(parent) 17 { 18 } 19 20 EmojiCustomDeleteJob::~EmojiCustomDeleteJob() = default; 21 start()22bool EmojiCustomDeleteJob::start() 23 { 24 if (!canStart()) { 25 deleteLater(); 26 return false; 27 } 28 addStartRestApiInfo("DeleteEmojiCustomJob::start"); 29 submitPostRequest(json()); 30 31 return true; 32 } 33 onPostRequestResponse(const QJsonDocument & replyJson)34void EmojiCustomDeleteJob::onPostRequestResponse(const QJsonDocument &replyJson) 35 { 36 const QJsonObject replyObject = replyJson.object(); 37 38 if (replyObject[QStringLiteral("success")].toBool()) { 39 addLoggerInfo(QByteArrayLiteral("DeleteEmojiCustomJob success: ") + replyJson.toJson(QJsonDocument::Indented)); 40 Q_EMIT emojiCustomDeleteDone(); 41 } else { 42 emitFailedMessage(replyObject); 43 addLoggerWarning(QByteArrayLiteral("DeleteEmojiCustomJob problem: ") + replyJson.toJson(QJsonDocument::Indented)); 44 } 45 } 46 emojiId() const47QString EmojiCustomDeleteJob::emojiId() const 48 { 49 return mEmojiId; 50 } 51 setEmojiId(const QString & emojiId)52void EmojiCustomDeleteJob::setEmojiId(const QString &emojiId) 53 { 54 mEmojiId = emojiId; 55 } 56 requireHttpAuthentication() const57bool EmojiCustomDeleteJob::requireHttpAuthentication() const 58 { 59 return true; 60 } 61 canStart() const62bool EmojiCustomDeleteJob::canStart() const 63 { 64 if (mEmojiId.isEmpty()) { 65 qCWarning(ROCKETCHATQTRESTAPI_LOG) << "DeleteEmojiCustomJob: remove mEmojiId is empty"; 66 return false; 67 } 68 if (!RestApiAbstractJob::canStart()) { 69 return false; 70 } 71 return true; 72 } 73 json() const74QJsonDocument EmojiCustomDeleteJob::json() const 75 { 76 QJsonObject jsonObj; 77 jsonObj[QLatin1String("emojiId")] = emojiId(); 78 const QJsonDocument postData = QJsonDocument(jsonObj); 79 return postData; 80 } 81 request() const82QNetworkRequest EmojiCustomDeleteJob::request() const 83 { 84 const QUrl url = mRestApiMethod->generateUrl(RestApiUtil::RestApiUrlType::EmojiCustomDelete); 85 QNetworkRequest request(url); 86 addAuthRawHeader(request); 87 addRequestAttribute(request); 88 return request; 89 } 90