@vulog/aima-user
Version:
User management — profiles, personal information, labels, billing groups, and service registration.
34 lines (28 loc) • 1.08 kB
text/typescript
import { Client } from '@vulog/aima-client';
import { z } from 'zod';
import { UserServiceRegistrationOverview } from './types';
const schema = z.array(z.string().uuid()).min(1);
/**
* Get an overview of the service registration statuses for a list of userIds.
*
* Swagger: `GET /fleets/{fleetId}/serviceRegistrationOverview` (admin-user,
* operationId `getServicesRegistrationOverview`).
*/
export const getServiceRegistrationOverview = async (
client: Client,
userIds: string[]
): Promise<UserServiceRegistrationOverview[]> => {
const result = schema.safeParse(userIds);
if (!result.success) {
throw new TypeError('Invalid args', { cause: result.error.issues });
}
const searchParams = new URLSearchParams();
for (const id of result.data) {
searchParams.append('userId', id);
}
return client
.get<
UserServiceRegistrationOverview[]
>(`boapi/proxy/user/fleets/${client.clientOptions.fleetId}/serviceRegistrationOverview?${searchParams.toString()}`)
.then(({ data }) => data);
};