File indexing completed on 2023-11-26 08:17:53
0001 /* 0002 SPDX-FileCopyrightText: 2017-2023 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "libruqola_private_export.h" 0010 #include "user.h" 0011 #include <QDebug> 0012 #include <QJsonDocument> 0013 #include <QString> 0014 class QDateTime; 0015 class LIBRUQOLACORE_TESTS_EXPORT RocketChatMessage 0016 { 0017 Q_GADGET 0018 public: 0019 RocketChatMessage(); 0020 ~RocketChatMessage() = default; 0021 0022 struct RocketChatMessageResult { 0023 QString method; 0024 QString result; 0025 QJsonDocument jsonDocument; 0026 }; 0027 0028 void setJsonFormat(QJsonDocument::JsonFormat jsonFormat); 0029 0030 [[nodiscard]] RocketChatMessageResult generateMethod(const QString &method, const QJsonDocument ¶ms, quint64 id); 0031 [[nodiscard]] RocketChatMessage::RocketChatMessageResult setRoomEncrypted(const QString &roomId, bool encrypted, quint64 id); 0032 [[nodiscard]] RocketChatMessage::RocketChatMessageResult joinRoom(const QString &roomId, const QString &accessCode, quint64 id); 0033 [[nodiscard]] RocketChatMessage::RocketChatMessageResult informTypingStatus(const QString &roomId, const QString &userId, bool typingStatus, quint64 id); 0034 [[nodiscard]] RocketChatMessage::RocketChatMessageResult setDefaultStatus(User::PresenceStatus status, quint64 id); 0035 [[nodiscard]] RocketChatMessage::RocketChatMessageResult openDirectChannel(const QString &username, quint64 id); 0036 [[nodiscard]] RocketChatMessage::RocketChatMessageResult createJitsiConfCall(const QString &roomId, quint64 id); 0037 [[nodiscard]] RocketChatMessage::RocketChatMessageResult userAutocomplete(const QString &searchText, const QString &exception, quint64 id); 0038 [[nodiscard]] RocketChatMessage::RocketChatMessageResult unsubscribe(quint64 id); 0039 [[nodiscard]] RocketChatMessage::RocketChatMessageResult blockUser(const QString &rid, const QString &userId, quint64 id); 0040 [[nodiscard]] RocketChatMessage::RocketChatMessageResult unblockUser(const QString &rid, const QString &userId, quint64 id); 0041 0042 [[nodiscard]] RocketChatMessage::RocketChatMessageResult 0043 searchRoomUsers(const QString &pattern, const QString &exceptions, bool searchUser, bool searchRoom, quint64 id); 0044 [[nodiscard]] RocketChatMessage::RocketChatMessageResult inputChannelAutocomplete(const QString &pattern, const QString &exceptions, quint64 id); 0045 [[nodiscard]] RocketChatMessage::RocketChatMessageResult inputUserAutocomplete(const QString &pattern, const QString &exceptions, quint64 id); 0046 0047 [[nodiscard]] RocketChatMessage::RocketChatMessageResult deleteFileMessage(const QString &fileId, quint64 id); 0048 0049 [[nodiscard]] RocketChatMessage::RocketChatMessageResult roomNameExists(const QString &roomName, quint64 id); 0050 0051 [[nodiscard]] RocketChatMessage::RocketChatMessageResult streamNotifyUserOtrEnd(const QString &userFrom, const QString &userTo, quint64 id); 0052 0053 [[nodiscard]] RocketChatMessage::RocketChatMessageResult 0054 streamNotifyUserOtrHandshake(const QString &userFrom, const QString &userTo, const QString &publicKeys, quint64 id); 0055 0056 [[nodiscard]] RocketChatMessage::RocketChatMessageResult 0057 streamNotifyUserOtrAcknowledge(const QString &roomId, const QString &userId, const QString &publicKeys, quint64 id); 0058 0059 [[nodiscard]] RocketChatMessage::RocketChatMessageResult deleteCustomSound(const QString &identifier, quint64 id); 0060 0061 [[nodiscard]] RocketChatMessage::RocketChatMessageResult uploadCustomSound(const QByteArray &sound, quint64 id); 0062 0063 [[nodiscard]] RocketChatMessage::RocketChatMessageResult listCustomSounds(quint64 id); 0064 0065 [[nodiscard]] RocketChatMessage::RocketChatMessageResult enable2fa(quint64 id); 0066 0067 [[nodiscard]] RocketChatMessage::RocketChatMessageResult disable2fa(const QString &code, quint64 id); 0068 [[nodiscard]] RocketChatMessage::RocketChatMessageResult validateTempToken2fa(const QString &code, quint64 id); 0069 0070 [[nodiscard]] RocketChatMessage::RocketChatMessageResult regenerateCodes2fa(const QString &code, quint64 id); 0071 0072 [[nodiscard]] RocketChatMessage::RocketChatMessageResult deleteOAuthApp(const QString &appId, quint64 id); 0073 0074 [[nodiscard]] RocketChatMessage::RocketChatMessageResult addOAuthApp(const QString &name, bool active, const QString &redirectUrl, quint64 id); 0075 [[nodiscard]] RocketChatMessage::RocketChatMessageResult updateOAuthApp(const QString &name, bool active, const QString &redirectUrl, quint64 id); 0076 0077 [[nodiscard]] RocketChatMessage::RocketChatMessageResult setAdminStatus(const QString &userId, bool admin, quint64 id); 0078 0079 [[nodiscard]] RocketChatMessage::RocketChatMessageResult openRoom(const QString &roomId, quint64 id); 0080 0081 [[nodiscard]] RocketChatMessage::RocketChatMessageResult getRoomById(const QString &roomId, quint64 id); 0082 0083 [[nodiscard]] RocketChatMessage::RocketChatMessageResult bannerDismiss(const QString &bannerId, quint64 id); 0084 0085 [[nodiscard]] RocketChatMessage::RocketChatMessageResult licenseGetModules(quint64 id); 0086 0087 [[nodiscard]] RocketChatMessage::RocketChatMessageResult 0088 videoConferenceAccepted(const QString &roomId, const QString &callId, const QString &userId, quint64 id); 0089 0090 [[nodiscard]] RocketChatMessage::RocketChatMessageResult 0091 videoConferenceRejected(const QString &roomId, const QString &callId, const QString &userId, quint64 id); 0092 0093 [[nodiscard]] RocketChatMessage::RocketChatMessageResult 0094 videoConferenceCall(const QString &roomId, const QString &callId, const QString &userId, quint64 id); 0095 0096 [[nodiscard]] RocketChatMessage::RocketChatMessageResult 0097 videoConferenceConfirmed(const QString &roomId, const QString &callId, const QString &userId, quint64 id); 0098 0099 private: 0100 Q_DISABLE_COPY(RocketChatMessage) 0101 [[nodiscard]] QJsonValue toJsonDateTime(const QDateTime &dateTime); 0102 [[nodiscard]] RocketChatMessage::RocketChatMessageResult subscribe(const QString &name, const QJsonDocument ¶ms, quint64 id); 0103 [[nodiscard]] RocketChatMessage::RocketChatMessageResult saveRoomSettings(const QString &key, const QString &roomId, const QJsonValue &value, quint64 id); 0104 QJsonDocument::JsonFormat mJsonFormat = QJsonDocument::Compact; 0105 [[nodiscard]] RocketChatMessage::RocketChatMessageResult 0106 generateVideoConferenceAction(const QString &action, const QString &roomId, const QString &callId, const QString &userId, quint64 id); 0107 }; 0108 0109 LIBRUQOLACORE_EXPORT QDebug operator<<(QDebug d, const RocketChatMessage::RocketChatMessageResult &t);