UNPKG

@vulog/aima-user

Version:

44 lines (39 loc) 1.34 kB
import { Client } from '@vulog/aima-client'; import { z } from 'zod'; const registrationStatus = ['APPROVED', 'INCOMPLETE', 'PENDING', 'REJECTED', 'SUSPENDED', 'UNREGISTERED'] as const; const schema = z.object({ disableEmailNotification: z.boolean(), operatorProfileId: z.string().uuid(), actions: z .array( z.object({ reasonForChange: z.string(), serviceId: z.string().uuid(), status: z.enum(registrationStatus), }) ) .min(1), }); export type ServicesUpdate = z.infer<typeof schema>; export const setServicesStatus = async ( client: Client, profileId: string, servicesUpdate: ServicesUpdate ): Promise<void> => { const resultProfileId = z.string().uuid().safeParse(profileId); if (!resultProfileId.success) { throw new TypeError('Invalid profileId', { cause: resultProfileId.error.issues, }); } const resultServices = schema.safeParse(servicesUpdate); if (!resultServices.success) { throw new TypeError('Invalid servicesUpdate', { cause: resultServices.error.issues, }); } await client.post( `boapi/proxy/user/fleets/${client.clientOptions.fleetId}/profiles/${profileId}/serviceRegistrations`, servicesUpdate ); };