UNPKG

@vulog/aima-user

Version:

User management — profiles, personal information, labels, billing groups, and service registration.

49 lines (43 loc) 1.32 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 | null; }; 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(), }), }); /** @deprecated Use `addUserToBusiness` from `@vulog/aima-business` instead */ 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 arguments', { cause: result.error.issues, }); } return client .post( `/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${businessId}/user/${userId}`, result.data.data ) .then(({ data: p }) => p); };