summaryrefslogtreecommitdiff
path: root/internal/api/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/api/server.go')
-rw-r--r--internal/api/server.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/internal/api/server.go b/internal/api/server.go
index e5fdd8d..f934a56 100644
--- a/internal/api/server.go
+++ b/internal/api/server.go
@@ -2,6 +2,7 @@ package api
import (
"context"
+ "log/slog"
"net/http"
"strconv"
"time"
@@ -26,6 +27,7 @@ type Server struct {
authSvc service.AuthService
staticFS http.FileSystem
remuxer probe.Remuxer
+ logger *slog.Logger
mw *Middleware
}
@@ -43,9 +45,29 @@ func NewServer(
staticFS http.FileSystem,
remuxer probe.Remuxer,
) *Server {
+ return NewServerWithLogger(store, hasher, sm, cfg, mediaSvc, adminSvc, progressSvc, authSvc, staticFS, remuxer, slog.Default())
+}
+
+// NewServerWithLogger creates a Server with routes and an injected logger.
+func NewServerWithLogger(
+ store repository.Store,
+ hasher auth.Hasher,
+ sm *auth.SessionManager,
+ cfg *internal.Config,
+ mediaSvc service.MediaService,
+ adminSvc service.AdminService,
+ progressSvc service.ProgressService,
+ authSvc service.AuthService,
+ staticFS http.FileSystem,
+ remuxer probe.Remuxer,
+ logger *slog.Logger,
+) *Server {
if staticFS == nil {
staticFS = http.Dir("web")
}
+ if logger == nil {
+ logger = slog.Default()
+ }
s := &Server{
store: store,
hasher: hasher,
@@ -58,6 +80,7 @@ func NewServer(
authSvc: authSvc,
staticFS: staticFS,
remuxer: remuxer,
+ logger: logger,
mw: NewMiddleware(store, sm),
}
s.routes()