* start moving ui to redux tlk * remove unused reducer * changes for gdpr and site types * ui: migrating duck/roles to mobx * ui: drop unreferenced types * ui: drop unreferenced types * ui: move player slice reducer to mobx family * ui: move assignments to issueReportingStore.ts * remove issues store * some fixes after issues store * remove errors reducer, drop old components * finish removing errors reducer * start moving integrations state to mobx * change(ui): funnel duck cleanup * change(ui): custom fields * change(ui): customMetrics cleanup * change(ui): customMetrics cleanup * change(ui): duck/filters minor cleanup * change(ui): duck/filters cleanup * change(ui): duck/customMetrics cleanup and upgrades * fix integrations service, fix babel config to >.25 + not ie * refactoring integrations reducers etc WIP * finish removing integrations state * some fixes for integrated check * start of projects refactoring * move api and "few" files to new project store * new batch for site -> projects * fix setid context * move all critical components, drop site duck * remove all duck/site refs, remove old components * fixup for SessionTags.tsx, remove duck/sources (?) * move session store * init sessionstore outside of context * fix userfilter * replace simple actions for session store * sessions sotre * Rtm temp (#2597) * change(ui): duck/search wip * change(ui): duck/search wip * change(ui): duck/search wip * change(ui): duck/searchLive wip * change(ui): duck/searchLive wip * change(ui): duck/searchLive wip * change(ui): duck/searchLive wip * change(ui): search states * change(ui): search states * change(ui): search states * change(ui): fix savedSearch store * change(ui): fix savedSearch store * some fixes for session connector * change(ui): fix savedSearch store * change(ui): fix searchLive * change(ui): fix searchLive * fixes for session replay * change(ui): bookmark fetch * last components for sessions * add fetchautoplaylist * finish session reducer, remove deleted reducers * change(ui): fix the search fetch * change(ui): fix the search fetch * fix integrations call ctx * ensure ctx for sessionstore * fix(ui): checking for latest sessions path * start removing user reducer * removing user reducer pt2... * finish user store * remove rand log * fix crashes * tinkering workflow file for tracker test * making sure prefetched sessions work properly * fix conflict * fix router redirects during loading --------- Co-authored-by: Shekar Siri <sshekarsiri@gmail.com>
205 lines
5.9 KiB
TypeScript
205 lines
5.9 KiB
TypeScript
import APIClient from 'App/api_client';
|
|
import User from 'App/mstore/types/user';
|
|
|
|
export default class UserService {
|
|
private client: APIClient;
|
|
|
|
constructor(client?: APIClient) {
|
|
this.client = client ? client : new APIClient();
|
|
}
|
|
|
|
initClient(client?: APIClient) {
|
|
this.client = client || new APIClient();
|
|
}
|
|
|
|
all() {
|
|
return this.client
|
|
.get('/client/members')
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || []);
|
|
}
|
|
|
|
one(userId: string) {
|
|
return this.client
|
|
.get('/users/' + userId)
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
save(user: User): Promise<any> {
|
|
const data = user.toSave();
|
|
if (user.userId) {
|
|
return this.client
|
|
.put('/client/members/' + user.userId, data)
|
|
.then((r) => r.json())
|
|
.then((response: { data: any }) => response.data || {})
|
|
.catch((e) => Promise.reject(e));
|
|
} else {
|
|
return this.client
|
|
.post('/client/members', data)
|
|
.then((r) => r.json())
|
|
.then((response: { data: any }) => response.data || {})
|
|
.catch((e) => Promise.reject(e));
|
|
}
|
|
}
|
|
|
|
generateInviteCode(userId: any): Promise<any> {
|
|
return this.client
|
|
.get(`/client/members/${userId}/reset`)
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
delete(userId: string) {
|
|
return this.client
|
|
.delete('/client/members/' + userId)
|
|
.then((r) => r.json())
|
|
.then((response: { data: any }) => response.data || {})
|
|
.catch((e) => Promise.reject(e));
|
|
}
|
|
|
|
getRoles() {
|
|
return this.client
|
|
.get('/client/roles')
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || []);
|
|
}
|
|
|
|
createRole(role: any) {
|
|
return this.client.post('/client/roles/', role).then((r) => r.json());
|
|
}
|
|
|
|
modifyRole(role: any) {
|
|
return this.client
|
|
.put(`/client/roles/${role.roleId}`, role)
|
|
.then((r) => r.json());
|
|
}
|
|
|
|
deleteRole(roleId: string) {
|
|
return this.client.delete(`/client/roles/${roleId}`).then((r) => r.json());
|
|
}
|
|
|
|
getLimits() {
|
|
return this.client
|
|
.get('/limits')
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
getNotificationsCount() {
|
|
return this.client
|
|
.get('/notifications/count')
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
getNotifications() {
|
|
return this.client
|
|
.get('/notifications')
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
ignoreNotification(notificationId: number) {
|
|
return this.client
|
|
.get(`/notifications/${notificationId}/view`)
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
ignoreAllNotifications(params: any) {
|
|
return this.client
|
|
.post(`/notifications/view`, params)
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
saveModules(module: any) {
|
|
return this.client
|
|
.post('/users/modules', module)
|
|
.then((r) => r.json())
|
|
.then((response: { data: any }) => response.data || {})
|
|
.catch((e) => Promise.reject(e));
|
|
}
|
|
|
|
login(data: any) {
|
|
return this.client
|
|
.post('/login', data)
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
signup(data: any) {
|
|
return this.client
|
|
.post('/signup', data)
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
resetPassword(data: any) {
|
|
return this.client
|
|
.post('/password/reset', data)
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
requestResetPassword(data: any) {
|
|
return this.client
|
|
.post('/password/reset-link', data)
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
updatePassword(data: any) {
|
|
return this.client
|
|
.post('/account/password', data)
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
fetchTenants() {
|
|
return this.client
|
|
.get('/signup')
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || []);
|
|
}
|
|
|
|
fetchUserInfo() {
|
|
return this.client
|
|
.get('/account')
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
logout() {
|
|
return this.client
|
|
.post('/logout')
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
updateClient(data: any) {
|
|
return this.client
|
|
.post('/account', data)
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
updateAccount(data: any) {
|
|
return this.updateClient(data)
|
|
}
|
|
|
|
resendEmailVerification(data: any) {
|
|
return this.client
|
|
.post('/re-validate', data)
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
|
|
changeScope(scope: 1 | 2) {
|
|
return this.client
|
|
.post('/account/scope', { scope })
|
|
.then((response: { json: () => any }) => response.json())
|
|
.then((response: { data: any }) => response.data || {});
|
|
}
|
|
}
|