diff --git a/multierr/multierr.go b/multierr/multierr.go index d5946b0..6cdf722 100644 --- a/multierr/multierr.go +++ b/multierr/multierr.go @@ -2,21 +2,31 @@ package multierr import "strings" -type Err []error +type Err struct { + errs []error +} -func (me Err) Error() string { +func (me *Err) Error() string { var builder strings.Builder - for _, err := range me { + for _, err := range me.errs { builder.WriteString("\n") builder.WriteString(err.Error()) } return builder.String() } -func (me Err) Len() int { - return len(me) +func (me *Err) Errors() []error { + return me.errs +} + +func (me *Err) Len() int { + return len(me.errs) } func (me *Err) Add(err error) { - *me = append(*me, err) + me.errs = append(me.errs, err) +} + +func (me *Err) Extend(errs []error) { + me.errs = append(me.errs, errs...) } diff --git a/server/podcasts/podcasts.go b/server/podcasts/podcasts.go index 1aa90cc..5bd26b0 100644 --- a/server/podcasts/podcasts.go +++ b/server/podcasts/podcasts.go @@ -295,7 +295,7 @@ func (p *Podcasts) RefreshPodcastsForUser(userID int) error { } func (p *Podcasts) refreshPodcasts(podcasts []*db.Podcast) error { - var errs multierr.Err + errs := &multierr.Err{} for _, podcast := range podcasts { fp := gofeed.NewParser() feed, err := fp.ParseURL(podcast.URL)