@vulog/aima-user
Version:
48 lines (42 loc) • 1.23 kB
text/typescript
import { Client } from '@vulog/aima-client';
import { z } from 'zod';
import { UserProfile } from './types';
export type CreateBusinessProfile = {
emailConsent: boolean;
email: string;
requestId: string;
costCenterId: string;
};
const createBusinessProfileSchema = z.object({
userId: z.string().nonempty().uuid(),
businessId: z.string().nonempty().uuid(),
data: z.object({
emailConsent: z.boolean(),
email: z.string().email(),
requestId: z.string().nonempty().uuid(),
costCenterId: z.string().uuid().nullish(),
}),
});
export const createBusinessProfile = async (
client: Client,
userId: string,
businessId: string,
data: CreateBusinessProfile
): Promise<UserProfile> => {
const result = createBusinessProfileSchema.safeParse({
userId,
businessId,
data,
});
if (!result.success) {
throw new TypeError('Invalid argd', {
cause: result.error.issues,
});
}
return client
.post(
`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${businessId}/user/${userId}`,
result.data
)
.then(({ data: p }) => p);
};