@vulog/aima-user
Version:
User management module for the AIMA platform. This module provides comprehensive functionality to manage users, profiles, billing groups, and user-related operations.
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);
};