32 lines
1.3 KiB
JavaScript
32 lines
1.3 KiB
JavaScript
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;
|
|
};
|