adminFront/src/api/user/requests.ts

81 lines
2.1 KiB
TypeScript
Raw Normal View History

import makeRequest from "@root/api/makeRequest";
2024-03-07 12:44:44 +00:00
import { parseAxiosError } from "@root/utils/parse-error";
import type { UserType } from "@root/api/roles";
2024-03-11 06:55:29 +00:00
export type UsersListResponse = {
2024-05-21 07:41:31 +00:00
totalPages: number;
users: UserType[];
2024-03-07 12:44:44 +00:00
};
const baseUrl = process.env.REACT_APP_DOMAIN + "/user";
const getUserInfo = async (id: string): Promise<[UserType | null, string?]> => {
2024-05-21 07:41:31 +00:00
try {
const userInfoResponse = await makeRequest<never, UserType>({
url: `${baseUrl}/${id}`,
method: "GET",
useToken: true,
});
return [userInfoResponse];
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [null, `Ошибка получения информации о пользователе. ${error}`];
}
2024-03-07 12:44:44 +00:00
};
2024-05-21 07:41:31 +00:00
const getUserList = async (page = 1, limit = 10): Promise<[UsersListResponse | null, string?]> => {
try {
const userResponse = await makeRequest<never, UsersListResponse>({
method: "get",
url: baseUrl + `/?page=${page}&limit=${limit}`,
});
return [userResponse];
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [null, `Ошибка при получении пользователей. ${error}`];
}
2024-03-07 12:44:44 +00:00
};
2024-05-21 07:41:31 +00:00
const getManagerList = async (page = 1, limit = 10): Promise<[UsersListResponse | null, string?]> => {
try {
const managerResponse = await makeRequest<never, UsersListResponse>({
method: "get",
url: baseUrl + `/?page=${page}&limit=${limit}`,
});
return [managerResponse];
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [null, `Ошибка при получении менеджеров. ${error}`];
}
2024-03-07 12:44:44 +00:00
};
2024-05-21 07:41:31 +00:00
const getAdminList = async (page = 1, limit = 10): Promise<[UsersListResponse | null, string?]> => {
try {
const adminResponse = await makeRequest<never, UsersListResponse>({
method: "get",
url: baseUrl + `/?page=${page}&limit=${limit}`,
});
return [adminResponse];
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [null, `Ошибка при получении админов. ${error}`];
}
2024-03-07 12:44:44 +00:00
};
export const userApi = {
2024-05-21 07:41:31 +00:00
getUserInfo,
getUserList,
getManagerList,
getAdminList,
2024-03-07 12:44:44 +00:00
};