@blue-impact-engine/blue-impact-engine-client
Version:
Blue Impact Engine API Client
55 lines • 1.76 kB
JavaScript
/**
* User service for handling user-related operations
* @packageDocumentation
*/
/**
* User Service
* Handles all user-related API operations and business logic
*/
export class DefaultUserService {
constructor(httpClient) {
this.baseEndpoint = "/api/users";
this.httpClient = httpClient;
}
/**
* Get all users with optional filtering and pagination
* @param params - Query parameters for filtering, sorting, and pagination
* @param options - Request options
* @returns Promise<PaginatedResponse<User>>
*/
async getAll(params, options) {
const response = await this.httpClient.get(this.baseEndpoint, params, options);
return response;
}
/**
* Get a user by ID
* @param id - User ID
* @param options - Request options
* @returns Promise<ApiResponse<User>>
*/
async getById(id, options) {
const response = await this.httpClient.get(`${this.baseEndpoint}/${id}`, undefined, options);
return response;
}
/**
* Get current authenticated user
* @param options - Request options
* @returns Promise<ApiResponse<User>>
*/
async getCurrent(options) {
const response = await this.httpClient.get(`${this.baseEndpoint}/me`, undefined, options);
return response;
}
/**
* Get users by role
* @param role - User role
* @param params - Query parameters
* @param options - Request options
* @returns Promise<PaginatedResponse<User>>
*/
async getByRole(role, params, options) {
const response = await this.httpClient.get(`${this.baseEndpoint}/role/${role}`, params, options);
return response;
}
}
//# sourceMappingURL=userService.js.map