Files
ScommettiApp/backend-node/controllers/users.controller.js
T

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.getCurrentUserWithRank(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;