Initial commit
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
const ResponseHandler = require('../shared/response.handler');
|
||||
|
||||
class BetsController {
|
||||
constructor({ betsService }) {
|
||||
this.betsService = betsService;
|
||||
}
|
||||
|
||||
async getAllBets(req, res, next) {
|
||||
try {
|
||||
const bets = await this.betsService.getAllBets();
|
||||
return ResponseHandler.success(res, bets, 'Bets retrieved successfully');
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
|
||||
async getBetById(req, res, next) {
|
||||
try {
|
||||
const bet = await this.betsService.getBetById(req.params.id);
|
||||
return ResponseHandler.success(res, bet, 'Bet retrieved successfully');
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
|
||||
async createBet(req, res, next) {
|
||||
try {
|
||||
const bet = await this.betsService.createBet(req.body);
|
||||
return ResponseHandler.created(res, bet, 'Bet created successfully');
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
|
||||
async updateBet(req, res, next) {
|
||||
try {
|
||||
const bet = await this.betsService.updateBet(req.params.id, req.body);
|
||||
return ResponseHandler.success(res, bet, 'Bet updated successfully');
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
|
||||
async deleteBet(req, res, next) {
|
||||
try {
|
||||
await this.betsService.deleteBet(req.params.id);
|
||||
return ResponseHandler.success(res, null, 'Bet deleted successfully');
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = BetsController;
|
||||
@@ -0,0 +1,67 @@
|
||||
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;
|
||||
@@ -0,0 +1,78 @@
|
||||
const ResponseHandler = require('../shared/response.handler');
|
||||
|
||||
class GroupsController {
|
||||
constructor({ groupsService }) {
|
||||
this.groupsService = groupsService;
|
||||
}
|
||||
|
||||
async getAllGroups(req, res, next) {
|
||||
try {
|
||||
const groups = await this.groupsService.getAllGroups();
|
||||
return ResponseHandler.success(res, groups, 'Groups retrieved successfully');
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
|
||||
async getGroupById(req, res, next) {
|
||||
try {
|
||||
const group = await this.groupsService.getGroupById(req.params.id);
|
||||
return ResponseHandler.success(res, group, 'Group retrieved successfully');
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
|
||||
async createGroup(req, res, next) {
|
||||
try {
|
||||
const group = await this.groupsService.createGroup(req.body);
|
||||
return ResponseHandler.created(res, group, 'Group created successfully');
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
|
||||
async updateGroup(req, res, next) {
|
||||
try {
|
||||
const group = await this.groupsService.updateGroup(req.params.id, req.body);
|
||||
return ResponseHandler.success(res, group, 'Group updated successfully');
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
|
||||
async deleteGroup(req, res, next) {
|
||||
try {
|
||||
await this.groupsService.deleteGroup(req.params.id);
|
||||
return ResponseHandler.success(res, null, 'Group deleted successfully');
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
|
||||
async addMembers(req, res, next) {
|
||||
try {
|
||||
const group = await this.groupsService.addMembersToGroup(
|
||||
req.params.id,
|
||||
req.body.userIds
|
||||
);
|
||||
return ResponseHandler.success(res, group, 'Members added successfully');
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
|
||||
async removeMember(req, res, next) {
|
||||
try {
|
||||
const group = await this.groupsService.removeMemberFromGroup(
|
||||
req.params.id,
|
||||
req.params.userId
|
||||
);
|
||||
return ResponseHandler.success(res, group, 'Member removed successfully');
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = GroupsController;
|
||||
@@ -0,0 +1,38 @@
|
||||
const ResponseHandler = require('../shared/response.handler');
|
||||
|
||||
class InitialDataController {
|
||||
constructor({ usersService, friendsService, groupsService, betsService }) {
|
||||
this.usersService = usersService;
|
||||
this.friendsService = friendsService;
|
||||
this.groupsService = groupsService;
|
||||
this.betsService = betsService;
|
||||
}
|
||||
|
||||
async getInitialData(req, res, next) {
|
||||
try {
|
||||
const currentUser = await this.usersService.getUserById(req.userId);
|
||||
const users = await this.usersService.getAllUsers();
|
||||
const friends = await this.friendsService.getFriendsByUserId(req.userId);
|
||||
const friendRequests = await this.friendsService.getPendingRequests(req.userId);
|
||||
const groups = await this.groupsService.getAllGroups();
|
||||
const userBets = await this.betsService.getUserBets(req.userId);
|
||||
const publicBets = await this.betsService.getPublicBetsExcludingUser(req.userId);
|
||||
|
||||
const data = {
|
||||
currentUser,
|
||||
users,
|
||||
friends,
|
||||
friendRequests,
|
||||
groups,
|
||||
userBets,
|
||||
publicBets,
|
||||
};
|
||||
|
||||
return ResponseHandler.success(res, data, 'Initial data retrieved successfully');
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = InitialDataController;
|
||||
@@ -0,0 +1,18 @@
|
||||
const ResponseHandler = require('../shared/response.handler');
|
||||
|
||||
class UsersController {
|
||||
constructor({ usersService }) {
|
||||
this.usersService = usersService;
|
||||
}
|
||||
|
||||
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;
|
||||
Reference in New Issue
Block a user