UNPKG

@vulog/aima-user

Version:

48 lines (42 loc) 1.23 kB
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); };