diff --git a/cmd/server/main.go b/cmd/server/main.go index cadc7b5..2a7ac2a 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -29,43 +29,6 @@ func (cv *CustomValidator) Validate(i interface{}) error { return cv.validator.Struct(i) } -// TODO: templates package was removed during router refactor -// This function is unused and should be removed or updated -/* -func getTemplateUserWithTheme(c echo.Context, queries *database.Queries) (templates.User, error) { - // Get the user from context - userID := c.Get("user_id") - if userID == nil { - return templates.User{}, fmt.Errorf("user not authenticated") - } - - // Convert to UUID - userUUID, err := uuid.Parse(userID.(string)) - if err != nil { - return templates.User{}, fmt.Errorf("invalid user ID: %w", err) - } - - // Fetch user from database - userDB, err := queries.GetUser(c.Request().Context(), pgtype.UUID{Bytes: userUUID, Valid: true}) - if err != nil { - return templates.User{}, err - } - - userTheme := "tokyo-night" - if userDB.Theme.Valid { - userTheme = userDB.Theme.String - } - - return templates.User{ - ID: userID, - Email: userEmail, - Username: userUsername, - Role: userRole, - Theme: userTheme, - }, nil -} -*/ - func main() { cfg := config.LoadConfig() @@ -94,6 +57,7 @@ func main() { libraryHandler := handlers.NewLibraryHandler(queries) deviceHandler := handlers.NewDeviceHandler(queries, cfg.JWTSecret, cfg) deviceAuthMiddleware := middleware.NewDeviceAuthMiddleware(queries) + processingIssuesHandler := handlers.NewProcessingIssuesHandler(queries) // Create WebSocket connection manager connManager := sync.NewConnectionManager() @@ -164,33 +128,34 @@ func main() { // ROUTER REGISTRATION - Migrate routes to internal/router/ package // ======================================================================== routerConfig := &router.Config{ - Echo: e, - Queries: queries, - Cfg: cfg, - DBPool: dbPool, - AuthHandler: authHandler, - LibraryHandler: libraryHandler, - DeviceHandler: deviceHandler, - MediaHandler: mediaHandler, - MatchingHandler: matchingHandler, - KOReaderHandler: koreaderHandler, - WSHandler: wsHandler, - ConflictHandler: conflictHandler, - AnalyticsHandler: analyticsHandler, - QueueHandler: queueHandler, - CollectionHandler: collectionHandler, - FiltersHandler: filtersHandler, - DashboardHandler: dashboardHandler, - DashboardService: dashboardService, - OPDSHandler: opdsHandler, - Worker: worker, - SystemSettingsHandler: systemSettingsHandler, - SidecarHandler: sidecarHandler, - ConnManager: connManager, - QueueProcessor: queueProcessor, - DeviceAuthMiddleware: deviceAuthMiddleware, - JobsHandler: jobsHandler, - LoginTracker: loginAttemptTracker, + Echo: e, + Queries: queries, + Cfg: cfg, + DBPool: dbPool, + AuthHandler: authHandler, + LibraryHandler: libraryHandler, + DeviceHandler: deviceHandler, + MediaHandler: mediaHandler, + MatchingHandler: matchingHandler, + ProcessingIssuesHandler: processingIssuesHandler, + KOReaderHandler: koreaderHandler, + WSHandler: wsHandler, + ConflictHandler: conflictHandler, + AnalyticsHandler: analyticsHandler, + QueueHandler: queueHandler, + CollectionHandler: collectionHandler, + FiltersHandler: filtersHandler, + DashboardHandler: dashboardHandler, + DashboardService: dashboardService, + OPDSHandler: opdsHandler, + Worker: worker, + SystemSettingsHandler: systemSettingsHandler, + SidecarHandler: sidecarHandler, + ConnManager: connManager, + QueueProcessor: queueProcessor, + DeviceAuthMiddleware: deviceAuthMiddleware, + JobsHandler: jobsHandler, + LoginTracker: loginAttemptTracker, } // Register all routes and get ebook handler diff --git a/internal/router/router.go b/internal/router/router.go index 8016614..ea9e72c 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -36,35 +36,36 @@ func (cv *CustomValidator) Validate(i interface{}) error { // Config holds all dependencies needed for route registration type Config struct { - Echo *echo.Echo - Queries *database.Queries - Cfg *config.Config - DBPool interface{} // pgxpool.Pool interface - AuthHandler *handlers.AuthHandler - LibraryHandler *handlers.LibraryHandler - DeviceHandler *handlers.DeviceHandler - MediaHandler *handlers.MediaHandler - MatchingHandler *handlers.MatchingHandler - KOReaderHandler *handlers.KOReaderHandler - WSHandler *handlers.WSHandler - ConflictHandler *handlers.ConflictHandler - AnalyticsHandler *handlers.AnalyticsHandler - QueueHandler *handlers.QueueHandler - CollectionHandler *handlers.CollectionHandler - Worker *services.Worker - FiltersHandler *handlers.FiltersHandler - DashboardHandler *handlers.DashboardHandler - DashboardService *services.DashboardService - OPDSHandler *handlers.OPDSHandler - SystemSettingsHandler *handlers.SystemSettingsHandler - ConnManager *sync.ConnectionManager - QueueProcessor *sync.SyncQueueProcessor - DeviceAuthMiddleware *middleware.DeviceAuthMiddleware - LoginTracker *ratelimit.LoginAttemptTracker - ScannerHandler *handlers.Handler - JobsHandler *handlers.JobsHandler - SidecarHandler *handlers.SidecarHandler - ReaderHandler *handlers.ReaderHandler + Echo *echo.Echo + Queries *database.Queries + Cfg *config.Config + DBPool interface{} // pgxpool.Pool interface + AuthHandler *handlers.AuthHandler + LibraryHandler *handlers.LibraryHandler + DeviceHandler *handlers.DeviceHandler + MediaHandler *handlers.MediaHandler + MatchingHandler *handlers.MatchingHandler + ProcessingIssuesHandler *handlers.ProcessingIssuesHandler + KOReaderHandler *handlers.KOReaderHandler + WSHandler *handlers.WSHandler + ConflictHandler *handlers.ConflictHandler + AnalyticsHandler *handlers.AnalyticsHandler + QueueHandler *handlers.QueueHandler + CollectionHandler *handlers.CollectionHandler + Worker *services.Worker + FiltersHandler *handlers.FiltersHandler + DashboardHandler *handlers.DashboardHandler + DashboardService *services.DashboardService + OPDSHandler *handlers.OPDSHandler + SystemSettingsHandler *handlers.SystemSettingsHandler + ConnManager *sync.ConnectionManager + QueueProcessor *sync.SyncQueueProcessor + DeviceAuthMiddleware *middleware.DeviceAuthMiddleware + LoginTracker *ratelimit.LoginAttemptTracker + ScannerHandler *handlers.Handler + JobsHandler *handlers.JobsHandler + SidecarHandler *handlers.SidecarHandler + ReaderHandler *handlers.ReaderHandler } // createJWTMiddleware creates a JWT middleware with proper user context setup