lib/client/services/user/user.service.ts (41 lines of code) (raw):
import type { Client } from "soap";
import type { Statement, UpdateResult } from "../../../common/types";
import type { UserAction } from "./user.action";
import type { Role, User, UserPage } from "./user.type";
import type { UserServiceOperations } from "./userService.interface";
export class UserService implements UserServiceOperations {
private _client: Client;
constructor(client: Client) {
this._client = client;
}
async createUsers(users: Partial<User>[]): Promise<User[]> {
return this._client.createUsers({ users });
}
async getAllRoles(): Promise<Role[]> {
return this._client.getAllRolesAsync();
}
async getCurrentUser(): Promise<User> {
return this._client.getCurrentUser();
}
async getUsersByStatement(filterStatement: Statement): Promise<UserPage> {
return this._client.getUsersByStatement({
filterStatement,
});
}
async performUserAction(
userAction: UserAction,
filterStatement: Statement,
): Promise<UpdateResult> {
return this._client.performUserAction({
userAction: {
attributes: {
"xsi:type": userAction.constructor.name,
},
},
filterStatement,
});
}
async updateUsers(users: User[]): Promise<User[]> {
return this._client.updateUsers({ users });
}
}