1 /*
2    SPDX-FileCopyrightText: 2019-2021 Laurent Montel <montel@kde.org>
3 
4    SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include "librocketchatrestapi-qt5_export.h"
10 #include "restapiabstractjob.h"
11 namespace RocketChatRestApi
12 {
13 class LIBROCKETCHATRESTAPI_QT5_EXPORT EmojiCustomUpdateJob : public RestApiAbstractJob
14 {
15     Q_OBJECT
16 public:
17     explicit EmojiCustomUpdateJob(QObject *parent = nullptr);
18     ~EmojiCustomUpdateJob() override;
19 
20     struct LIBROCKETCHATRESTAPI_QT5_EXPORT EmojiInfo {
21         QString emojiId;
22         QString alias;
23         QString name;
24         QUrl fileNameUrl;
25         Q_REQUIRED_RESULT bool isValid() const;
26     };
27 
28     Q_REQUIRED_RESULT bool start() override;
29     Q_REQUIRED_RESULT bool requireHttpAuthentication() const override;
30     Q_REQUIRED_RESULT bool canStart() const override;
31 
32     Q_REQUIRED_RESULT QNetworkRequest request() const override;
33 
34     Q_REQUIRED_RESULT QJsonDocument json() const;
35 
36     Q_REQUIRED_RESULT const EmojiInfo &emojiInfo() const;
37     void setEmojiInfo(const EmojiInfo &newEmojiInfo);
38 
39 Q_SIGNALS:
40     void emojiCustomUpdateDone(const QJsonObject &replyObject);
41 
42 private:
43     Q_DISABLE_COPY(EmojiCustomUpdateJob)
44     void onPostRequestResponse(const QJsonDocument &replyJson) override;
45     EmojiInfo mEmojiInfo;
46 };
47 }
48