feat(subsonic): wire contextual_likes capture/soft-delete into star/unstar

handleStar's track branch calls playevents.CaptureContextualLikeIfPlaying
when the underlying LikeTrack actually inserted a row. handleUnstar
calls SoftDeleteContextualLikes after every track-id unstar. Same
helpers as the api surface — single source of truth.

mediaHandlers struct gains a logger field threaded through Mount.
This commit is contained in:
2026-04-27 11:25:10 -04:00
parent fe1cc46752
commit bf7c5ad47d
5 changed files with 60 additions and 7 deletions
+4 -2
View File
@@ -4,6 +4,7 @@ import (
"context"
"errors"
"fmt"
"log/slog"
"net/http"
"os"
"path/filepath"
@@ -24,10 +25,11 @@ import (
type mediaHandlers struct {
pool *pgxpool.Pool
events *playevents.Writer
logger *slog.Logger
}
func newMediaHandlers(pool *pgxpool.Pool, events *playevents.Writer) *mediaHandlers {
return &mediaHandlers{pool: pool, events: events}
func newMediaHandlers(pool *pgxpool.Pool, events *playevents.Writer, logger *slog.Logger) *mediaHandlers {
return &mediaHandlers{pool: pool, events: events, logger: logger}
}
// handleStream serves the raw track bytes. http.ServeContent gives us Range,