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;