refactor(router): remove duplicate progress routes, add ProgressService to config
- Remove GET /progress/:id and POST /progress/:id from progress routes. These were superseded by the media-item progress routes. Only GET /progress/:id/history remains. - Add ProgressService to router.Config so sync.go can inject it into KoboHandler via SetProgressService(). - Inject ProgressService into KoboHandler at route registration time rather than requiring a separate setup step. - Update comment from 'Legacy progress routes' to 'Progress routes'.
This commit is contained in:
@@ -22,7 +22,7 @@ func registerMediaRoutes(cfg *Config) {
|
||||
protected.PUT("/media-items/:id/rating", cfg.MediaHandler.UpdateMediaRating)
|
||||
protected.DELETE("/media-items/:id/rating", cfg.MediaHandler.DeleteMediaRating)
|
||||
|
||||
// Legacy progress routes (all authenticated users)
|
||||
// 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)
|
||||
|
||||
@@ -7,12 +7,8 @@ import (
|
||||
func registerProgressRoutes(cfg *Config, scannerHandler *handlers.Handler) {
|
||||
e := cfg.Echo
|
||||
|
||||
// JWT middleware for protected routes
|
||||
jwtMiddleware := createJWTMiddleware(cfg)
|
||||
protected := e.Group("/api", jwtMiddleware)
|
||||
|
||||
// Universal Progress routes
|
||||
protected.GET("/progress/:id", scannerHandler.GetUniversalProgress)
|
||||
protected.POST("/progress/:id", scannerHandler.UpdateUniversalProgress)
|
||||
protected.GET("/progress/:id/history", scannerHandler.GetProgressHistory)
|
||||
}
|
||||
|
||||
@@ -60,6 +60,7 @@ type Config struct {
|
||||
SystemSettingsHandler *handlers.SystemSettingsHandler
|
||||
ConnManager *sync.ConnectionManager
|
||||
QueueProcessor *sync.SyncQueueProcessor
|
||||
ProgressService *sync.ProgressService
|
||||
DeviceAuthMiddleware *middleware.DeviceAuthMiddleware
|
||||
LoginTracker *ratelimit.LoginAttemptTracker
|
||||
ScannerHandler *handlers.Handler
|
||||
|
||||
@@ -32,6 +32,7 @@ func registerSyncRoutes(cfg *Config) {
|
||||
// Kobo devices use URL path: /api/sync/kobo/{token}/markup
|
||||
// API clients can use Authorization header: Authorization: Bearer {token}
|
||||
koboHandler := handlers.NewKoboHandler(cfg.Queries, cfg.ConnManager)
|
||||
koboHandler.SetProgressService(cfg.ProgressService)
|
||||
koboSync := e.Group("/api/sync/kobo/:token")
|
||||
koboSync.POST("/markup", cfg.DeviceAuthMiddleware.Authenticate(koboHandler.Markup))
|
||||
koboSync.POST("/bookmark", cfg.DeviceAuthMiddleware.Authenticate(koboHandler.Bookmark))
|
||||
|
||||
Reference in New Issue
Block a user