@vulog/aima-user
Version:
User management — profiles, personal information, labels, billing groups, and service registration.
31 lines (27 loc) • 891 B
text/typescript
import { Client } from '@vulog/aima-client';
import { z } from 'zod';
const schema = z.object({
profileId: z.string().uuid(),
serviceId: z.string().uuid(),
});
/**
* Register a user profile to a service.
*
* Swagger: `PUT /fleets/{fleetId}/profiles/{profileId}/services/{id}` (admin-user,
* operationId `requestServiceRegistration`).
*/
export const requestServiceRegistration = async (
client: Client,
profileId: string,
serviceId: string
): Promise<string> => {
const result = schema.safeParse({ profileId, serviceId });
if (!result.success) {
throw new TypeError('Invalid args', { cause: result.error.issues });
}
return client
.put<string>(
`boapi/proxy/user/fleets/${client.clientOptions.fleetId}/profiles/${result.data.profileId}/services/${result.data.serviceId}`
)
.then(({ data }) => data);
};