@@ -2,32 +2,29 @@ import { Router } from "express";
22import { WebSocketServer } from "ws" ;
33
44import { bookingController } from "../controllers" ;
5+ import { requireAuth , requireAttendant } from "../../config/auth/auth-config" ;
56
67export default function bookingRoutes ( wss : WebSocketServer ) {
78 const router = Router ( ) ;
89
9- // Create a booking
10+ // Create a booking (optional auth: session sets userId if present)
1011 router . post ( "/bookings" , async ( req , res ) =>
1112 ( await bookingController . createBooking ( req , res ) ) ( wss )
1213 ) ;
1314
14- // Get bookings (user-specific or all based on user type )
15- router . get ( "/bookings" , bookingController . getAllBookings ) ;
15+ // Get bookings (authenticated; visitors see own, attendants/admins see all )
16+ router . get ( "/bookings" , requireAuth , bookingController . getAllBookings ) ;
1617
17- // Get booking by ID
18- router . get ( "/bookings/:id" , bookingController . getBookingById ) ;
19-
20- // Update booking status (attendant-specific)
21- router . patch ( "/bookings/attendant/:id/status" , bookingController . updateBookingStatus ) ;
22-
23- // get specific booking for a user by id
24- router . get ( "/bookings/users/:userId" , bookingController . getBookingsByUserId ) ;
25-
26- // get booking by id
27- router . get ( "/bookings/:id" , bookingController . getBookingById ) ;
18+ // More specific paths before /bookings/:id (RESTful route order)
19+ router . get ( "/bookings/users/:userId" , requireAuth , bookingController . getBookingsByUserId ) ;
20+ router . patch (
21+ "/bookings/attendant/:id/status" ,
22+ requireAttendant ,
23+ bookingController . updateBookingStatus
24+ ) ;
2825
29- // delete booking
30- // router.delete ("/bookings/:id", bookingController.deleteBooking );
26+ // Get booking by ID (authenticated)
27+ router . get ( "/bookings/:id" , requireAuth , bookingController . getBookingById ) ;
3128
3229 return router ;
3330}
0 commit comments