Unify error messages
This commit is contained in:
39
feed.go
39
feed.go
@@ -2,7 +2,6 @@ package atom
|
||||
|
||||
import (
|
||||
"encoding/xml"
|
||||
"errors"
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
@@ -121,10 +120,10 @@ func (f *Feed) AddEntry(e *Entry) {
|
||||
// error.
|
||||
func (f *Feed) Check() error {
|
||||
if f.ID == nil {
|
||||
return errors.New("no id element of feed")
|
||||
return fmt.Errorf("no id element of feed %v", f)
|
||||
} else {
|
||||
if err := f.ID.Check(); err != nil {
|
||||
return fmt.Errorf("id element of feed: %v", err)
|
||||
return fmt.Errorf("id element of feed %v: %v", f, err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,93 +133,93 @@ func (f *Feed) Check() error {
|
||||
if f.Authors == nil {
|
||||
for _, e := range f.Entries {
|
||||
if err := e.checkAuthors(false); err != nil {
|
||||
return fmt.Errorf("no authors set in feed %v: %v", f.ID.URI, err)
|
||||
return fmt.Errorf("no authors set in feed %v: %v", f, err)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for i, a := range f.Authors {
|
||||
if err := a.Check(); err != nil {
|
||||
return fmt.Errorf("author element %v of feed %v: %v", i, f.ID.URI, err)
|
||||
return fmt.Errorf("author element %v of feed %v: %v", i, f, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for i, c := range f.Categories {
|
||||
if err := c.Check(); err != nil {
|
||||
return fmt.Errorf("category element %v of feed %v: %v", i, f.ID.URI, err)
|
||||
return fmt.Errorf("category element %v of feed %v: %v", i, f, err)
|
||||
}
|
||||
}
|
||||
|
||||
for i, c := range f.Contributors {
|
||||
if err := c.Check(); err != nil {
|
||||
return fmt.Errorf("contributor element %v of feed %v: %v", i, f.ID.URI, err)
|
||||
return fmt.Errorf("contributor element %v of feed %v: %v", i, f, err)
|
||||
}
|
||||
}
|
||||
|
||||
if f.Generator != nil {
|
||||
if err := f.Generator.Check(); err != nil {
|
||||
return fmt.Errorf("generator element of feed %v: %v", f.ID.URI, err)
|
||||
return fmt.Errorf("generator element of feed %v: %v", f, err)
|
||||
}
|
||||
}
|
||||
|
||||
if f.Icon != nil {
|
||||
if err := f.Icon.Check(); err != nil {
|
||||
return fmt.Errorf("icon element of feed %v: %v", f.ID.URI, err)
|
||||
return fmt.Errorf("icon element of feed %v: %v", f, err)
|
||||
}
|
||||
}
|
||||
|
||||
for i, l := range f.Links {
|
||||
if err := l.Check(); err != nil {
|
||||
return fmt.Errorf("link element %v of feed %v: %v", i, f.ID.URI, err)
|
||||
return fmt.Errorf("link element %v of feed %v: %v", i, f, err)
|
||||
}
|
||||
}
|
||||
if hasAlternateDuplicateLinks(f.Links) {
|
||||
return fmt.Errorf("links with with a rel attribute value of \"alternate\" and duplicate type and hreflang attribute values found in feed %v", f.ID.URI)
|
||||
return fmt.Errorf("links with a rel attribute value of \"alternate\" and duplicate type and hreflang attribute values found in feed %v", f)
|
||||
}
|
||||
|
||||
if f.Logo != nil {
|
||||
if err := f.Logo.Check(); err != nil {
|
||||
return fmt.Errorf("logo element of feed %v: %v", f.ID.URI, err)
|
||||
return fmt.Errorf("logo element of feed %v: %v", f, err)
|
||||
}
|
||||
}
|
||||
|
||||
if f.Rights != nil {
|
||||
if err := f.Rights.Check(); err != nil {
|
||||
return fmt.Errorf("rights element of feed %v: %v", f.ID.URI, err)
|
||||
return fmt.Errorf("rights element of feed %v: %v", f, err)
|
||||
}
|
||||
}
|
||||
|
||||
if f.Subtitle != nil {
|
||||
if err := f.Subtitle.Check(); err != nil {
|
||||
return fmt.Errorf("subtitle element of feed %v: %v", f.ID.URI, err)
|
||||
return fmt.Errorf("subtitle element of feed %v: %v", f, err)
|
||||
}
|
||||
}
|
||||
|
||||
if f.Title == nil {
|
||||
return fmt.Errorf("no title element of feed %v", f.ID.URI)
|
||||
return fmt.Errorf("no title element of feed %v", f)
|
||||
} else {
|
||||
if err := f.Title.Check(); err != nil {
|
||||
return fmt.Errorf("title element of feed %v: %v", f.ID.URI, err)
|
||||
return fmt.Errorf("title element of feed %v: %v", f, err)
|
||||
}
|
||||
}
|
||||
|
||||
if f.Updated == nil {
|
||||
return fmt.Errorf("no updated element of feed %v", f.ID)
|
||||
return fmt.Errorf("no updated element of feed %v", f)
|
||||
} else {
|
||||
if err := f.Updated.Check(); err != nil {
|
||||
return fmt.Errorf("updated element of feed %v: %v", f.ID.URI, err)
|
||||
return fmt.Errorf("updated element of feed %v: %v", f, err)
|
||||
}
|
||||
}
|
||||
|
||||
for i, x := range f.Extensions {
|
||||
if err := x.Check(); err != nil {
|
||||
return fmt.Errorf("extension element %v of feed %v: %v", i, f.ID.URI, err)
|
||||
return fmt.Errorf("extension element %v of feed %v: %v", i, f, err)
|
||||
}
|
||||
}
|
||||
|
||||
for i, n := range f.Entries {
|
||||
if err := n.Check(); err != nil {
|
||||
return fmt.Errorf("entry element %v of feed %v: %v", i, f.ID.URI, err)
|
||||
return fmt.Errorf("entry element %v of feed %v: %v", i, f, err)
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user