68 lines
1.6 KiB
JavaScript
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;
|