Files
lcbp3/frontend/lib/services/user.service.ts
admin aa96cd90e3
Some checks failed
Spec Validation / validate-markdown (push) Has been cancelled
Spec Validation / validate-diagrams (push) Has been cancelled
Spec Validation / check-todos (push) Has been cancelled
251209:1453 Frontend: progress nest = UAT & Bug Fixing
2025-12-09 14:53:42 +07:00

44 lines
1.2 KiB
TypeScript

import apiClient from "@/lib/api/client";
import { CreateUserDto, UpdateUserDto, SearchUserDto, User } from "@/types/user";
export const userService = {
getAll: async (params?: SearchUserDto) => {
const response = await apiClient.get<any>("/users", { params });
// Unwrap NestJS TransformInterceptor response
if (response.data?.data) {
return response.data.data as User[];
}
return response.data as User[];
},
getRoles: async () => {
const response = await apiClient.get<any>("/users/roles");
if (response.data?.data) {
return response.data.data;
}
return response.data;
},
getById: async (id: number) => {
const response = await apiClient.get<User>(`/users/${id}`);
return response.data;
},
create: async (data: CreateUserDto) => {
const response = await apiClient.post<User>("/users", data);
return response.data;
},
update: async (id: number, data: UpdateUserDto) => {
const response = await apiClient.put<User>(`/users/${id}`, data);
return response.data;
},
delete: async (id: number) => {
const response = await apiClient.delete(`/users/${id}`);
return response.data;
},
// Optional: Reset Password, Deactivate etc.
};