80 lines
2.1 KiB
TypeScript
80 lines
2.1 KiB
TypeScript
import { CustomPrivilege } from "@frontend/kitui";
|
|
import makeRequest from "@root/api/makeRequest";
|
|
|
|
import { parseAxiosError } from "@root/utils/parse-error";
|
|
|
|
import { Privilege } from "@frontend/kitui";
|
|
import type { TMockData } from "./roles";
|
|
|
|
type SeverPrivilegesResponse = {
|
|
templategen: CustomPrivilege[];
|
|
squiz: CustomPrivilege[];
|
|
};
|
|
|
|
const API_URL = `${process.env.REACT_APP_DOMAIN}/strator`;
|
|
|
|
export const getRoles = async (): Promise<[TMockData | null, string?]> => {
|
|
try {
|
|
const rolesResponse = await makeRequest<never, TMockData>({
|
|
method: "GET",
|
|
url: `${API_URL}/role`,
|
|
});
|
|
|
|
return [rolesResponse];
|
|
} catch (nativeError) {
|
|
const [error] = parseAxiosError(nativeError);
|
|
|
|
return [null, `Ошибка запроса ролей. ${error}`];
|
|
}
|
|
};
|
|
|
|
export const putPrivilege = async (
|
|
body: Omit<Privilege, "_id" | "updatedAt">
|
|
): Promise<[CustomPrivilege | null, string?]> => {
|
|
try {
|
|
const putedPrivilege = await makeRequest<Omit<Privilege, "_id" | "updatedAt">, CustomPrivilege>({
|
|
method: "PUT",
|
|
url: `${API_URL}/privilege`,
|
|
body,
|
|
});
|
|
|
|
return [putedPrivilege];
|
|
} catch (nativeError) {
|
|
const [error] = parseAxiosError(nativeError);
|
|
|
|
return [null, `Ошибка изменения привилегии. ${error}`];
|
|
}
|
|
};
|
|
|
|
export const requestServicePrivileges = async (): Promise<[SeverPrivilegesResponse | null, string?]> => {
|
|
try {
|
|
const privilegesResponse = await makeRequest<never, SeverPrivilegesResponse>({
|
|
method: "GET",
|
|
url: `${API_URL}/privilege`,
|
|
});
|
|
|
|
return [privilegesResponse];
|
|
} catch (nativeError) {
|
|
const [error] = parseAxiosError(nativeError);
|
|
|
|
return [null, `Ошибка запроса привилегий. ${error}`];
|
|
}
|
|
};
|
|
|
|
export const requestPrivileges = async (signal: AbortSignal | undefined): Promise<[CustomPrivilege[], string?]> => {
|
|
try {
|
|
const privilegesResponse = await makeRequest<never, CustomPrivilege[]>({
|
|
method: "GET",
|
|
url: `${API_URL}/privilege`,
|
|
useToken: true,
|
|
signal,
|
|
});
|
|
|
|
return [privilegesResponse];
|
|
} catch (nativeError) {
|
|
const [error] = parseAxiosError(nativeError);
|
|
|
|
return [[], `Ошибка запроса привилегий. ${error}`];
|
|
}
|
|
};
|