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

79 lines
2.0 KiB
JavaScript

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;