const express = require('express'); const { validate } = require('../../middleware/validation'); const { createGroupSchema, updateGroupSchema, addMembersSchema, } = require('../../shared/validators/schemas/group.schema'); module.exports = ({ groupsController }) => { const router = express.Router(); const controller = { getAllGroups: (req, res, next) => groupsController.getAllGroups(req, res, next), getGroupById: (req, res, next) => groupsController.getGroupById(req, res, next), createGroup: (req, res, next) => groupsController.createGroup(req, res, next), updateGroup: (req, res, next) => groupsController.updateGroup(req, res, next), deleteGroup: (req, res, next) => groupsController.deleteGroup(req, res, next), addMembers: (req, res, next) => groupsController.addMembers(req, res, next), removeMember: (req, res, next) => groupsController.removeMember(req, res, next), }; router.get('/', controller.getAllGroups); router.get('/:id', controller.getGroupById); router.post('/', validate(createGroupSchema), controller.createGroup); router.put('/:id', validate(updateGroupSchema), controller.updateGroup); router.delete('/:id', controller.deleteGroup); router.put('/:id/members', validate(addMembersSchema), controller.addMembers); router.delete('/:id/members/:userId', controller.removeMember); return router; };