import { makeRequest } from "@frontend/kitui"; import { parseAxiosError } from "@root/utils/parse-error"; import type { Tariff } from "@frontend/kitui"; import type { EditTariffRequestBody } from "@root/model/tariff"; const baseUrl = process.env.NODE_ENV === "production" ? "/strator" : "https://admin.pena.digital/strator"; 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 async function deleteManyTariffs(tariffIds: string[]) { const results = await Promise.allSettled( tariffIds.map((tariffId) => deleteTariff(tariffId)) ); let deletedCount = 0; let errorCount = 0; const errors: unknown[] = []; results.forEach((result) => { if (result.status === "fulfilled") deletedCount++; else { errorCount++; errors.push(result.reason); } }); return { deletedCount, errorCount, errors }; }