65 lines
1.3 KiB
TypeScript
65 lines
1.3 KiB
TypeScript
import type { Requests, Responses } from '@/dto';
|
|
import { UserRole, get_token, post_token, isErrorResponse } from './base';
|
|
|
|
export const get_users = (token: string): Promise<Responses.GetUsers> =>
|
|
get_token('/api/admin/users', token);
|
|
|
|
export const set_role = (
|
|
user: number,
|
|
role: UserRole,
|
|
token: string
|
|
): Promise<Responses.Success | Responses.Error> =>
|
|
post_token<Requests.SetUserRole>(
|
|
'/api/admin/set_role',
|
|
{
|
|
user,
|
|
role
|
|
},
|
|
token
|
|
);
|
|
|
|
export const logout = (
|
|
user: number,
|
|
token: string
|
|
): Promise<Responses.Success | Responses.Error> =>
|
|
post_token<Requests.Admin>(
|
|
'/api/admin/logout',
|
|
{
|
|
user
|
|
},
|
|
token
|
|
);
|
|
|
|
export const delete_user = (
|
|
user: number,
|
|
token: string
|
|
): Promise<Responses.Success | Responses.Error> =>
|
|
post_token<Requests.Admin>(
|
|
'/api/admin/delete',
|
|
{
|
|
user
|
|
},
|
|
token
|
|
);
|
|
|
|
export const disable_tfa = (
|
|
user: number,
|
|
token: string
|
|
): Promise<Responses.Success | Responses.Error> =>
|
|
post_token<Requests.Admin>(
|
|
'/api/admin/disable_2fa',
|
|
{
|
|
user
|
|
},
|
|
token
|
|
);
|
|
|
|
export const impersonate = (
|
|
user: number,
|
|
token: string
|
|
): Promise<Responses.Login | Responses.Error> =>
|
|
get_token(`/api/admin/get_token/${user}`, token);
|
|
|
|
export const is_admin = async (token: string): Promise<boolean> =>
|
|
!isErrorResponse(await get_token('/api/admin/is_admin', token));
|