adminFront/src/api/user/requests.ts

90 lines
2.2 KiB
TypeScript
Raw Normal View History

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