- Create eventController with CRUD operations and registration endpoints - Implement eventService with Prisma database operations - Add event routes with authentication middleware - Support event creation, listing, filtering, registration/unregistration - Include spatial data handling for event locations - Add participant count tracking and registration status checks - Requirements: 4.1, 4.2, 4.3, 4.4
21 lines
867 B
TypeScript
21 lines
867 B
TypeScript
import { Router } from 'express';
|
|
import { eventController } from '../controllers/eventController';
|
|
import { requireAuth } from '../middleware/auth';
|
|
|
|
const router = Router();
|
|
|
|
// Public routes
|
|
router.get('/', eventController.getEvents);
|
|
router.get('/:id', eventController.getEvent);
|
|
router.get('/:id/registrations', eventController.getEventRegistrations);
|
|
|
|
// Protected routes (require authentication)
|
|
router.post('/', requireAuth, eventController.createEvent);
|
|
router.patch('/:id', requireAuth, eventController.updateEvent);
|
|
router.delete('/:id', requireAuth, eventController.deleteEvent);
|
|
router.post('/:id/register', requireAuth, eventController.registerForEvent);
|
|
router.delete('/:id/register', requireAuth, eventController.unregisterFromEvent);
|
|
router.get('/:id/registration-status', requireAuth, eventController.getRegistrationStatus);
|
|
|
|
export default router;
|