30 lines
2.1 KiB
JavaScript
30 lines
2.1 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const eventController = require('../controllers/eventController');
|
|
const { authenticateJWT } = require('../middleware/authMiddleware');
|
|
const requireFeature = require('../middleware/requireFeature');
|
|
|
|
// 이벤트 기본 CRUD
|
|
router.post('/', authenticateJWT, requireFeature('event_management'), eventController.getAllEvents);
|
|
router.get('/:id', authenticateJWT, requireFeature('event_management'), eventController.getEventById);
|
|
router.post('/create', authenticateJWT, requireFeature('event_management'), eventController.createEvent);
|
|
router.put('/:id', authenticateJWT, requireFeature('event_management'), eventController.updateEvent);
|
|
router.delete('/:id', authenticateJWT, requireFeature('event_management'), eventController.deleteEvent);
|
|
|
|
// 이벤트 참가자 관리
|
|
router.post('/:id/participants/list', authenticateJWT, requireFeature('event_management'), eventController.getEventParticipants);
|
|
router.post('/:id/participants', authenticateJWT, requireFeature('event_management'), eventController.addEventParticipant);
|
|
router.put('/:id/participants', authenticateJWT, requireFeature('event_management'), eventController.updateEventParticipant);
|
|
router.delete('/:id/participants', authenticateJWT, requireFeature('event_management'), eventController.deleteEventParticipant);
|
|
|
|
// 이벤트 점수 관리
|
|
router.get('/:id/scores', authenticateJWT, requireFeature('event_management'), eventController.getEventScores);
|
|
router.post('/:id/scores', authenticateJWT, requireFeature('event_management'), eventController.addEventScore);
|
|
router.put('/:id/scores/:scoreId', authenticateJWT, requireFeature('event_management'), eventController.updateEventScore);
|
|
router.delete('/:id/scores/:scoreId', authenticateJWT, requireFeature('event_management'), eventController.deleteEventScore);
|
|
router.delete('/:id/participants/:participantId/scores', authenticateJWT, requireFeature('event_management'), eventController.deleteParticipantScores);
|
|
|
|
// 사용자별 이벤트 관리
|
|
router.get('/user/events', authenticateJWT, requireFeature('event_management'), eventController.getUserEvents);
|
|
|
|
module.exports = router; |