55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
import api from '../utils/api';
|
|
|
|
export enum AdminRole {
|
|
SUPER_ADMIN = 'super_admin',
|
|
OPERATOR = 'operator',
|
|
VIEWER = 'viewer',
|
|
}
|
|
|
|
export interface AdminUser {
|
|
id: number;
|
|
username: string;
|
|
role: AdminRole;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}
|
|
|
|
export interface CreateAdminUserDto {
|
|
username: string;
|
|
password: string;
|
|
role: AdminRole;
|
|
}
|
|
|
|
export interface UpdateAdminUserDto {
|
|
username?: string;
|
|
password?: string;
|
|
role?: AdminRole;
|
|
}
|
|
|
|
export const adminUsersService = {
|
|
async findAll(): Promise<AdminUser[]> {
|
|
const response = await api.get<AdminUser[]>('/admin/admin-users');
|
|
return response.data;
|
|
},
|
|
|
|
async findOne(id: number): Promise<AdminUser> {
|
|
const response = await api.get<AdminUser>(`/admin/admin-users/${id}`);
|
|
return response.data;
|
|
},
|
|
|
|
async create(data: CreateAdminUserDto): Promise<AdminUser> {
|
|
const response = await api.post<AdminUser>('/admin/admin-users', data);
|
|
return response.data;
|
|
},
|
|
|
|
async update(id: number, data: UpdateAdminUserDto): Promise<AdminUser> {
|
|
const response = await api.put<AdminUser>(`/admin/admin-users/${id}`, data);
|
|
return response.data;
|
|
},
|
|
|
|
async remove(id: number): Promise<{ message: string }> {
|
|
const response = await api.delete<{ message: string }>(`/admin/admin-users/${id}`);
|
|
return response.data;
|
|
},
|
|
};
|