Initial commit
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
module.exports = (sequelize) => {
|
||||
const { User, Group } = sequelize.models;
|
||||
|
||||
// POST /api/groups
|
||||
router.post('/', async (req, res) => {
|
||||
try {
|
||||
const { name, members } = req.body;
|
||||
const group = await Group.create({ name });
|
||||
await group.setMembers(members);
|
||||
const populatedGroup = await Group.findByPk(group.id, {
|
||||
include: [{ model: User, as: 'members', through: { attributes: [] } }]
|
||||
});
|
||||
res.status(201).json(populatedGroup);
|
||||
} catch (error) {
|
||||
res.status(400).json({ message: 'Error creating group', error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
// PUT /api/groups/:id/members
|
||||
router.put('/:id/members', async (req, res) => {
|
||||
try {
|
||||
const { userIds } = req.body;
|
||||
const group = await Group.findByPk(req.params.id);
|
||||
if (!group) return res.status(404).json({ message: 'Group not found' });
|
||||
await group.addMembers(userIds);
|
||||
const populatedGroup = await Group.findByPk(group.id, {
|
||||
include: [{ model: User, as: 'members', through: { attributes: [] } }]
|
||||
});
|
||||
res.json(populatedGroup);
|
||||
} catch (error) {
|
||||
res.status(400).json({ message: 'Error adding members to group', error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
// DELETE /api/groups/:id/members/:userId
|
||||
router.delete('/:id/members/:userId', async (req, res) => {
|
||||
try {
|
||||
const group = await Group.findByPk(req.params.id);
|
||||
if (!group) return res.status(404).json({ message: 'Group not found' });
|
||||
await group.removeMember(req.params.userId);
|
||||
const populatedGroup = await Group.findByPk(group.id, {
|
||||
include: [{ model: User, as: 'members', through: { attributes: [] } }]
|
||||
});
|
||||
res.json(populatedGroup);
|
||||
} catch (error) {
|
||||
res.status(400).json({ message: 'Error removing member from group', error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
return router;
|
||||
};
|
||||
Reference in New Issue
Block a user