Files
ScommettiApp/backend-node/controllers/friends.controller.js
T
2026-03-26 22:46:03 +01:00

68 lines
1.6 KiB
JavaScript

const ResponseHandler = require('../shared/response.handler');
class FriendsController {
constructor({ friendsService }) {
this.friendsService = friendsService;
}
async getFriends(req, res, next) {
try {
const friends = await this.friendsService.getFriendsByUserId(req.userId);
return ResponseHandler.success(res, friends, 'Friends retrieved successfully');
} catch (error) {
next(error);
}
}
async getPendingRequests(req, res, next) {
try {
const requests = await this.friendsService.getPendingRequests(req.userId);
return ResponseHandler.success(
res,
requests,
'Pending requests retrieved successfully'
);
} catch (error) {
next(error);
}
}
async sendRequest(req, res, next) {
try {
const request = await this.friendsService.sendFriendRequest(
req.userId,
req.body.identifier
);
return ResponseHandler.created(res, request, 'Friend request sent successfully');
} catch (error) {
next(error);
}
}
async acceptRequest(req, res, next) {
try {
const result = await this.friendsService.acceptFriendRequest(
req.params.id,
req.userId
);
return ResponseHandler.success(res, result, result.message);
} catch (error) {
next(error);
}
}
async rejectRequest(req, res, next) {
try {
const result = await this.friendsService.rejectFriendRequest(
req.params.id,
req.userId
);
return ResponseHandler.success(res, result, result.message);
} catch (error) {
next(error);
}
}
}
module.exports = FriendsController;