From eba8395146583ce57dd383b0f60c8a90648ae73d Mon Sep 17 00:00:00 2001 From: Deluan Date: Thu, 13 Aug 2020 21:57:35 -0400 Subject: [PATCH] Refactor `getSong` --- server/subsonic/browsing.go | 10 ++++++---- server/subsonic/engine/browser.go | 11 ----------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/server/subsonic/browsing.go b/server/subsonic/browsing.go index 2ad03a113..bcbea5cf2 100644 --- a/server/subsonic/browsing.go +++ b/server/subsonic/browsing.go @@ -191,18 +191,20 @@ func (c *BrowsingController) GetAlbum(w http.ResponseWriter, r *http.Request) (* func (c *BrowsingController) GetSong(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) { id := utils.ParamString(r, "id") - song, err := c.browser.GetSong(r.Context(), id) + ctx := r.Context() + + mf, err := c.ds.MediaFile(ctx).Get(id) switch { case err == model.ErrNotFound: - log.Error(r, "Requested ID not found ", "id", id) + log.Error(r, "Requested MediaFileID not found ", "id", id) return nil, NewError(responses.ErrorDataNotFound, "Song not found") case err != nil: - log.Error(r, err) + log.Error(r, "Error retrieving MediaFile", "id", id, err) return nil, NewError(responses.ErrorGeneric, "Internal Error") } response := NewResponse() - child := ToChild(r.Context(), *song) + child := ChildFromMediaFile(ctx, *mf) response.Song = &child return response, nil } diff --git a/server/subsonic/engine/browser.go b/server/subsonic/engine/browser.go index 4ccd22bdd..7e27c3bd3 100644 --- a/server/subsonic/engine/browser.go +++ b/server/subsonic/engine/browser.go @@ -9,7 +9,6 @@ import ( ) type Browser interface { - GetSong(ctx context.Context, id string) (*Entry, error) GetGenres(ctx context.Context) (model.Genres, error) } @@ -21,16 +20,6 @@ type browser struct { ds model.DataStore } -func (b *browser) GetSong(ctx context.Context, id string) (*Entry, error) { - mf, err := b.ds.MediaFile(ctx).Get(id) - if err != nil { - return nil, err - } - - entry := FromMediaFile(mf) - return &entry, nil -} - func (b *browser) GetGenres(ctx context.Context) (model.Genres, error) { genres, err := b.ds.Genre(ctx).GetAll() for i, g := range genres {