21 lines
1.1 KiB
JavaScript
21 lines
1.1 KiB
JavaScript
import { Router } from 'express';
|
|
import { BoardController } from '../controllers/boardController.js';
|
|
import { createBoardLimiter } from '../middleware/rateLimit.js';
|
|
import { requireBoardAuth } from '../middleware/auth.js';
|
|
const router = Router();
|
|
// Create new board (Rate limited: 5 boards/hour/IP)
|
|
router.post('/', createBoardLimiter, BoardController.createBoard);
|
|
// Get board details (Requires admin or member key)
|
|
router.get('/:id', requireBoardAuth(), BoardController.getBoard);
|
|
// Get board activity logs
|
|
router.get('/:id/activity', requireBoardAuth(), BoardController.getBoardActivity);
|
|
// Get ticket activity logs
|
|
router.get('/:id/tickets/:ticketId/activity', requireBoardAuth(), BoardController.getTicketActivity);
|
|
// Update board title (Requires admin key)
|
|
router.patch('/:id', requireBoardAuth('admin'), BoardController.updateBoard);
|
|
// Rotate member key (Requires admin key)
|
|
router.post('/:id/rotate-member-key', requireBoardAuth('admin'), BoardController.rotateMemberKey);
|
|
// Delete board (Requires admin key)
|
|
router.delete('/:id', requireBoardAuth('admin'), BoardController.deleteBoard);
|
|
export default router;
|