Motivation
The admin Carousel page (/admin/carousel) calls GET /api/admin/carousel to populate its slide list. This route does not exist — the admin carousel router (backend/app/routers/admin/carousel.py) only defines POST, PUT /reorder, PUT /{id}, and DELETE /{id}. The GET request receives a 405 response, the error is caught silently, and the list always renders empty even after slides are created.
Deliverables
- Add a
GET /api/admin/carousel route to backend/app/routers/admin/carousel.py that returns all slides (active and inactive) ordered by display_order, protected by get_current_user
Important Notes
- The existing public
GET /api/carousel route filters to is_active == true and should remain unchanged
- The reorder route is registered as
PUT /api/admin/carousel/reorder; ensure the new GET route at the same prefix does not conflict with it
Motivation
The admin Carousel page (
/admin/carousel) callsGET /api/admin/carouselto populate its slide list. This route does not exist — the admin carousel router (backend/app/routers/admin/carousel.py) only definesPOST,PUT /reorder,PUT /{id}, andDELETE /{id}. The GET request receives a 405 response, the error is caught silently, and the list always renders empty even after slides are created.Deliverables
GET /api/admin/carouselroute tobackend/app/routers/admin/carousel.pythat returns all slides (active and inactive) ordered bydisplay_order, protected byget_current_userImportant Notes
GET /api/carouselroute filters tois_active == trueand should remain unchangedPUT /api/admin/carousel/reorder; ensure the new GET route at the same prefix does not conflict with it