adminFront/src/api/tariffs.ts

45 lines
1.2 KiB
TypeScript
Raw Normal View History

2023-08-02 11:36:50 +00:00
import { Tariff, makeRequest } from "@frontend/kitui";
import { EditTariffRequestBody } from "@root/model/tariff";
const baseUrl = process.env.NODE_ENV === "production" ? "/strator" : "https://admin.pena.digital/strator";
export function putTariff(tariff: Tariff) {
return makeRequest<EditTariffRequestBody, never>({
method: "put",
url: baseUrl + `/tariff/${tariff._id}`,
body: {
name: tariff.name,
price: tariff.price ?? 0,
isCustom: false,
privilegies: tariff.privilegies,
},
});
}
export function deleteTariff(tariffId: string) {
return makeRequest<{ id: string; }, never>({
method: "delete",
url: baseUrl + "/tariff",
body: { id: tariffId },
});
}
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 };
}