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)15 EmojiCustomDeleteJob::EmojiCustomDeleteJob(QObject *parent)
16     : RestApiAbstractJob(parent)
17 {
18 }
19 
20 EmojiCustomDeleteJob::~EmojiCustomDeleteJob() = default;
21 
start()22 bool 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)34 void 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() const47 QString EmojiCustomDeleteJob::emojiId() const
48 {
49     return mEmojiId;
50 }
51 
setEmojiId(const QString & emojiId)52 void EmojiCustomDeleteJob::setEmojiId(const QString &emojiId)
53 {
54     mEmojiId = emojiId;
55 }
56 
requireHttpAuthentication() const57 bool EmojiCustomDeleteJob::requireHttpAuthentication() const
58 {
59     return true;
60 }
61 
canStart() const62 bool 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() const74 QJsonDocument EmojiCustomDeleteJob::json() const
75 {
76     QJsonObject jsonObj;
77     jsonObj[QLatin1String("emojiId")] = emojiId();
78     const QJsonDocument postData = QJsonDocument(jsonObj);
79     return postData;
80 }
81 
request() const82 QNetworkRequest 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