76 lines
2.0 KiB
JavaScript
76 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(req.userId);
|
|
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;
|