Warning, file /network/ruqola/src/rocketchatrestapi-qt/restapiutil.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002    SPDX-FileCopyrightText: 2017-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "restapiutil.h"
0008 #include "rocketchatqtrestapi_debug.h"
0009 #include <QCryptographicHash>
0010 
0011 QString RestApiUtil::adaptUrl(const QString &url)
0012 {
0013     if (url.isEmpty()) {
0014         return url;
0015     }
0016     // Avoid to add more https:// :)
0017     if (url.startsWith(QLatin1String("https://")) || url.startsWith(QLatin1String("http://"))) {
0018         return url;
0019     } else {
0020         // Default to https
0021         return QStringLiteral("https://") + url;
0022     }
0023 }
0024 
0025 QString RestApiUtil::apiUri()
0026 {
0027     return QStringLiteral("/api/v1/");
0028 }
0029 
0030 QString RestApiUtil::restUrl(RestApiUtil::RestApiUrlType type)
0031 {
0032     switch (type) {
0033     case RestApiUtil::RestApiUrlType::Login:
0034         return QStringLiteral("login");
0035     case RestApiUtil::RestApiUrlType::Logout:
0036         return QStringLiteral("logout");
0037     case RestApiUtil::RestApiUrlType::Me:
0038         return QStringLiteral("me");
0039     case RestApiUtil::RestApiUrlType::UsersGetAvatar:
0040         return QStringLiteral("users.getAvatar");
0041     case RestApiUtil::RestApiUrlType::UsersDelete:
0042         return QStringLiteral("users.delete");
0043     case RestApiUtil::RestApiUrlType::UsersCreate:
0044         return QStringLiteral("users.create");
0045     case RestApiUtil::RestApiUrlType::UsersCreateToken:
0046         return QStringLiteral("users.createToken");
0047     case RestApiUtil::RestApiUrlType::UsersGetPresence:
0048         return QStringLiteral("users.getPresence");
0049     case RestApiUtil::RestApiUrlType::UsersInfo:
0050         return QStringLiteral("users.info");
0051     case RestApiUtil::RestApiUrlType::UsersList:
0052         return QStringLiteral("users.list");
0053     case RestApiUtil::RestApiUrlType::UsersRegister:
0054         return QStringLiteral("users.register");
0055     case RestApiUtil::RestApiUrlType::UsersResetAvatar:
0056         return QStringLiteral("users.resetAvatar");
0057     case RestApiUtil::RestApiUrlType::UsersSetAvatar:
0058         return QStringLiteral("users.setAvatar");
0059     case RestApiUtil::RestApiUrlType::UsersUpdate:
0060         return QStringLiteral("users.update");
0061     case RestApiUtil::RestApiUrlType::UsersGetUsernameSuggestion:
0062         return QStringLiteral("users.getUsernameSuggestion");
0063 
0064     case RestApiUtil::RestApiUrlType::UsersRemovePersonalAccessToken:
0065         return QStringLiteral("users.removePersonalAccessToken");
0066     case RestApiUtil::RestApiUrlType::UsersGeneratePersonalAccessToken:
0067         return QStringLiteral("users.generatePersonalAccessToken");
0068     case RestApiUtil::RestApiUrlType::UsersRegeneratePersonalAccessToken:
0069         return QStringLiteral("users.regeneratePersonalAccessToken");
0070     case RestApiUtil::RestApiUrlType::UsersGetPersonalAccessTokens:
0071         return QStringLiteral("users.getPersonalAccessTokens");
0072 
0073     case RestApiUtil::RestApiUrlType::UsersPresence:
0074         return QStringLiteral("users.presence");
0075     case RestApiUtil::RestApiUrlType::UsersUpdateOwnBasicInfo:
0076         return QStringLiteral("users.updateOwnBasicInfo");
0077     case RestApiUtil::RestApiUrlType::UsersSetStatus:
0078         return QStringLiteral("users.setStatus");
0079     case RestApiUtil::RestApiUrlType::UsersGetStatus:
0080         return QStringLiteral("users.getStatus");
0081     case RestApiUtil::RestApiUrlType::UsersAutocomplete:
0082         return QStringLiteral("users.autocomplete");
0083     case RestApiUtil::RestApiUrlType::UsersRemoveOtherTokens:
0084         return QStringLiteral("users.removeOtherTokens");
0085     case RestApiUtil::RestApiUrlType::UsersSetActiveStatus:
0086         return QStringLiteral("users.setActiveStatus");
0087     case RestApiUtil::RestApiUrlType::UsersResetTOTP:
0088         return QStringLiteral("users.resetTOTP");
0089     case RestApiUtil::RestApiUrlType::UsersResetE2EKey:
0090         return QStringLiteral("users.resetE2EKey");
0091 
0092     case RestApiUtil::RestApiUrlType::ChatDelete:
0093         return QStringLiteral("chat.delete");
0094     case RestApiUtil::RestApiUrlType::ChatGetMessage:
0095         return QStringLiteral("chat.getMessage");
0096     case RestApiUtil::RestApiUrlType::ChatPinMessage:
0097         return QStringLiteral("chat.pinMessage");
0098     case RestApiUtil::RestApiUrlType::ChatPostMessage:
0099         return QStringLiteral("chat.postMessage");
0100     case RestApiUtil::RestApiUrlType::ChatReact:
0101         return QStringLiteral("chat.react");
0102     case RestApiUtil::RestApiUrlType::ChatStarMessage:
0103         return QStringLiteral("chat.starMessage");
0104     case RestApiUtil::RestApiUrlType::ChatUnPinMessage:
0105         return QStringLiteral("chat.unPinMessage");
0106     case RestApiUtil::RestApiUrlType::ChatUnStarMessage:
0107         return QStringLiteral("chat.unStarMessage");
0108     case RestApiUtil::RestApiUrlType::ChatUpdate:
0109         return QStringLiteral("chat.update");
0110     case RestApiUtil::RestApiUrlType::ChatSearch:
0111         return QStringLiteral("chat.search");
0112     case RestApiUtil::RestApiUrlType::ChatIgnoreUser:
0113         return QStringLiteral("chat.ignoreUser");
0114     case RestApiUtil::RestApiUrlType::ChatReportMessage:
0115         return QStringLiteral("chat.reportMessage");
0116     case RestApiUtil::RestApiUrlType::ChatFollowMessage:
0117         return QStringLiteral("chat.followMessage");
0118     case RestApiUtil::RestApiUrlType::ChatUnFollowMessage:
0119         return QStringLiteral("chat.unfollowMessage");
0120     case RestApiUtil::RestApiUrlType::ChatGetDeletedMessage:
0121         return QStringLiteral("chat.getDeletedMessages");
0122     case RestApiUtil::RestApiUrlType::ChatMessageReadReceipts:
0123         return QStringLiteral("chat.getMessageReadReceipts");
0124     case RestApiUtil::RestApiUrlType::ChatSyncThreadsList:
0125         return QStringLiteral("chat.syncThreadsList");
0126     case RestApiUtil::RestApiUrlType::ChatGetThreadsList:
0127         return QStringLiteral("chat.getThreadsList");
0128     case RestApiUtil::RestApiUrlType::ChatSyncThreadMessages:
0129         return QStringLiteral("chat.syncThreadMessages");
0130     case RestApiUtil::RestApiUrlType::ChatGetThreadMessages:
0131         return QStringLiteral("chat.getThreadMessages");
0132     case RestApiUtil::RestApiUrlType::ChatSendMessage:
0133         return QStringLiteral("chat.sendMessage");
0134     case RestApiUtil::RestApiUrlType::ChatGetPinnedMessages:
0135         return QStringLiteral("chat.getPinnedMessages");
0136     case RestApiUtil::RestApiUrlType::ChatGetMentionedMessages:
0137         return QStringLiteral("chat.getMentionedMessages");
0138     case RestApiUtil::RestApiUrlType::ChatGetStarredMessages:
0139         return QStringLiteral("chat.getStarredMessages");
0140     case RestApiUtil::RestApiUrlType::ChatGetSnippetedMessages:
0141         return QStringLiteral("chat.getSnippetedMessages");
0142     case RestApiUtil::RestApiUrlType::ChatSyncMessages:
0143         return QStringLiteral("chat.syncMessages");
0144     case RestApiUtil::RestApiUrlType::ChannelsAddAll:
0145         return QStringLiteral("channels.addAll");
0146     case RestApiUtil::RestApiUrlType::ChannelsAddModerator:
0147         return QStringLiteral("channels.addModerator");
0148     case RestApiUtil::RestApiUrlType::ChannelsAddOwner:
0149         return QStringLiteral("channels.addOwner");
0150     case RestApiUtil::RestApiUrlType::ChannelsAddLeader:
0151         return QStringLiteral("channels.addLeader");
0152     case RestApiUtil::RestApiUrlType::ChannelsArchive:
0153         return QStringLiteral("channels.archive");
0154     case RestApiUtil::RestApiUrlType::ChannelsModerators:
0155         return QStringLiteral("channels.moderators");
0156     case RestApiUtil::RestApiUrlType::ChannelsClose:
0157         return QStringLiteral("channels.close");
0158     case RestApiUtil::RestApiUrlType::ChannelsCreate:
0159         return QStringLiteral("channels.create");
0160     case RestApiUtil::RestApiUrlType::ChannelsGetIntegrations:
0161         return QStringLiteral("channels.getIntegrations");
0162     case RestApiUtil::RestApiUrlType::ChannelsHistory:
0163         return QStringLiteral("channels.history");
0164     case RestApiUtil::RestApiUrlType::ChannelsInfo:
0165         return QStringLiteral("channels.info");
0166     case RestApiUtil::RestApiUrlType::ChannelsInvite:
0167         return QStringLiteral("channels.invite");
0168     case RestApiUtil::RestApiUrlType::ChannelsKick:
0169         return QStringLiteral("channels.kick");
0170     case RestApiUtil::RestApiUrlType::ChannelsLeave:
0171         return QStringLiteral("channels.leave");
0172     case RestApiUtil::RestApiUrlType::ChannelsList:
0173         return QStringLiteral("channels.list");
0174     case RestApiUtil::RestApiUrlType::ChannelsListJoined:
0175         return QStringLiteral("channels.list.joined");
0176     case RestApiUtil::RestApiUrlType::ChannelsOpen:
0177         return QStringLiteral("channels.open");
0178     case RestApiUtil::RestApiUrlType::ChannelsRemoveModerator:
0179         return QStringLiteral("channels.removeModerator");
0180     case RestApiUtil::RestApiUrlType::ChannelsRemoveOwner:
0181         return QStringLiteral("channels.removeOwner");
0182     case RestApiUtil::RestApiUrlType::ChannelsRemoveLeader:
0183         return QStringLiteral("channels.removeLeader");
0184     case RestApiUtil::RestApiUrlType::ChannelsRename:
0185         return QStringLiteral("channels.rename");
0186     case RestApiUtil::RestApiUrlType::ChannelsSetDescription:
0187         return QStringLiteral("channels.setDescription");
0188     case RestApiUtil::RestApiUrlType::ChannelsSetJoinCode:
0189         return QStringLiteral("channels.setJoinCode");
0190     case RestApiUtil::RestApiUrlType::ChannelsSetPurpose:
0191         return QStringLiteral("channels.setPurpose");
0192     case RestApiUtil::RestApiUrlType::ChannelsSetReadOnly:
0193         return QStringLiteral("channels.setReadOnly");
0194     case RestApiUtil::RestApiUrlType::ChannelsSetTopic:
0195         return QStringLiteral("channels.setTopic");
0196     case RestApiUtil::RestApiUrlType::ChannelsSetAnnouncement:
0197         return QStringLiteral("channels.setAnnouncement");
0198     case RestApiUtil::RestApiUrlType::ChannelsFiles:
0199         return QStringLiteral("channels.files");
0200     case RestApiUtil::RestApiUrlType::ChannelsSetType:
0201         return QStringLiteral("channels.setType");
0202     case RestApiUtil::RestApiUrlType::ChannelsUnarchive:
0203         return QStringLiteral("channels.unarchive");
0204     case RestApiUtil::RestApiUrlType::ChannelsRoles:
0205         return QStringLiteral("channels.roles");
0206     case RestApiUtil::RestApiUrlType::ChannelsCounters:
0207         return QStringLiteral("channels.counters");
0208     case RestApiUtil::RestApiUrlType::ChannelsJoin:
0209         return QStringLiteral("channels.join");
0210     case RestApiUtil::RestApiUrlType::ChannelsMembers:
0211         return QStringLiteral("channels.members");
0212     case RestApiUtil::RestApiUrlType::ChannelsDelete:
0213         return QStringLiteral("channels.delete");
0214     case RestApiUtil::RestApiUrlType::ChannelsOnline:
0215         return QStringLiteral("channels.online");
0216     case RestApiUtil::RestApiUrlType::ChannelsGetAllUserMentionsByChannel:
0217         return QStringLiteral("channels.getAllUserMentionsByChannel");
0218     case RestApiUtil::RestApiUrlType::GroupsAddAll:
0219         return QStringLiteral("groups.addAll");
0220     case RestApiUtil::RestApiUrlType::GroupsAddModerator:
0221         return QStringLiteral("groups.addModerator");
0222     case RestApiUtil::RestApiUrlType::GroupsAddOwner:
0223         return QStringLiteral("groups.addOwner");
0224     case RestApiUtil::RestApiUrlType::GroupsArchive:
0225         return QStringLiteral("groups.archive");
0226     case RestApiUtil::RestApiUrlType::GroupsClose:
0227         return QStringLiteral("groups.close");
0228     case RestApiUtil::RestApiUrlType::GroupsCreate:
0229         return QStringLiteral("groups.create");
0230     case RestApiUtil::RestApiUrlType::GroupsGetIntegrations:
0231         return QStringLiteral("groups.getIntegrations");
0232     case RestApiUtil::RestApiUrlType::GroupsHistory:
0233         return QStringLiteral("groups.history");
0234     case RestApiUtil::RestApiUrlType::GroupsInfo:
0235         return QStringLiteral("groups.info");
0236     case RestApiUtil::RestApiUrlType::GroupsInvite:
0237         return QStringLiteral("groups.invite");
0238     case RestApiUtil::RestApiUrlType::GroupsKick:
0239         return QStringLiteral("groups.kick");
0240     case RestApiUtil::RestApiUrlType::GroupsLeave:
0241         return QStringLiteral("groups.leave");
0242     case RestApiUtil::RestApiUrlType::GroupsList:
0243         return QStringLiteral("groups.list");
0244     case RestApiUtil::RestApiUrlType::GroupsOpen:
0245         return QStringLiteral("groups.open");
0246     case RestApiUtil::RestApiUrlType::GroupsRemoveModerator:
0247         return QStringLiteral("groups.removeModerator");
0248     case RestApiUtil::RestApiUrlType::GroupRemoveOwner:
0249         return QStringLiteral("groups.removeOwner");
0250     case RestApiUtil::RestApiUrlType::GroupsRename:
0251         return QStringLiteral("groups.rename");
0252     case RestApiUtil::RestApiUrlType::GroupsSetDescription:
0253         return QStringLiteral("groups.setDescription");
0254     case RestApiUtil::RestApiUrlType::GroupsSetPurpose:
0255         return QStringLiteral("groups.setPurpose");
0256     case RestApiUtil::RestApiUrlType::GroupsSetReadOnly:
0257         return QStringLiteral("groups.setReadOnly");
0258     case RestApiUtil::RestApiUrlType::GroupsSetTopic:
0259         return QStringLiteral("groups.setTopic");
0260     case RestApiUtil::RestApiUrlType::GroupsSetType:
0261         return QStringLiteral("groups.setType");
0262     case RestApiUtil::RestApiUrlType::GroupsUnarchive:
0263         return QStringLiteral("groups.unarchive");
0264     case RestApiUtil::RestApiUrlType::GroupsSetAnnouncement:
0265         return QStringLiteral("groups.setAnnouncement");
0266     case RestApiUtil::RestApiUrlType::GroupsFiles:
0267         return QStringLiteral("groups.files");
0268     case RestApiUtil::RestApiUrlType::GroupsRoles:
0269         return QStringLiteral("groups.roles");
0270     case RestApiUtil::RestApiUrlType::GroupsCounters:
0271         return QStringLiteral("groups.counters");
0272     case RestApiUtil::RestApiUrlType::GroupRemoveLeader:
0273         return QStringLiteral("groups.removeLeader");
0274     case RestApiUtil::RestApiUrlType::GroupsAddLeader:
0275         return QStringLiteral("groups.addLeader");
0276     case RestApiUtil::RestApiUrlType::GroupsDelete:
0277         return QStringLiteral("groups.delete");
0278     case RestApiUtil::RestApiUrlType::GroupsListAll:
0279         return QStringLiteral("groups.listAll");
0280     case RestApiUtil::RestApiUrlType::GroupsMembers:
0281         return QStringLiteral("groups.members");
0282     case RestApiUtil::RestApiUrlType::GroupsSetEncrypted:
0283         return QStringLiteral("groups.setEncrypted");
0284     case RestApiUtil::RestApiUrlType::ServerInfo:
0285         return QStringLiteral("info");
0286     case RestApiUtil::RestApiUrlType::Settings:
0287         return QStringLiteral("settings");
0288     case RestApiUtil::RestApiUrlType::SettingsPublic:
0289         return QStringLiteral("settings.public");
0290     case RestApiUtil::RestApiUrlType::UpdateAdminSettings:
0291         return QStringLiteral("settings");
0292     case RestApiUtil::RestApiUrlType::RoomsUpload:
0293         return QStringLiteral("rooms.upload");
0294     case RestApiUtil::RestApiUrlType::RoomsSaveNotification:
0295         return QStringLiteral("rooms.saveNotification");
0296     case RestApiUtil::RestApiUrlType::RoomsSaveSettings:
0297         return QStringLiteral("rooms.saveRoomSettings");
0298     case RestApiUtil::RestApiUrlType::RoomsAdminRooms:
0299         return QStringLiteral("rooms.adminRooms");
0300     case RestApiUtil::RestApiUrlType::RoomsAdminRoomsGetRoom:
0301         return QStringLiteral("rooms.adminRooms.getRoom");
0302     case RestApiUtil::RestApiUrlType::Spotlight:
0303         return QStringLiteral("spotlight");
0304     case RestApiUtil::RestApiUrlType::ImClose:
0305         return QStringLiteral("im.close");
0306     case RestApiUtil::RestApiUrlType::ImCreate:
0307         return QStringLiteral("im.create");
0308     case RestApiUtil::RestApiUrlType::ImOpen:
0309         return QStringLiteral("im.open");
0310     case RestApiUtil::RestApiUrlType::ImSetTopic:
0311         return QStringLiteral("im.setTopic");
0312     case RestApiUtil::RestApiUrlType::ImHistory:
0313         return QStringLiteral("im.history");
0314     case RestApiUtil::RestApiUrlType::ImFiles:
0315         return QStringLiteral("im.files");
0316     case RestApiUtil::RestApiUrlType::ImDelete:
0317         return QStringLiteral("im.delete");
0318     case RestApiUtil::RestApiUrlType::ImMessages:
0319         return QStringLiteral("im.messages");
0320     case RestApiUtil::RestApiUrlType::ImMembers:
0321         return QStringLiteral("im.members");
0322     case RestApiUtil::RestApiUrlType::LoadEmojiCustom:
0323         return QStringLiteral("emoji-custom.list");
0324     case RestApiUtil::RestApiUrlType::EmojiCustomDelete:
0325         return QStringLiteral("emoji-custom.delete");
0326     case RestApiUtil::RestApiUrlType::EmojiCustomCreate:
0327         return QStringLiteral("emoji-custom.create");
0328     case RestApiUtil::RestApiUrlType::EmojiCustomUpdate:
0329         return QStringLiteral("emoji-custom.update");
0330     case RestApiUtil::RestApiUrlType::EmojiCustomAll:
0331         return QStringLiteral("emoji-custom.all");
0332     case RestApiUtil::RestApiUrlType::SubscriptionsRead:
0333         return QStringLiteral("subscriptions.read");
0334     case RestApiUtil::RestApiUrlType::SubscriptionsUnRead:
0335         return QStringLiteral("subscriptions.unread");
0336     case RestApiUtil::RestApiUrlType::RoomsGet:
0337         return QStringLiteral("rooms.get");
0338     case RestApiUtil::RestApiUrlType::RoomsFavorite:
0339         return QStringLiteral("rooms.favorite");
0340     case RestApiUtil::RestApiUrlType::RoomsCleanHistory:
0341         return QStringLiteral("rooms.cleanHistory");
0342     // since 1.0.0
0343     case RestApiUtil::RestApiUrlType::RoomsCreateDiscussion:
0344         return QStringLiteral("rooms.createDiscussion");
0345     case RestApiUtil::RestApiUrlType::RoomsGetDiscussions:
0346         return QStringLiteral("rooms.getDiscussions");
0347 
0348     // since 3.8.0
0349     case RestApiUtil::RestApiUrlType::RoomsExport:
0350         return QStringLiteral("rooms.export");
0351     case RestApiUtil::RestApiUrlType::RoomsChangeArchivactionState:
0352         return QStringLiteral("rooms.changeArchivationState");
0353     // since 0.72 ? Need to implement it
0354     case RestApiUtil::RestApiUrlType::RoomsInfo:
0355         return QStringLiteral("rooms.info");
0356     case RestApiUtil::RestApiUrlType::RoomsLeave:
0357         return QStringLiteral("rooms.leave");
0358         // Since 5.4.0
0359     case RestApiUtil::RestApiUrlType::RoomsDelete:
0360         return QStringLiteral("rooms.delete");
0361 
0362     //
0363     case RestApiUtil::RestApiUrlType::ForgotPassword:
0364         return QStringLiteral("users.forgotPassword");
0365     case RestApiUtil::RestApiUrlType::CommandsList:
0366         return QStringLiteral("commands.list");
0367     case RestApiUtil::RestApiUrlType::CommandsGet:
0368         return QStringLiteral("commands.get");
0369     case RestApiUtil::RestApiUrlType::CommandsRun:
0370         return QStringLiteral("commands.run");
0371     case RestApiUtil::RestApiUrlType::CommandsPreview:
0372         return QStringLiteral("commands.preview");
0373     case RestApiUtil::RestApiUrlType::E2EfetchMyKeys:
0374         return QStringLiteral("e2e.fetchMyKeys");
0375     case RestApiUtil::RestApiUrlType::E2EupdateGroupKey:
0376         return QStringLiteral("e2e.updateGroupKey");
0377 
0378     case RestApiUtil::RestApiUrlType::E2ESetRoomKeyID:
0379         return QStringLiteral("e2e.setRoomKeyID");
0380     case RestApiUtil::RestApiUrlType::E2ESetUserPublicAndPrivateKeys:
0381         return QStringLiteral("e2e.setUserPublicAndPrivateKeys");
0382     case RestApiUtil::RestApiUrlType::E2EGetUsersOfRoomWithoutKey:
0383         return QStringLiteral("e2e.getUsersOfRoomWithoutKey");
0384     case RestApiUtil::RestApiUrlType::E2ERequestSubscriptionKeys:
0385         return QStringLiteral("e2e.requestSubscriptionKeys");
0386     case RestApiUtil::RestApiUrlType::E2EResetOwnE2EKey:
0387         return QStringLiteral("e2e.resetOwnE2EKey");
0388 
0389     case RestApiUtil::RestApiUrlType::RolesList:
0390         return QStringLiteral("roles.list");
0391     case RestApiUtil::RestApiUrlType::RolesCreate:
0392         return QStringLiteral("roles.create");
0393     case RestApiUtil::RestApiUrlType::RolesSync:
0394         return QStringLiteral("roles.sync");
0395     case RestApiUtil::RestApiUrlType::RolesUpdate:
0396         return QStringLiteral("roles.update");
0397     case RestApiUtil::RestApiUrlType::RolesGetUsersInRole:
0398         return QStringLiteral("roles.getUsersInRole");
0399     case RestApiUtil::RestApiUrlType::RolesAddUserToRole:
0400         return QStringLiteral("roles.addUserToRole");
0401     case RestApiUtil::RestApiUrlType::RolesRemoveUserFromRole:
0402         return QStringLiteral("roles.removeUserFromRole");
0403 
0404     case RestApiUtil::RestApiUrlType::RolesDelete:
0405         return QStringLiteral("roles.delete");
0406 
0407     case RestApiUtil::RestApiUrlType::VideoConfJitsi:
0408         return QStringLiteral("video-conference/jitsi.update-timeout");
0409 
0410     case RestApiUtil::RestApiUrlType::AutoTranslateGetSupportedLanguages:
0411         return QStringLiteral("autotranslate.getSupportedLanguages");
0412     case RestApiUtil::RestApiUrlType::AutoTranslateSaveSettings:
0413         return QStringLiteral("autotranslate.saveSettings");
0414     case RestApiUtil::RestApiUrlType::AutoTranslateTranslateMessage:
0415         return QStringLiteral("autotranslate.translateMessage");
0416 
0417     case RestApiUtil::RestApiUrlType::CustomUserStatusList:
0418         return QStringLiteral("custom-user-status.list");
0419     case RestApiUtil::RestApiUrlType::CustomUserStatusCreate:
0420         return QStringLiteral("custom-user-status.create");
0421     case RestApiUtil::RestApiUrlType::CustomUserStatusDelete:
0422         return QStringLiteral("custom-user-status.delete");
0423     case RestApiUtil::RestApiUrlType::CustomUserStatusUpdate:
0424         return QStringLiteral("custom-user-status.update");
0425 
0426     case RestApiUtil::RestApiUrlType::CustomSoundsList:
0427         return QStringLiteral("custom-sounds.list");
0428     case RestApiUtil::RestApiUrlType::FindOrCreateInvite:
0429         return QStringLiteral("findOrCreateInvite");
0430     case RestApiUtil::RestApiUrlType::ListInvites:
0431         return QStringLiteral("listInvites");
0432     case RestApiUtil::RestApiUrlType::RemoveInvite:
0433         return QStringLiteral("removeInvite");
0434     case RestApiUtil::RestApiUrlType::UseInviteToken:
0435         return QStringLiteral("useInviteToken");
0436     case RestApiUtil::RestApiUrlType::ValidateInviteToken:
0437         return QStringLiteral("validateInviteToken");
0438     case RestApiUtil::RestApiUrlType::SendInvitationEmails:
0439         return QStringLiteral("sendInvitationEmail");
0440     case RestApiUtil::RestApiUrlType::RoomsAutocompleteChannelAndPrivate:
0441         return QStringLiteral("rooms.autocomplete.channelAndPrivate");
0442     case RestApiUtil::RestApiUrlType::Users2FASendEmailCode:
0443         return QStringLiteral("users.2fa.sendEmailCode");
0444     case RestApiUtil::RestApiUrlType::Users2FAEnableEmail:
0445         return QStringLiteral("users.2fa.enableEmail");
0446     case RestApiUtil::RestApiUrlType::Users2FADisableEmail:
0447         return QStringLiteral("users.2fa.disableEmail");
0448 
0449     case RestApiUtil::RestApiUrlType::UsersDeleteOwnAccount:
0450         return QStringLiteral("users.deleteOwnAccount");
0451     case RestApiUtil::RestApiUrlType::UsersSetPreferences:
0452         return QStringLiteral("users.setPreferences");
0453     case RestApiUtil::RestApiUrlType::PermissionsListAll:
0454         return QStringLiteral("permissions.listAll");
0455     case RestApiUtil::RestApiUrlType::PermissionsUpdate:
0456         return QStringLiteral("permissions.update");
0457     case RestApiUtil::RestApiUrlType::Statistics:
0458         return QStringLiteral("statistics");
0459     case RestApiUtil::RestApiUrlType::Directory:
0460         return QStringLiteral("directory");
0461 
0462     case RestApiUtil::RestApiUrlType::TeamsList:
0463         return QStringLiteral("teams.list");
0464     case RestApiUtil::RestApiUrlType::TeamsListAll:
0465         return QStringLiteral("teams.listAll");
0466     case RestApiUtil::RestApiUrlType::TeamsCreate:
0467         return QStringLiteral("teams.create");
0468     case RestApiUtil::RestApiUrlType::TeamsAddRooms:
0469         return QStringLiteral("teams.addRooms");
0470     case RestApiUtil::RestApiUrlType::TeamsRemoveRoom:
0471         return QStringLiteral("teams.removeRoom");
0472     case RestApiUtil::RestApiUrlType::TeamsUpdateRoom:
0473         return QStringLiteral("teams.updateRoom");
0474     case RestApiUtil::RestApiUrlType::TeamsListRooms:
0475         return QStringLiteral("teams.listRooms");
0476     case RestApiUtil::RestApiUrlType::TeamsListRoomsOfUser:
0477         return QStringLiteral("teams.listRoomsOfUser");
0478     case RestApiUtil::RestApiUrlType::TeamsMembers:
0479         return QStringLiteral("teams.members");
0480     case RestApiUtil::RestApiUrlType::TeamsAddMembers:
0481         return QStringLiteral("teams.addMembers");
0482     case RestApiUtil::RestApiUrlType::TeamsUpdateMember:
0483         return QStringLiteral("teams.updateMember");
0484     case RestApiUtil::RestApiUrlType::TeamsRemoveMember:
0485         return QStringLiteral("teams.removeMember");
0486     case RestApiUtil::RestApiUrlType::TeamsLeave:
0487         return QStringLiteral("teams.leave");
0488     case RestApiUtil::RestApiUrlType::TeamsInfo:
0489         return QStringLiteral("teams.info");
0490     case RestApiUtil::RestApiUrlType::TeamsDelete:
0491         return QStringLiteral("teams.delete");
0492     case RestApiUtil::RestApiUrlType::TeamsAutocomplete:
0493         return QStringLiteral("teams.autocomplete");
0494     case RestApiUtil::RestApiUrlType::TeamsConvertToChannel:
0495         return QStringLiteral("teams.convertToChannel");
0496     case RestApiUtil::RestApiUrlType::RoomsAutocompleteAvailableForTeams:
0497         return QStringLiteral("rooms.autocomplete.availableForTeams");
0498     case RestApiUtil::RestApiUrlType::ChannelsConvertToTeam:
0499         return QStringLiteral("channels.convertToTeam");
0500     case RestApiUtil::RestApiUrlType::GroupsConvertToTeam:
0501         return QStringLiteral("groups.convertToTeam");
0502     case RestApiUtil::RestApiUrlType::StdoutQueue:
0503         return QStringLiteral("stdout.queue");
0504     case RestApiUtil::RestApiUrlType::OauthAppsList:
0505         return QStringLiteral("oauth-apps.list");
0506     case RestApiUtil::RestApiUrlType::OauthAppsGet:
0507         return QStringLiteral("oauth-apps.get");
0508     case RestApiUtil::RestApiUrlType::OauthAppsCreate:
0509         return QStringLiteral("oauth-apps.create");
0510 
0511     case RestApiUtil::RestApiUrlType::SettingsOauth:
0512         return QStringLiteral("settings.oauth");
0513     case RestApiUtil::RestApiUrlType::SettingsAddCustomOauth:
0514         return QStringLiteral("settings.addCustomOAuth");
0515 
0516     case RestApiUtil::RestApiUrlType::LicensesGet:
0517         return QStringLiteral("licenses.get");
0518     case RestApiUtil::RestApiUrlType::LicensesMaxActiveUsers:
0519         return QStringLiteral("licenses.maxActiveUsers");
0520     case RestApiUtil::RestApiUrlType::LicensesAdd:
0521         return QStringLiteral("licenses.add");
0522     case RestApiUtil::RestApiUrlType::LicensesIsEntreprise:
0523         return QStringLiteral("licenses.isEnterprise");
0524 
0525     case RestApiUtil::RestApiUrlType::BannersDismiss:
0526         return QStringLiteral("banners.dismiss");
0527     case RestApiUtil::RestApiUrlType::Banners:
0528         return QStringLiteral("banners");
0529 
0530     // RC 5.0
0531     case RestApiUtil::RestApiUrlType::SessionsList:
0532         return QStringLiteral("sessions/list");
0533     case RestApiUtil::RestApiUrlType::SessionsInfo:
0534         return QStringLiteral("sessions/info");
0535     case RestApiUtil::RestApiUrlType::SessionsListAll:
0536         return QStringLiteral("sessions/list.all");
0537     case RestApiUtil::RestApiUrlType::SessionsLogoutMe:
0538         return QStringLiteral("sessions/logout.me");
0539     case RestApiUtil::RestApiUrlType::SessionsLogout:
0540         return QStringLiteral("sessions/logout");
0541     case RestApiUtil::RestApiUrlType::SessionsInfoAdmin:
0542         return QStringLiteral("sessions/info.admin");
0543 
0544     case RestApiUtil::RestApiUrlType::UserRequestDataDownload:
0545         return QStringLiteral("users.requestDataDownload");
0546 
0547     case RestApiUtil::RestApiUrlType::VideoConferenceStart:
0548         return QStringLiteral("video-conference.start");
0549     case RestApiUtil::RestApiUrlType::VideoConferenceJoin:
0550         return QStringLiteral("video-conference.join");
0551     case RestApiUtil::RestApiUrlType::VideoConferenceCancel:
0552         return QStringLiteral("video-conference.cancel");
0553     case RestApiUtil::RestApiUrlType::VideoConferenceInfo:
0554         return QStringLiteral("video-conference.info");
0555     case RestApiUtil::RestApiUrlType::VideoConferenceList:
0556         return QStringLiteral("video-conference.list");
0557     case RestApiUtil::RestApiUrlType::VideoConferenceProviders:
0558         return QStringLiteral("video-conference.providers");
0559     case RestApiUtil::RestApiUrlType::VideoConferenceCapabilities:
0560         return QStringLiteral("video-conference.capabilities");
0561     case RestApiUtil::RestApiUrlType::ModerationReportsByUsers:
0562         return QStringLiteral("moderation.reportsByUsers");
0563     case RestApiUtil::RestApiUrlType::ModerationDismissReports:
0564         return QStringLiteral("moderation.dismissReports");
0565     case RestApiUtil::RestApiUrlType::ModerationUserReportedMessages:
0566         return QStringLiteral("moderation.user.reportedMessages");
0567     case RestApiUtil::RestApiUrlType::ModerationUserDeleteReportedMessages:
0568         return QStringLiteral("moderation.user.deleteReportedMessages");
0569     case RestApiUtil::RestApiUrlType::ModerationReports:
0570         return QStringLiteral("moderation.reports");
0571     case RestApiUtil::RestApiUrlType::ModerationReportInfo:
0572         return QStringLiteral("moderation.reportInfo");
0573     }
0574     qCWarning(ROCKETCHATQTRESTAPI_LOG) << "Unknown RestApiUtil::RestApiUrlType " << static_cast<int>(type);
0575     return {};
0576 }
0577 
0578 QByteArray RestApiUtil::convertSha256Password(const QString &pwd)
0579 {
0580     const QByteArray sha256pw = QCryptographicHash::hash(pwd.toUtf8(), QCryptographicHash::Sha256);
0581     return sha256pw.toHex();
0582 }