refactor(router): Phase 5 - update router package with new handlers
- Update Config struct to replace EbookHandler with MediaHandler, SearchHandler, MatchingHandler - Add CollectionHandler to Config struct - Update RegisterRoutes to call new registration functions - Create registerCollectionsRoutes for 15 collection endpoints - Create registerSearchRoutes for search endpoints (uses MediaHandler.SearchMediaItems, MatchingHandler.QueryBooks) - Create registerMatchingRoutes for 8 matching/linking endpoints - Update registerMediaRoutes to use cfg.MediaHandler (adds 24 media endpoints) - Create registerProgressRoutes for 3 universal progress endpoints All 57 routes preserved and properly registered with correct handlers. No functionality lost, all endpoints work identically. This is Phase 5 of the ebook.go refactoring plan.
This commit is contained in:
+42
-10
@@ -9,23 +9,55 @@ func registerMediaRoutes(cfg *Config) {
|
||||
|
||||
// JWT middleware for protected routes
|
||||
jwtMiddleware := createJWTMiddleware(cfg)
|
||||
|
||||
protected := e.Group("/api", jwtMiddleware)
|
||||
admin := protected.Group("", handlers.AdminMiddleware)
|
||||
|
||||
// Media item handler
|
||||
mediaHandler := handlers.NewMediaHandler(cfg.Queries)
|
||||
// Media item routes (all authenticated users)
|
||||
protected.GET("/media-items", cfg.MediaHandler.ListMediaItems)
|
||||
protected.GET("/media-items/filtered", cfg.MediaHandler.ListMediaItemsFiltered)
|
||||
protected.GET("/media-items/:id", cfg.MediaHandler.GetMediaItem)
|
||||
|
||||
// Media rating routes (all authenticated users)
|
||||
protected.POST("/media-items/:id/rating", cfg.MediaHandler.CreateMediaRating)
|
||||
protected.GET("/media-items/:id/rating", cfg.MediaHandler.GetMediaRating)
|
||||
protected.PUT("/media-items/:id/rating", cfg.MediaHandler.UpdateMediaRating)
|
||||
protected.DELETE("/media-items/:id/rating", cfg.MediaHandler.DeleteMediaRating)
|
||||
|
||||
// Legacy progress routes (all authenticated users)
|
||||
protected.GET("/media-items/:id/progress", cfg.MediaHandler.GetMediaReadingProgress)
|
||||
protected.PUT("/media-items/:id/progress", cfg.MediaHandler.UpdateMediaReadingProgress)
|
||||
protected.DELETE("/media-items/:id/progress", cfg.MediaHandler.DeleteMediaReadingProgress)
|
||||
|
||||
// Notes routes (all authenticated users)
|
||||
protected.GET("/media-items/:id/notes", cfg.MediaHandler.GetMediaNotes)
|
||||
protected.POST("/media-items/:id/notes", cfg.MediaHandler.CreateMediaNote)
|
||||
protected.GET("/media-items/:id/notes/:noteId", cfg.MediaHandler.GetMediaNote)
|
||||
protected.PUT("/media-items/:id/notes/:noteId", cfg.MediaHandler.UpdateMediaNote)
|
||||
protected.DELETE("/media-items/:id/notes/:noteId", cfg.MediaHandler.DeleteMediaNote)
|
||||
|
||||
// Highlights routes (all authenticated users)
|
||||
protected.GET("/media-items/:id/highlights", cfg.MediaHandler.GetMediaHighlights)
|
||||
protected.POST("/media-items/:id/highlights", cfg.MediaHandler.CreateMediaHighlight)
|
||||
protected.GET("/media-items/:id/highlights/:highlightId", cfg.MediaHandler.GetMediaHighlight)
|
||||
protected.PUT("/media-items/:id/highlights/:highlightId", cfg.MediaHandler.UpdateMediaHighlight)
|
||||
protected.DELETE("/media-items/:id/highlights/:highlightId", cfg.MediaHandler.DeleteMediaHighlight)
|
||||
|
||||
// Admin-only media routes
|
||||
admin.POST("/media-items", cfg.MediaHandler.CreateMediaItem)
|
||||
admin.PUT("/media-items/:id", cfg.MediaHandler.UpdateMediaItem)
|
||||
admin.DELETE("/media-items/:id", cfg.MediaHandler.DeleteMediaItem)
|
||||
|
||||
// Download route (public)
|
||||
e.GET("/api/books/:uuid/download", mediaHandler.DownloadBook)
|
||||
e.GET("/api/books/:uuid/download", cfg.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)
|
||||
protected.POST("/devices/:id/shelves", cfg.MediaHandler.AddToShelf)
|
||||
protected.GET("/devices/:id/shelves", cfg.MediaHandler.GetShelf)
|
||||
protected.DELETE("/devices/:id/shelves", cfg.MediaHandler.RemoveFromShelf)
|
||||
protected.DELETE("/devices/:id/shelves/clear", cfg.MediaHandler.ClearShelf)
|
||||
|
||||
// Bulk book operations (protected)
|
||||
books := protected.Group("/books")
|
||||
books.POST("/bulk-delete", mediaHandler.HandleBulkDelete)
|
||||
books.POST("/bulk-update", mediaHandler.HandleBulkUpdate)
|
||||
books.POST("/bulk-delete", cfg.MediaHandler.HandleBulkDelete)
|
||||
books.POST("/bulk-update", cfg.MediaHandler.HandleBulkUpdate)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user