@vulog/aima-user
Version:
User management module for the AIMA platform. This module provides comprehensive functionality to manage users, profiles, billing groups, and user-related operations.
43 lines (36 loc) • 1.46 kB
text/typescript
import { Client } from '@vulog/aima-client';
import { createPaginableOptionsSchema, PaginableOptions, PaginableResponse } from '@vulog/aima-core';
// import { z } from 'zod';
import { BillingGroup } from './types';
export const getFleetBillingGroups = async (
client: Client,
options?: PaginableOptions
): Promise<PaginableResponse<BillingGroup>> => {
const PaginableOptionsSchema = createPaginableOptionsSchema().default({});
const resultOptions = PaginableOptionsSchema.safeParse(options);
if (!resultOptions.success) {
throw new TypeError('Invalid options', {
cause: resultOptions.error.issues,
});
}
const finalOptions = resultOptions.data;
const searchParams = new URLSearchParams();
searchParams.append('page', finalOptions.page!.toString());
searchParams.append('size', finalOptions.pageSize!.toString());
return client
.get<BillingGroup[]>(
`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/billingGroup?${searchParams.toString()}`
)
.then(({ data, headers }) => {
return {
data,
page: headers.number,
pageSize: headers.size,
total: headers.totalelements,
totalPages: headers.totalpages,
};
})
.catch((error) => {
throw new Error(`Failed to get fleet billing groups: ${error.message}`);
});
};