1 /*
2    SPDX-FileCopyrightText: 2021 Laurent Montel <montel@kde.org>
3 
4    SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #include "emojicustomalljob.h"
8 #include "restapimethod.h"
9 #include "rocketchatqtrestapi_debug.h"
10 #include <QJsonDocument>
11 #include <QJsonObject>
12 #include <QNetworkReply>
13 #include <QUrlQuery>
14 using namespace RocketChatRestApi;
EmojiCustomAllJob(QObject * parent)15 EmojiCustomAllJob::EmojiCustomAllJob(QObject *parent)
16     : RestApiAbstractJob(parent)
17 {
18 }
19 
20 EmojiCustomAllJob::~EmojiCustomAllJob() = default;
21 
start()22 bool EmojiCustomAllJob::start()
23 {
24     if (!canStart()) {
25         qCWarning(ROCKETCHATQTRESTAPI_LOG) << "Impossible to start EmojiCustomAllJob job";
26         deleteLater();
27         return false;
28     }
29     submitGetRequest();
30     addStartRestApiInfo(QByteArrayLiteral("EmojiCustomAllJob: Load Emoji custom"));
31 
32     return true;
33 }
34 
onGetRequestResponse(const QJsonDocument & replyJson)35 void EmojiCustomAllJob::onGetRequestResponse(const QJsonDocument &replyJson)
36 {
37     const QJsonObject replyObject = replyJson.object();
38 
39     if (replyObject[QStringLiteral("success")].toBool()) {
40         addLoggerInfo(QByteArrayLiteral("EmojiCustomAllJob done: ") + replyJson.toJson(QJsonDocument::Indented));
41         Q_EMIT emojiCustomAllDone(replyObject);
42     } else {
43         emitFailedMessage(replyObject);
44         addLoggerWarning(QByteArrayLiteral("EmojiCustomAllJob: Problem: ") + replyJson.toJson(QJsonDocument::Indented));
45     }
46 }
47 
requireHttpAuthentication() const48 bool EmojiCustomAllJob::requireHttpAuthentication() const
49 {
50     return true;
51 }
52 
hasQueryParameterSupport() const53 bool EmojiCustomAllJob::hasQueryParameterSupport() const
54 {
55     return true;
56 }
57 
request() const58 QNetworkRequest EmojiCustomAllJob::request() const
59 {
60     QUrl url = mRestApiMethod->generateUrl(RestApiUtil::RestApiUrlType::EmojiCustomAll);
61 
62     QUrlQuery queryUrl;
63     addQueryParameter(queryUrl);
64     url.setQuery(queryUrl);
65     QNetworkRequest req(url);
66     addAuthRawHeader(req);
67     return req;
68 }
69