40 lines
1.3 KiB
TypeScript
40 lines
1.3 KiB
TypeScript
import { resetPrivilegeArray } from "@root/stores/privilegesStore";
|
||
import { exampleCartValues } from "@stores/mocks/exampleCartValues";
|
||
import { requestServicePrivileges } from "@root/api/privilegies";
|
||
|
||
import type { PrivilegeWithAmount } from "@frontend/kitui";
|
||
|
||
const mutatePrivileges = (privileges: PrivilegeWithAmount[]) => {
|
||
let extracted: PrivilegeWithAmount[] = [];
|
||
for (let serviceKey in privileges) {
|
||
//Приходит объект. В его значениях массивы привилегий для разных сервисов. Высыпаем в общую кучу и обновляем стор
|
||
extracted = extracted.concat(privileges[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 requestPrivileges = async () => {
|
||
const [privilegesResponse, privilegesError] =
|
||
await requestServicePrivileges();
|
||
|
||
if (privilegesError) {
|
||
return console.error(privilegesError);
|
||
}
|
||
|
||
if (privilegesResponse) {
|
||
mutatePrivileges(privilegesResponse.templategen);
|
||
}
|
||
};
|