39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
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;
|