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