UNPKG

@vulog/aima-promocode

Version:

```bash npm i @vulog/aima-client @vulog/aima-promocode ```

89 lines (85 loc) 2.74 kB
// src/checkInvitationCode.ts import { z } from "zod"; var checkInvitationCode = async (client, referralCode) => { const result = z.string().trim().min(1).safeParse(referralCode); if (!result.success) { throw new TypeError("Invalid referralCode", { cause: result.error.issues }); } return client.get(`boapi/proxy/user/fleets/${client.clientOptions.fleetId}/invitation/check/${referralCode}`).then(({ data }) => data).catch((error) => { if (error.formattedError?.status === 404) { return void 0; } throw error; }); }; // src/getPromoCode.ts import { z as z2 } from "zod"; var getPromoCodeByReference = async (client, reference) => { const result = z2.string().trim().min(1).safeParse(reference); if (!result.success) { throw new TypeError("Invalid reference", { cause: result.error.issues }); } return client.get(`boapi/proxy/billing/fleets/${client.clientOptions.fleetId}/promoCodes?reference=${reference}`).then(({ data: [r] }) => r); }; var getPromoCodeById = async (client, id) => { const result = z2.number().positive().safeParse(id); if (!result.success) { throw new TypeError("Invalid id", { cause: result.error.issues }); } return client.get(`boapi/proxy/billing/fleets/${client.clientOptions.fleetId}/promoCodes/${id}`).then(({ data }) => data).catch((error) => { if (error.formattedError?.status === 404) { return void 0; } throw error; }); }; // src/submitPromoCode.ts import { z as z3 } from "zod"; var schema = z3.object({ userId: z3.string().uuid(), entityId: z3.string().uuid(), code: z3.string().min(1) }); var submitPromoCode = async (client, userId, entityId, code) => { const result = schema.safeParse({ userId, entityId, code }); if (!result.success) { throw new TypeError("Invalid args", { cause: result.error.issues }); } return client.put(`boapi/proxy/user/billing/fleets/${client.clientOptions.fleetId}/promoCodes/redeem/${code}`, { userId, entityId }).then(({ data }) => data); }; // src/submitReferral.ts import { z as z4 } from "zod"; var schema2 = z4.object({ userId: z4.string().uuid(), entityId: z4.string().uuid(), code: z4.string().min(1) }); var submitReferral = async (client, userId, entityId, code) => { const result = schema2.safeParse({ userId, entityId, code }); if (!result.success) { throw new TypeError("Invalid args", { cause: result.error.issues }); } await client.post( `boapi/proxy/user/fleets/${client.clientOptions.fleetId}/invitation/users/${userId}/entity/${entityId}/redeem/${code}` ); }; export { checkInvitationCode, getPromoCodeById, getPromoCodeByReference, submitPromoCode, submitReferral };