@vulog/aima-promocode
Version:
```bash npm i @vulog/aima-client @vulog/aima-promocode ```
30 lines (26 loc) • 759 B
text/typescript
import { Client } from '@vulog/aima-client';
import { z } from 'zod';
const schema = z.object({
userId: z.string().uuid(),
entityId: z.string().uuid(),
code: z.string().min(1),
});
export const submitPromoCode = async (
client: Client,
userId: string,
entityId: string,
code: string
): Promise<string> => {
const result = schema.safeParse({ userId, entityId, code });
if (!result.success) {
throw new TypeError('Invalid args', {
cause: result.error.issues,
});
}
return client
.put<string>(`boapi/proxy/user/billing/fleets/${client.clientOptions.fleetId}/promoCodes/redeem/${code}`, {
userId,
entityId,
})
.then(({ data }) => data);
};