41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
const ResponseHandler = require('../shared/response.handler');
|
|
|
|
class UsersController {
|
|
constructor({ usersService }) {
|
|
this.usersService = usersService;
|
|
}
|
|
|
|
async getCurrentUser(req, res, next) {
|
|
try {
|
|
const user = await this.usersService.getUserById(req.userId);
|
|
return ResponseHandler.success(res, user, 'User retrieved successfully');
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
}
|
|
|
|
async searchUsers(req, res, next) {
|
|
try {
|
|
const { q } = req.query;
|
|
if (!q || !q.trim()) {
|
|
return ResponseHandler.badRequest(res, 'Query parameter "q" is required');
|
|
}
|
|
const users = await this.usersService.searchUsers(q.trim(), req.userId);
|
|
return ResponseHandler.success(res, users, 'Users found');
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
}
|
|
|
|
async updateCurrentUser(req, res, next) {
|
|
try {
|
|
const user = await this.usersService.updateUserProfile(req.userId, req.body);
|
|
return ResponseHandler.success(res, user, 'User profile updated successfully');
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = UsersController;
|