feat: integrate ConnectionManager into Handler struct
Add WebSocket ConnectionManager to Handler: - Add connManager field to Handler struct - Update NewHandler to accept ConnectionManager parameter - Update SetupRoutes to pass ConnectionManager through - Import sync package with alias to avoid conflicts This enables progress handlers to broadcast updates via WebSocket.
This commit is contained in:
@@ -3,6 +3,7 @@ package handlers
|
||||
import (
|
||||
"bookmann/internal/database"
|
||||
"bookmann/internal/services"
|
||||
wsync "bookmann/internal/sync"
|
||||
"context"
|
||||
"fmt"
|
||||
"net/http"
|
||||
@@ -31,9 +32,10 @@ type Handler struct {
|
||||
watchModeCtx context.Context
|
||||
watchModeCancel context.CancelFunc
|
||||
watchingLibraries map[string]bool
|
||||
connManager *wsync.ConnectionManager
|
||||
}
|
||||
|
||||
func NewHandler(db *database.Queries) *Handler {
|
||||
func NewHandler(db *database.Queries, connManager *wsync.ConnectionManager) *Handler {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
worker := services.NewWorker(3)
|
||||
scheduler := services.NewScheduler(worker, db)
|
||||
@@ -50,6 +52,7 @@ func NewHandler(db *database.Queries) *Handler {
|
||||
watchModeCtx: watchCtx,
|
||||
watchModeCancel: watchCancel,
|
||||
watchingLibraries: make(map[string]bool),
|
||||
connManager: connManager,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,8 +67,8 @@ func parseDate(dateStr string) time.Time {
|
||||
return time.Time{}
|
||||
}
|
||||
|
||||
func SetupRoutes(g *echo.Group, db *database.Queries) *Handler {
|
||||
h := NewHandler(db)
|
||||
func SetupRoutes(g *echo.Group, db *database.Queries, connManager *wsync.ConnectionManager) *Handler {
|
||||
h := NewHandler(db, connManager)
|
||||
|
||||
// Media item routes (all authenticated users)
|
||||
g.GET("/media-items", h.ListMediaItems)
|
||||
|
||||
Reference in New Issue
Block a user