@vulog/aima-promocode
Version:
```bash npm i @vulog/aima-client @vulog/aima-promocode ```
89 lines (85 loc) • 2.74 kB
JavaScript
// 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
};