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;