summaryrefslogtreecommitdiff
path: root/internal/service/admin.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-03 21:14:09 +0300
committerPaul Buetow <paul@buetow.org>2026-05-03 21:14:09 +0300
commit600f50dac5f33eac14bfbcd15addaf210a260879 (patch)
tree6c0745d443a4ac6279c934f51d7024de5aaf1dde /internal/service/admin.go
parent0f8ac296db2d062b566d71ec7ce041b6cf9279d6 (diff)
Task 8: standardize scanner and handler logging
Diffstat (limited to 'internal/service/admin.go')
-rw-r--r--internal/service/admin.go15
1 files changed, 13 insertions, 2 deletions
diff --git a/internal/service/admin.go b/internal/service/admin.go
index fb35631..bd745af 100644
--- a/internal/service/admin.go
+++ b/internal/service/admin.go
@@ -3,6 +3,7 @@ package service
import (
"context"
"fmt"
+ "log/slog"
"sync"
"time"
@@ -20,6 +21,7 @@ type adminService struct {
hasher auth.Hasher
scanner scanner.Scanner
mediaRoot string
+ logger *slog.Logger
mu sync.Mutex
scanCancel context.CancelFunc
progress *model.ScanProgress
@@ -27,12 +29,21 @@ type adminService struct {
// NewAdminService creates a concrete AdminService.
func NewAdminService(store repository.AdminServiceStore, clk clock.Clock, hasher auth.Hasher, sc scanner.Scanner, mediaRoot string) AdminService {
+ return NewAdminServiceWithLogger(store, clk, hasher, sc, mediaRoot, slog.Default())
+}
+
+// NewAdminServiceWithLogger creates a concrete AdminService with an injected logger.
+func NewAdminServiceWithLogger(store repository.AdminServiceStore, clk clock.Clock, hasher auth.Hasher, sc scanner.Scanner, mediaRoot string, logger *slog.Logger) AdminService {
+ if logger == nil {
+ logger = slog.Default()
+ }
return &adminService{
store: store,
clock: clk,
hasher: hasher,
scanner: sc,
mediaRoot: mediaRoot,
+ logger: logger,
}
}
@@ -61,10 +72,10 @@ func (s *adminService) TriggerRescan(ctx context.Context) error {
defer cancel()
if err := s.scanner.Scan(scanCtx, s.mediaRoot, progress); err != nil {
progress.Done(err)
- fmt.Printf("[rescan] scan failed: %v\n", err)
+ s.logger.Error("rescan failed", "err", err)
} else {
progress.Done(nil)
- fmt.Printf("[rescan] scan completed\n")
+ s.logger.Info("rescan completed")
}
}()
return nil