log scrobbling errors

related https://github.com/sentriz/gonic/issues/162
This commit is contained in:
sentriz
2021-10-12 18:47:46 +01:00
parent 848d85d26a
commit 82d8a57aab
2 changed files with 9 additions and 10 deletions

View File

@@ -1,18 +1,15 @@
package multierr
import (
"strings"
)
import "strings"
type Err []error
func (me Err) Error() string {
var s strings.Builder
var strs []string
for _, err := range me {
s.WriteString("\n")
s.WriteString(err.Error())
strs = append(strs, err.Error())
}
return s.String()
return strings.Join(strs, "\n")
}
func (me Err) Len() int {

View File

@@ -8,6 +8,7 @@ import (
"github.com/jinzhu/gorm"
"go.senan.xyz/gonic/multierr"
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
@@ -53,13 +54,14 @@ func (c *Controller) ServeScrobble(r *http.Request) *spec.Response {
// instead convert UnixNano to miliseconds
optStampMili := params.GetOrInt("time", int(time.Now().UnixNano()/1e6))
optSubmission := params.GetOrBool("submission", true)
scrobbleErrs := []error{}
var scrobbleErrs multierr.Err
for _, scrobbler := range c.Scrobblers {
if err := scrobbler.Scrobble(user, track, optStampMili, optSubmission); err != nil {
scrobbleErrs = append(scrobbleErrs, err)
scrobbleErrs.Add(err)
}
}
if len(scrobbleErrs) != 0 {
if scrobbleErrs.Len() > 0 {
log.Printf("error when submitting: %v", scrobbleErrs)
return spec.NewError(0, "error when submitting: %v", scrobbleErrs)
}
return spec.NewResponse()