import type { Requests, Responses } from '@/dto';
import { UserRole, get_token, post_token } 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
	);