refactor: isolate playback and upload use cases
ci / module boundaries / boundaries (push) Successful in 6s
ci / api / api (push) Successful in 47s
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 1m2s
ci / db / db (push) Successful in 1m4s
ci / docker / docker (образы собираются — их сервер собирает сам при обновлении) (push) Successful in 1m30s
ci / ts / ts (packages + web) (push) Successful in 2m54s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m14s

This commit is contained in:
mrleo1nid committed 2026-10-22 13:52:16 +03:00
1 parent c84f90e2cc
commit e158558da3
56 files changed
+3337 -2196

No files matched your search

+1 -1
View File
@@ -61,7 +61,7 @@ func (h *Handler) GetOnboarding(ctx context.Context, _ gen.GetOnboardingRequestO
artists = append(artists, a)
}
rows.Close()
dto := h.dto()
dto := h.dto
for _, a := range artists {
item := struct {
CoverColors []string `json:"cover_colors"`
+3 -3
View File
@@ -139,14 +139,14 @@ type Handler struct {
pool *pgxpool.Pool
rec *Recommender
catalog *library.Store
dto func() library.DTO
dto library.DTO
log *slog.Logger
// Warm заранее готовит транскоды выданной пачки (docs/playback.md).
Warm func(ctx context.Context, trackIDs []uuid.UUID)
}
// NewHandler создаёт обработчик.
func NewHandler(pool *pgxpool.Pool, rec *Recommender, catalog *library.Store, dto func() library.DTO, log *slog.Logger) *Handler {
func NewHandler(pool *pgxpool.Pool, rec *Recommender, catalog *library.Store, dto library.DTO, log *slog.Logger) *Handler {
return &Handler{pool: pool, rec: rec, catalog: catalog, dto: dto, log: log}
}
@@ -323,7 +323,7 @@ func (h *Handler) serve(ctx context.Context, s session, fb []Feedback) (gen.Wave
if err != nil {
return gen.WaveBatch{}, err
}
tracks, err := h.dto().Tracks(ctx, rows)
tracks, err := h.dto.Tracks(ctx, rows)
if err != nil {
return gen.WaveBatch{}, err
}