64 lines
1.8 KiB
TypeScript
64 lines
1.8 KiB
TypeScript
![]() |
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<never, SeverPrivilegiesResponse>({
|
|||
|
url: baseUrl + "/privilege/service",
|
|||
|
method: "get",
|
|||
|
})
|
|||
|
.then(({ templategen }) => mutatePrivilegies(templategen))
|
|||
|
.catch(() => {
|
|||
|
console.log("Ошибка при получении привилегий");
|
|||
|
});
|
|||
|
};
|