import { Router } from 'express'; import { groups, groupMembers } from '../db'; import { requireAuth } from 'auth-connector/server/auth'; const router = Router(); router.use(requireAuth); router.get('/', (_req, res) => res.json(groups.all())); router.post('/', (req, res) => { const { name } = req.body as { name?: string }; if (!name) { res.status(400).json({ error: 'Name required' }); return; } try { res.json(groups.create({ name })); } catch { res.status(409).json({ error: 'Group name already taken' }); } }); router.delete('/:id', (req, res) => { groups.delete(req.params.id); res.json({ ok: true }); }); router.get('/:id/members', (req, res) => { res.json(groupMembers.forGroup(req.params.id)); }); router.post('/:id/members', (req, res) => { const { member_type, member_id } = req.body as { member_type?: 'user' | 'group'; member_id?: string }; if (!member_type || !member_id) { res.status(400).json({ error: 'member_type and member_id required' }); return; } res.json(groupMembers.add({ group_id: req.params.id, member_type, member_id })); }); router.delete('/:id/members/:memberId', (req, res) => { groupMembers.remove(req.params.memberId); res.json({ ok: true }); }); export default router;