45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
![]() |
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 };
|
||
|
}
|