adminFront/src/api/privilegies.ts

94 lines
2.3 KiB
TypeScript
Raw Normal View History

2023-09-01 13:17:24 +00:00
import { makeRequest } from "@frontend/kitui";
import { parseAxiosError } from "@root/utils/parse-error";
import { PrivilegeWithAmount } from "@frontend/kitui";
import type { TMockData } from "./roles";
2023-09-16 18:02:01 +00:00
type SeverPrivilegesResponse = {
2023-09-01 13:17:24 +00:00
templategen: PrivilegeWithAmount[];
2023-12-14 00:17:28 +00:00
squiz: PrivilegeWithAmount[];
2023-09-01 13:17:24 +00:00
};
const baseUrl =
process.env.NODE_ENV === "production"
? "/strator"
: "https://admin.pena.digital/strator";
export const getRoles = async (): Promise<[TMockData | null, string?]> => {
try {
const rolesResponse = await makeRequest<never, TMockData>({
method: "get",
url: baseUrl + "/role",
});
return [rolesResponse];
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [null, `Ошибка запроса ролей. ${error}`];
}
};
2023-09-16 18:02:01 +00:00
export const putPrivilege = async (
2023-09-01 13:17:24 +00:00
body: Omit<PrivilegeWithAmount, "_id" | "updatedAt">
): Promise<[unknown, string?]> => {
try {
2023-09-16 18:02:01 +00:00
const putedPrivilege = await makeRequest<
2023-09-01 13:17:24 +00:00
Omit<PrivilegeWithAmount, "_id" | "updatedAt">,
unknown
>({
url: baseUrl + "/privilege",
method: "put",
body,
});
2023-09-16 18:02:01 +00:00
return [putedPrivilege];
2023-09-01 13:17:24 +00:00
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [null, `Ошибка изменения привилегии. ${error}`];
}
};
2023-09-16 18:02:01 +00:00
export const requestServicePrivileges = async (): Promise<
[SeverPrivilegesResponse | null, string?]
2023-09-01 13:17:24 +00:00
> => {
try {
2023-09-16 18:02:01 +00:00
const privilegesResponse = await makeRequest<
2023-09-01 13:17:24 +00:00
never,
2023-09-16 18:02:01 +00:00
SeverPrivilegesResponse
2023-09-01 13:17:24 +00:00
>({
url: baseUrl + "/privilege/service",
method: "get",
});
2023-09-16 18:02:01 +00:00
return [privilegesResponse];
2023-09-01 13:17:24 +00:00
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [null, `Ошибка запроса привилегий. ${error}`];
}
};
2023-09-16 18:02:01 +00:00
export const requestPrivileges = async (
2023-09-01 13:17:24 +00:00
signal: AbortSignal | undefined
): Promise<[PrivilegeWithAmount[], string?]> => {
try {
2023-09-16 18:02:01 +00:00
const privilegesResponse = await makeRequest<never, PrivilegeWithAmount[]>(
2023-09-01 13:17:24 +00:00
{
url: baseUrl + "/privilege",
method: "get",
useToken: true,
signal,
}
);
2023-09-16 18:02:01 +00:00
return [privilegesResponse];
2023-09-01 13:17:24 +00:00
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [[], `Ошибка запроса привилегий. ${error}`];
}
};