2024-04-16 19:01:22 +00:00
|
|
|
|
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
|
|
|
|
};
|