Refactor getSong

This commit is contained in:
Deluan
2020-08-13 21:57:35 -04:00
committed by Deluan Quintão
parent f16dc5f8f8
commit eba8395146
2 changed files with 6 additions and 15 deletions
+6 -4
View File
@@ -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) { func (c *BrowsingController) GetSong(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) {
id := utils.ParamString(r, "id") 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 { switch {
case err == model.ErrNotFound: 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") return nil, NewError(responses.ErrorDataNotFound, "Song not found")
case err != nil: case err != nil:
log.Error(r, err) log.Error(r, "Error retrieving MediaFile", "id", id, err)
return nil, NewError(responses.ErrorGeneric, "Internal Error") return nil, NewError(responses.ErrorGeneric, "Internal Error")
} }
response := NewResponse() response := NewResponse()
child := ToChild(r.Context(), *song) child := ChildFromMediaFile(ctx, *mf)
response.Song = &child response.Song = &child
return response, nil return response, nil
} }
-11
View File
@@ -9,7 +9,6 @@ import (
) )
type Browser interface { type Browser interface {
GetSong(ctx context.Context, id string) (*Entry, error)
GetGenres(ctx context.Context) (model.Genres, error) GetGenres(ctx context.Context) (model.Genres, error)
} }
@@ -21,16 +20,6 @@ type browser struct {
ds model.DataStore 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) { func (b *browser) GetGenres(ctx context.Context) (model.Genres, error) {
genres, err := b.ds.Genre(ctx).GetAll() genres, err := b.ds.Genre(ctx).GetAll()
for i, g := range genres { for i, g := range genres {