Add createJWTMiddleware helper that sets database.Users object in context, matching the original main.go JWT middleware behavior. This fixes 'authentication context error' panics in handlers that call MustGetAuthenticatedUser. Changes: - Add createJWTMiddleware() in router.go - Update all route files to use the helper - Set user claims AND database.Users object in context
32 lines
915 B
Go
32 lines
915 B
Go
package router
|
|
|
|
import (
|
|
"bookhoard/internal/handlers"
|
|
)
|
|
|
|
func registerMediaRoutes(cfg *Config) {
|
|
e := cfg.Echo
|
|
|
|
// JWT middleware for protected routes
|
|
jwtMiddleware := createJWTMiddleware(cfg)
|
|
|
|
protected := e.Group("/api", jwtMiddleware)
|
|
|
|
// Media item handler
|
|
mediaHandler := handlers.NewMediaHandler(cfg.Queries)
|
|
|
|
// Download route (public)
|
|
e.GET("/api/books/:uuid/download", mediaHandler.DownloadBook)
|
|
|
|
// Shelf management (protected)
|
|
protected.POST("/devices/:id/shelves", mediaHandler.AddToShelf)
|
|
protected.GET("/devices/:id/shelves", mediaHandler.GetShelf)
|
|
protected.DELETE("/devices/:id/shelves", mediaHandler.RemoveFromShelf)
|
|
protected.DELETE("/devices/:id/shelves/clear", mediaHandler.ClearShelf)
|
|
|
|
// Bulk book operations (protected)
|
|
books := protected.Group("/books")
|
|
books.POST("/bulk-delete", mediaHandler.HandleBulkDelete)
|
|
books.POST("/bulk-update", mediaHandler.HandleBulkUpdate)
|
|
}
|