adminFront/src/api/privilegies.ts

80 lines
2.1 KiB
TypeScript
Raw Normal View History

import { CustomPrivilege } from "@frontend/kitui";
import makeRequest from "@root/api/makeRequest";
2023-09-01 13:17:24 +00:00
import { parseAxiosError } from "@root/utils/parse-error";
import { Privilege } from "@frontend/kitui";
2023-09-01 13:17:24 +00:00
import type { TMockData } from "./roles";
2023-09-16 18:02:01 +00:00
type SeverPrivilegesResponse = {
2024-05-21 07:41:31 +00:00
templategen: CustomPrivilege[];
squiz: CustomPrivilege[];
2023-09-01 13:17:24 +00:00
};
2024-05-22 13:48:38 +00:00
const API_URL = `${process.env.REACT_APP_DOMAIN}/strator`;
2023-09-01 13:17:24 +00:00
export const getRoles = async (): Promise<[TMockData | null, string?]> => {
2024-05-21 07:41:31 +00:00
try {
const rolesResponse = await makeRequest<never, TMockData>({
2024-05-22 13:48:38 +00:00
method: "GET",
url: `${API_URL}/role`,
2024-05-21 07:41:31 +00:00
});
return [rolesResponse];
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [null, `Ошибка запроса ролей. ${error}`];
}
2023-09-01 13:17:24 +00:00
};
2024-05-22 13:48:38 +00:00
export const putPrivilege = async (
body: Omit<Privilege, "_id" | "updatedAt">
): Promise<[CustomPrivilege | null, string?]> => {
2024-05-21 07:41:31 +00:00
try {
2024-05-22 13:48:38 +00:00
const putedPrivilege = await makeRequest<Omit<Privilege, "_id" | "updatedAt">, CustomPrivilege>({
method: "PUT",
url: `${API_URL}/privilege`,
2024-05-21 07:41:31 +00:00
body,
});
return [putedPrivilege];
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [null, `Ошибка изменения привилегии. ${error}`];
}
2023-09-01 13:17:24 +00:00
};
2024-05-21 07:41:31 +00:00
export const requestServicePrivileges = async (): Promise<[SeverPrivilegesResponse | null, string?]> => {
try {
const privilegesResponse = await makeRequest<never, SeverPrivilegesResponse>({
2024-05-22 13:48:38 +00:00
method: "GET",
2025-06-07 15:52:12 +00:00
url: `${API_URL}/privilege`,
2024-05-21 07:41:31 +00:00
});
return [privilegesResponse];
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [null, `Ошибка запроса привилегий. ${error}`];
}
2023-09-01 13:17:24 +00:00
};
2024-05-21 07:41:31 +00:00
export const requestPrivileges = async (signal: AbortSignal | undefined): Promise<[CustomPrivilege[], string?]> => {
try {
const privilegesResponse = await makeRequest<never, CustomPrivilege[]>({
2024-05-22 13:48:38 +00:00
method: "GET",
url: `${API_URL}/privilege`,
2024-05-21 07:41:31 +00:00
useToken: true,
signal,
});
return [privilegesResponse];
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [[], `Ошибка запроса привилегий. ${error}`];
}
2023-09-01 13:17:24 +00:00
};