diff --git a/internal/router/media.go b/internal/router/media.go index 8c1f4f3..e5ac414 100644 --- a/internal/router/media.go +++ b/internal/router/media.go @@ -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) diff --git a/internal/router/progress.go b/internal/router/progress.go index f36f4e6..8b2b923 100644 --- a/internal/router/progress.go +++ b/internal/router/progress.go @@ -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) } diff --git a/internal/router/router.go b/internal/router/router.go index 47f84a9..cdbcc44 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -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 diff --git a/internal/router/sync.go b/internal/router/sync.go index da5c315..9559b96 100644 --- a/internal/router/sync.go +++ b/internal/router/sync.go @@ -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))