| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import axios from "axios";
- import type { User } from "../../share/types.ts";
- interface UsersResponse {
- data: User[];
- pagination: {
- total: number;
- current: number;
- pageSize: number;
- totalPages: number;
- };
- }
- interface UserResponse {
- data: User;
- message?: string;
- }
- interface UserCreateResponse {
- message: string;
- data: User;
- }
- interface UserUpdateResponse {
- message: string;
- data: User;
- }
- interface UserDeleteResponse {
- message: string;
- id: number;
- }
- interface UserConvertResponse {
- message: string;
- data: User;
- }
- export const UserAPI = {
- getUsers: async (
- params?: { page?: number; limit?: number; search?: string },
- ): Promise<UsersResponse> => {
- try {
- const response = await axios.get("/users", { params });
- return response.data;
- } catch (error) {
- throw error;
- }
- },
- getUser: async (userId: number): Promise<UserResponse> => {
- try {
- const response = await axios.get(`/users/${userId}`);
- return response.data;
- } catch (error) {
- throw error;
- }
- },
- createUser: async (userData: Partial<User>): Promise<UserCreateResponse> => {
- try {
- const response = await axios.post("/users", userData);
- return response.data;
- } catch (error) {
- throw error;
- }
- },
- updateUser: async (
- userId: number,
- userData: Partial<User>,
- ): Promise<UserUpdateResponse> => {
- try {
- const response = await axios.put(`/users/${userId}`, userData);
- return response.data;
- } catch (error) {
- throw error;
- }
- },
- deleteUser: async (userId: number): Promise<UserDeleteResponse> => {
- try {
- const response = await axios.delete(`/users/${userId}`);
- return response.data;
- } catch (error) {
- throw error;
- }
- },
- convertToStudent: async (userId: number): Promise<UserConvertResponse> => {
- try {
- const response = await axios.post(`/users/${userId}/convert-to-student`, {});
- return response.data;
- } catch (error) {
- throw error;
- }
- },
- };
|