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
This commit is contained in:
2026-02-15 21:36:30 -05:00
parent 2df2b2d026
commit 1803ac2ee7
+6 -3
View File
@@ -52,6 +52,7 @@ type Config struct {
QueueProcessor *sync.SyncQueueProcessor QueueProcessor *sync.SyncQueueProcessor
DeviceAuthMiddleware *middleware.DeviceAuthMiddleware DeviceAuthMiddleware *middleware.DeviceAuthMiddleware
LoginTracker *ratelimit.LoginAttemptTracker LoginTracker *ratelimit.LoginAttemptTracker
ScannerHandler *handlers.Handler
} }
// createJWTMiddleware creates a JWT middleware with proper user context setup // createJWTMiddleware creates a JWT middleware with proper user context setup
@@ -59,6 +60,7 @@ func createJWTMiddleware(cfg *Config) echo.MiddlewareFunc {
return echojwt.WithConfig(echojwt.Config{ return echojwt.WithConfig(echojwt.Config{
SigningKey: []byte(cfg.Cfg.JWTSecret), SigningKey: []byte(cfg.Cfg.JWTSecret),
ContextKey: "user", ContextKey: "user",
TokenLookup: "cookie:token,header:Authorization",
SuccessHandler: func(c echo.Context) { SuccessHandler: func(c echo.Context) {
token := c.Get("user").(*jwt.Token) token := c.Get("user").(*jwt.Token)
claims := token.Claims.(jwt.MapClaims) claims := token.Claims.(jwt.MapClaims)
@@ -118,6 +120,10 @@ func RegisterRoutes(cfg *Config) *handlers.Handler {
jwtMiddleware := createJWTMiddleware(cfg) jwtMiddleware := createJWTMiddleware(cfg)
protected := e.Group("/api", jwtMiddleware) 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 // Register route groups
registerAuthRoutes(cfg, rateLimitMiddleware) registerAuthRoutes(cfg, rateLimitMiddleware)
registerLibraryRoutes(cfg) registerLibraryRoutes(cfg)
@@ -136,9 +142,6 @@ func RegisterRoutes(cfg *Config) *handlers.Handler {
registerDocumentationRoutes(cfg) registerDocumentationRoutes(cfg)
e.Static("/static", "web/static") 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) // Start background tasks (queue processor and connection cleanup)
scannerHandler.StartBackgroundTasks() scannerHandler.StartBackgroundTasks()