import { makeRequest } from "@frontend/kitui"; import { parseAxiosError } from "@root/utils/parse-error"; import { PrivilegeWithAmount } from "@frontend/kitui"; import type { TMockData } from "./roles"; type SeverPrivilegesResponse = { templategen: PrivilegeWithAmount[]; squiz: PrivilegeWithAmount[]; }; 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({ method: "get", url: baseUrl + "/role", }); return [rolesResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Ошибка запроса ролей. ${error}`]; } }; export const putPrivilege = async ( body: Omit ): Promise<[unknown, string?]> => { try { const putedPrivilege = await makeRequest< Omit, unknown >({ url: baseUrl + "/privilege", method: "put", 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 >({ url: baseUrl + "/privilege/service", method: "get", }); return [privilegesResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Ошибка запроса привилегий. ${error}`]; } }; export const requestPrivileges = async ( signal: AbortSignal | undefined ): Promise<[PrivilegeWithAmount[], string?]> => { try { const privilegesResponse = await makeRequest( { url: baseUrl + "/privilege", method: "get", useToken: true, signal, } ); return [privilegesResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [[], `Ошибка запроса привилегий. ${error}`]; } };