import { authStore } from "@root/stores/auth"; import { resetPrivilegeArray } from "@root/stores/privilegesStore"; import { exampleCartValues } from "@stores/mocks/exampleCartValues"; import type { RealPrivilege } from "@root/model/privilege"; export type Privilege = { createdAt: string; description: string; isDeleted: boolean; name: string; price: number; privilegeId: string; serviceKey: string; type: "count" | "day" | "mb"; updatedAt: string; value: string; _id: string; }; type SeverPrivilegiesResponse = { templategen: RealPrivilege[]; }; const baseUrl = process.env.NODE_ENV === "production" ? "/strator" : "https://admin.pena.digital/strator"; const { makeRequest } = authStore.getState(); const mutatePrivilegies = (privilegies: RealPrivilege[]) => { let extracted: RealPrivilege[] = []; for (let serviceKey in privilegies) { //Приходит объект. В его значениях массивы привилегий для разных сервисов. Высыпаем в общую кучу и обновляем стор extracted = extracted.concat(privilegies[serviceKey]); } let readyArray = extracted.map((privilege) => ({ serviceKey: privilege.serviceKey, privilegeId: privilege.privilegeId, name: privilege.name, description: privilege.description, type: privilege.type, price: privilege.price, value: privilege.value, id: privilege._id, })); resetPrivilegeArray([...readyArray, ...exampleCartValues.privileges]); }; export const requestPrivilegies = async () => { await makeRequest({ url: baseUrl + "/privilege/service", method: "get", }) .then(({ templategen }) => mutatePrivilegies(templategen)) .catch(() => { console.log("Ошибка при получении привилегий"); }); };