@vulog/aima-user
Version:
33 lines (29 loc) • 1.04 kB
text/typescript
import { Client } from '@vulog/aima-client';
import { z } from 'zod';
import { accountStatus, User, UserUpdateBody } from './types';
const schema = z.object({
id: z.string().trim().min(1).uuid(),
user: z
.object({
locale: z.string(),
accountStatus: z.enum(accountStatus),
dataPrivacyConsent: z.boolean(),
marketingConsent: z.boolean(),
surveyConsent: z.boolean(),
shareDataConsent: z.boolean(),
profilingConsent: z.boolean(),
membershipNumber: z.string(),
})
.partial(),
});
export const updateUser = async (client: Client, id: string, user: UserUpdateBody): Promise<User> => {
const result = schema.safeParse({ id, user });
if (!result.success) {
throw new TypeError('Invalid args', {
cause: result.error.issues,
});
}
return client
.post<User>(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/users/${id}`, user)
.then(({ data }) => data);
};