Only send "refresh" event if SetRating was successful
This commit is contained in:
parent
cefc939909
commit
e31802d2d3
1 changed files with 19 additions and 17 deletions
|
|
@ -51,28 +51,30 @@ func (c *MediaAnnotationController) SetRating(w http.ResponseWriter, r *http.Req
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *MediaAnnotationController) setRating(ctx context.Context, id string, rating int) error {
|
func (c *MediaAnnotationController) setRating(ctx context.Context, id string, rating int) error {
|
||||||
var exist bool
|
var repo model.AnnotatedRepository
|
||||||
var err error
|
var resource string
|
||||||
|
|
||||||
if exist, err = c.ds.Artist(ctx).Exists(id); err != nil {
|
entity, err := core.GetEntityByID(ctx, c.ds, id)
|
||||||
return err
|
if err != nil {
|
||||||
} else if exist {
|
|
||||||
err = c.ds.Artist(ctx).SetRating(rating, id)
|
|
||||||
c.broker.SendMessage(&events.RefreshResource{Resource: "artist"})
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
switch entity.(type) {
|
||||||
if exist, err = c.ds.Album(ctx).Exists(id); err != nil {
|
case *model.Artist:
|
||||||
return err
|
repo = c.ds.Artist(ctx)
|
||||||
} else if exist {
|
resource = "artist"
|
||||||
err = c.ds.Album(ctx).SetRating(rating, id)
|
case *model.Album:
|
||||||
c.broker.SendMessage(&events.RefreshResource{Resource: "album"})
|
repo = c.ds.Album(ctx)
|
||||||
|
resource = "album"
|
||||||
|
default:
|
||||||
|
repo = c.ds.MediaFile(ctx)
|
||||||
|
resource = "song"
|
||||||
|
}
|
||||||
|
err = repo.SetRating(rating, id)
|
||||||
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
c.broker.SendMessage(&events.RefreshResource{Resource: resource})
|
||||||
err = c.ds.MediaFile(ctx).SetRating(rating, id)
|
return nil
|
||||||
c.broker.SendMessage(&events.RefreshResource{Resource: "song"})
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *MediaAnnotationController) Star(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) {
|
func (c *MediaAnnotationController) Star(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue