From 1803ac2ee77bd6effd4833dc777a87e52016f5e7 Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Sun, 15 Feb 2026 21:36:30 -0500 Subject: [PATCH] feat: add ScannerHandler to router Config - Add ScannerHandler field to Config struct for frontend route access - Move scannerHandler creation before registerFrontendRoutes call - Enables /progress page to access scanner data --- internal/router/router.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/internal/router/router.go b/internal/router/router.go index 85cae2d..e98a5b5 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -52,13 +52,15 @@ type Config struct { QueueProcessor *sync.SyncQueueProcessor DeviceAuthMiddleware *middleware.DeviceAuthMiddleware LoginTracker *ratelimit.LoginAttemptTracker + ScannerHandler *handlers.Handler } // createJWTMiddleware creates a JWT middleware with proper user context setup func createJWTMiddleware(cfg *Config) echo.MiddlewareFunc { return echojwt.WithConfig(echojwt.Config{ - SigningKey: []byte(cfg.Cfg.JWTSecret), - ContextKey: "user", + SigningKey: []byte(cfg.Cfg.JWTSecret), + ContextKey: "user", + TokenLookup: "cookie:token,header:Authorization", SuccessHandler: func(c echo.Context) { token := c.Get("user").(*jwt.Token) claims := token.Claims.(jwt.MapClaims) @@ -118,6 +120,10 @@ func RegisterRoutes(cfg *Config) *handlers.Handler { jwtMiddleware := createJWTMiddleware(cfg) protected := e.Group("/api", jwtMiddleware) + // Create scanner handler for scanner routes and progress routes + scannerHandler := handlers.SetupRoutes(protected, cfg.Queries, cfg.ConnManager, cfg.QueueProcessor) + cfg.ScannerHandler = scannerHandler + // Register route groups registerAuthRoutes(cfg, rateLimitMiddleware) registerLibraryRoutes(cfg) @@ -136,9 +142,6 @@ func RegisterRoutes(cfg *Config) *handlers.Handler { registerDocumentationRoutes(cfg) e.Static("/static", "web/static") - // Create scanner handler for scanner routes and progress routes - scannerHandler := handlers.SetupRoutes(protected, cfg.Queries, cfg.ConnManager, cfg.QueueProcessor) - // Start background tasks (queue processor and connection cleanup) scannerHandler.StartBackgroundTasks()