import { makeRequest } from "@frontend/kitui"; import { parseAxiosError } from "@root/utils/parse-error"; import type { PrivilegeWithAmount } from "@frontend/kitui"; import type { Tariff } from "@frontend/kitui"; import type { EditTariffRequestBody } from "@root/model/tariff"; type CreateTariffBackendRequest = { name: string; price: number; isCustom: boolean; privilegies: Omit[]; }; type GetTariffsResponse = { totalPages: number; tariffs: Tariff[]; }; const baseUrl = process.env.NODE_ENV === "production" ? "/strator" : "https://admin.pena.digital/strator"; export const createTariff = async ( body: CreateTariffBackendRequest ): Promise<[unknown, string?]> => { try { const createdTariffResponse = await makeRequest( { url: baseUrl + "/tariff/", method: "post", body, } ); debugger; return [createdTariffResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Ошибка создания тарифа. ${error}`]; } }; export const putTariff = async (tariff: Tariff): Promise<[null, string?]> => { try { const putedTariffResponse = await makeRequest({ method: "put", url: baseUrl + `/tariff/${tariff._id}`, body: { name: tariff.name, price: tariff.price ?? 0, isCustom: false, privilegies: tariff.privilegies, }, }); return [putedTariffResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Ошибка редактирования тарифа. ${error}`]; } }; export const deleteTariff = async ( tariffId: string ): Promise<[Tariff | null, string?]> => { try { const deletedTariffResponse = await makeRequest<{ id: string }, Tariff>({ method: "delete", url: baseUrl + "/tariff", body: { id: tariffId }, }); return [deletedTariffResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Ошибка удаления тарифа. ${error}`]; } }; export const requestTariffs = async ( page: number ): Promise<[GetTariffsResponse | null, string?]> => { try { const tariffsResponse = await makeRequest({ url: baseUrl + `/tariff/?page=${page}&limit=${100}`, method: "get", }); return [tariffsResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Ошибка запроса тарифов. ${error}`]; } };