@vulog/aima-user
Version:
27 lines (22 loc) • 902 B
text/typescript
import { Client } from '@vulog/aima-client';
import { z } from 'zod';
import { AccountStatus, User } from './types';
export const getUserById = async (client: Client, id: string, addAccountStatus = false): Promise<User> => {
const result = z.string().trim().min(1).uuid().safeParse(id);
if (!result.success) {
throw new TypeError('Invalid id', {
cause: result.error.issues,
});
}
const user = await client
.get<User>(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/users/${id}/status`)
.then(({ data }) => data);
if (addAccountStatus) {
user.accountStatus = await client
.get<{
accountStatus: AccountStatus;
}>(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/users/${id}`)
.then(({ data: { accountStatus } }) => accountStatus);
}
return user;
};