1 /*
2    SPDX-FileCopyrightText: 2017-2021 Laurent Montel <montel@kde.org>
3 
4    SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include "librestapi_private_export.h"
10 #include <QString>
11 
12 namespace RestApiUtil
13 {
14 enum class RestApiUrlType {
15     Login,
16     Logout,
17     Me,
18     UsersCreate,
19     UsersDelete,
20     UsersCreateToken,
21     UsersGetPresence,
22     UsersInfo,
23     UsersList,
24     UsersRegister,
25     UsersGetAvatar,
26     UsersResetAvatar,
27     UsersSetAvatar,
28     UsersUpdate,
29     UsersPresence, /*since 1.1.0*/
30     UsersUpdateOwnBasicInfo,
31     UsersRegeneratePersonalAccessToken,
32     UsersGetUsernameSuggestion,
33     UsersRemovePersonalAccessToken,
34     UsersGeneratePersonalAccessToken,
35     UsersSetStatus,
36     UsersGetStatus,
37     /* ... 2.4 ? */
38     UsersAutocomplete,
39     /* ... 3.1 ? */
40     UsersRemoveOtherTokens,
41     UsersDeleteOwnAccount,
42     UsersSetActiveStatus,
43 
44     ChatDelete,
45     ChatGetMessage,
46     ChatPinMessage,
47     ChatPostMessage,
48     ChatReact,
49     ChatSearch,
50     ChatStarMessage,
51     ChatUnPinMessage,
52     ChatUnStarMessage,
53     ChatUpdate,
54     ChatIgnoreUser,
55     ChatReportMessage,
56     // Since 1.0.0
57     ChatFollowMessage,
58     ChatUnFollowMessage,
59     ChatGetThreadsList,
60     ChatSyncThreadMessages,
61     ChatGetThreadMessages,
62     ChatSyncThreadsList,
63     ChatGetDeletedMessage,
64     ChatSendMessage,
65     ChatMessageReadReceipts,
66     // Since 2.0.0
67     ChatGetPinnedMessages,
68     ChatGetMentionedMessages,
69 
70     // Since 2.2.x
71     ChatGetStarredMessages,
72     ChatGetSnippetedMessages,
73 
74     ChannelsAddAll,
75     //@since 0.75
76     ChannelsAddLeader,
77     ChannelsAddModerator,
78     ChannelsAddOwner,
79     ChannelsArchive,
80     ChannelsClose,
81     ChannelsCreate,
82     ChannelsGetIntegrations,
83     ChannelsHistory,
84     ChannelsInfo,
85     ChannelsInvite,
86     ChannelsKick,
87     ChannelsLeave,
88     ChannelsList,
89     ChannelsListJoined,
90     ChannelsOpen,
91     ChannelsRemoveModerator,
92     ChannelsRemoveOwner,
93     //@since 0.75
94     ChannelsRemoveLeader,
95     ChannelsRename,
96     ChannelsSetDescription,
97     ChannelsSetJoinCode,
98     ChannelsSetPurpose,
99     ChannelsSetReadOnly,
100     ChannelsSetTopic,
101     ChannelsSetType,
102     ChannelsSetAnnouncement,
103     ChannelsFiles,
104     ChannelsUnarchive,
105     ChannelsCounters,
106     ChannelsMembers,
107     ChannelsJoin,
108     ChannelsOnline,
109     // since 0.70
110     ChannelsModerators,
111     // Since 0.71
112     ChannelsDelete,
113     // since 0.65
114     ChannelsRoles,
115     // since 0.63
116     ChannelsGetAllUserMentionsByChannel,
117     GroupsAddAll,
118     GroupsAddModerator,
119     GroupsAddOwner,
120     GroupsAddLeader,
121     GroupsArchive,
122     GroupsClose,
123     GroupsCreate,
124     // since 0.70
125     GroupsDelete,
126     GroupsGetIntegrations,
127     GroupsHistory,
128     GroupsInfo,
129     GroupsInvite,
130     GroupsKick,
131     GroupsLeave,
132     GroupsList,
133     GroupsOpen,
134     GroupsRemoveModerator,
135     GroupRemoveOwner,
136     GroupRemoveLeader,
137     GroupsRename,
138     GroupsSetDescription,
139     GroupsSetPurpose,
140     GroupsSetReadOnly,
141     GroupsSetTopic,
142     GroupsSetType,
143     GroupsUnarchive,
144     GroupsSetAnnouncement,
145     GroupsFiles,
146     GroupsListAll,
147     GroupsMembers,
148     // Since 0.65
149     GroupsRoles,
150     GroupsCounters,
151     GroupsSetEncrypted,
152     ServerInfo,
153     Settings,
154     SettingsPublic,
155     Spotlight,
156     LoadEmojiCustom,
157     EmojiCustomDelete,
158     EmojiCustomCreate,
159     EmojiCustomUpdate,
160     EmojiCustomAll,
161 
162     RoomsUpload,
163     RoomsSaveNotification,
164     RoomsSaveSettings,
165     RoomsAdminRooms,
166     RoomsAdminRoomsGetRoom,
167     ImClose,
168     ImCreate,
169     ImHistory,
170     ImFiles,
171     ImOpen,
172     ImMessages,
173     ImDelete,
174     // Since 0.59
175     ImMembers,
176     ImSetTopic,
177     SubscriptionsRead,
178     SubscriptionsUnRead,
179     SettingsOauth,
180     RoomsGet,
181     RoomsFavorite,
182     RoomsCleanHistory,
183     RoomsInfo,
184     RoomsLeave,
185     RoomsCreateDiscussion,
186     RoomsGetDiscussions,
187     RoomsExport,
188     RoomsChangeArchivactionState,
189 
190     ForgotPassword,
191     CommandsList,
192     CommandsGet,
193     CommandsRun,
194     CommandsPreview,
195     // since 0.70
196     E2ESetRoomKeyID,
197     E2EfetchMyKeys,
198     E2EupdateGroupKey,
199     E2ESetUserPublicAndPrivateKeys,
200     E2EGetUsersOfRoomWithoutKey,
201     E2ERequestSubscriptionKeys,
202 
203     RolesList,
204     RolesCreate,
205     RolesUpdate,
206     RolesSync,
207     RolesDelete,
208     RolesAddUserToRole,
209     RolesGetUsersInRole,
210     RolesRemoveUserFromRole,
211 
212     // since 0.74
213     VideoConfJitsi,
214 
215     // Autotranslate @since 2.0
216     AutoTranslateGetSupportedLanguages,
217     AutoTranslateSaveSettings,
218     AutoTranslateTranslateMessage,
219 
220     // Since 2.4
221     CustomUserStatusList,
222     CustomUserStatusCreate,
223     CustomUserStatusDelete,
224     CustomUserStatusUpdate,
225     CustomSoundsList,
226 
227     // Invite since 2.5 ?
228     FindOrCreateInvite,
229     ListInvites,
230     RemoveInvite,
231     UseInviteToken,
232     ValidateInviteToken,
233 
234     // Since 2.4.0
235     RoomsAutocompleteChannelAndPrivate,
236 
237     // two factor authentication
238     Users2FASendEmailCode,
239     Users2FAEnableEmail,
240     Users2FADisableEmail,
241 
242     UsersSetPreferences,
243 
244     // Permission
245     PermissionsListAll,
246     PermissionsUpdate,
247 
248     Statistics,
249 
250     Directory,
251 
252     // Teams 3.13
253     TeamsList,
254     TeamsListAll,
255     TeamsCreate,
256     TeamsAddRooms,
257     TeamsRemoveRoom,
258     TeamsUpdateRoom,
259     TeamsListRooms,
260     TeamsListRoomsOfUser,
261     TeamsMembers,
262     TeamsAddMembers,
263     TeamsUpdateMember,
264     TeamsRemoveMember,
265     TeamsLeave,
266     TeamsInfo,
267     TeamsDelete,
268     TeamsAutocomplete,
269     TeamsConvertToChannel,
270     RoomsAutocompleteAvailableForTeams,
271     ChannelsConvertToTeam,
272     GroupsConvertToTeam,
273 
274     StdoutQueue,
275 
276     OauthAppsList,
277     OauthAppsGet,
278 
279     // License
280     LicensesGet,
281     LicensesMaxActiveUsers,
282     LicensesAdd,
283 };
284 LIBROCKETCHATRESTAPI_QT5_EXPORT QString adaptUrl(const QString &url);
285 LIBROCKETCHATRESTAPI_QT5_TESTS_EXPORT QString restUrl(RestApiUtil::RestApiUrlType type);
286 LIBROCKETCHATRESTAPI_QT5_TESTS_EXPORT QString apiUri();
287 LIBROCKETCHATRESTAPI_QT5_TESTS_EXPORT QByteArray convertSha256Password(const QString &pwd);
288 }
289 
290