Refactor getSong
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user