tariffs/src/handlers/privilege/helpers.ts

29 lines
820 B
TypeScript
Raw Normal View History

2022-12-20 20:14:56 +00:00
import type { Privilege } from "@/types/models/privilege.type";
2022-12-25 20:10:23 +00:00
import type { RawPrivilege } from "./types";
2022-12-20 20:14:56 +00:00
export const validatePrivilege = (privilege: RawPrivilege): Error | null => {
const typeValues: typeof privilege.type[] = ["count", "day", "full"];
if (!typeValues.includes(privilege.type)) {
2022-12-24 12:18:28 +00:00
return new Error("invalid <type> value");
2022-12-20 20:14:56 +00:00
}
if (isNaN(Number(privilege.price))) {
return new Error("price must be a number");
}
return null;
};
export const convertPrivilegiesToMap = (privilegies: Privilege[]) => {
return privilegies.reduce<Record<string, Privilege[]>>((accamulator, privilege) => {
if (!accamulator[privilege.serviceKey]) {
accamulator[privilege.serviceKey] = [];
}
accamulator[privilege.serviceKey].push(privilege);
return accamulator;
}, {});
};