Compare commits
No commits in common. "6a76bdc0c365c9b9be2805f60e0c27dc9f428054" and "f11dee630d3563ce18110d54d5e14bc095e96076" have entirely different histories.
6a76bdc0c3
...
f11dee630d
15
logo.go
15
logo.go
@ -1,28 +1,15 @@
|
|||||||
package atomfeed
|
package atomfeed
|
||||||
|
|
||||||
import (
|
import "errors"
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"github.com/google/uuid"
|
|
||||||
)
|
|
||||||
|
|
||||||
type Logo struct {
|
type Logo struct {
|
||||||
*CommonAttributes
|
*CommonAttributes
|
||||||
URI IRI `xml:"uri"`
|
URI IRI `xml:"uri"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewLogo() *Logo {
|
|
||||||
return &Logo{URI: IRI(fmt.Sprint("urn:uuid:", uuid.New()))}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *Logo) Check() error {
|
func (l *Logo) Check() error {
|
||||||
if l.URI == "" {
|
if l.URI == "" {
|
||||||
return errors.New("uri element of logo empty")
|
return errors.New("uri element of logo empty")
|
||||||
} else {
|
|
||||||
if !isValidIRI(l.URI) {
|
|
||||||
return fmt.Errorf("uri element %v of logo not correctly formatted", l.URI)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
48
source.go
48
source.go
@ -12,89 +12,99 @@ type Source struct {
|
|||||||
ID *ID `xml:"id,omitempty"`
|
ID *ID `xml:"id,omitempty"`
|
||||||
Links []*Link `xml:"link,omitempty"`
|
Links []*Link `xml:"link,omitempty"`
|
||||||
Logo *Logo `xml:"logo,omitempty"`
|
Logo *Logo `xml:"logo,omitempty"`
|
||||||
Rights Text `xml:"rights,omitempty"`
|
Rights *Text `xml:"rights,omitempty"`
|
||||||
Subtitle Text `xml:"subtitle,omitempty"`
|
Subtitle *Text `xml:"subtitle,omitempty"`
|
||||||
Title Text `xml:"title,omitempty"`
|
Title *Text `xml:"title,omitempty"`
|
||||||
Updated *Date `xml:"updated,omitempty"`
|
Updated *Date `xml:"updated,omitempty"`
|
||||||
Extensions []*ExtensionElement `xml:",any,omitempty"`
|
Extensions []*ExtensionElement `xml:",any,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Source) Check() error {
|
func (s *Source) Check() error {
|
||||||
|
if s.Authors != nil {
|
||||||
for i, a := range s.Authors {
|
for i, a := range s.Authors {
|
||||||
if err := a.Check(); err != nil {
|
if err := a.Check(); err != nil {
|
||||||
return fmt.Errorf("author element %v of source %v: %v", i, s.ID.URI, err)
|
return fmt.Errorf("author element %v of source: %v", i, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s.Categories != nil {
|
||||||
for i, c := range s.Categories {
|
for i, c := range s.Categories {
|
||||||
if err := c.Check(); err != nil {
|
if err := c.Check(); err != nil {
|
||||||
return fmt.Errorf("category element %v of source %v: %v", i, s.ID.URI, err)
|
return fmt.Errorf("category element %v of source: %v", i, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s.Contributors != nil {
|
||||||
for i, c := range s.Contributors {
|
for i, c := range s.Contributors {
|
||||||
if err := c.Check(); err != nil {
|
if err := c.Check(); err != nil {
|
||||||
return fmt.Errorf("contributor element %v of source %v: %v", i, s.ID.URI, err)
|
return fmt.Errorf("contributor element %v of source: %v", i, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.Generator != nil {
|
if s.Generator != nil {
|
||||||
if err := s.Generator.Check(); err != nil {
|
if err := s.Generator.Check(); err != nil {
|
||||||
return fmt.Errorf("generator element of source %v: %v", s.ID.URI, err)
|
return fmt.Errorf("generator element of source: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.Icon != nil {
|
if s.Icon != nil {
|
||||||
if err := s.Icon.Check(); err != nil {
|
if err := s.Icon.Check(); err != nil {
|
||||||
return fmt.Errorf("icon element of source %v: %v", s.ID.URI, err)
|
return fmt.Errorf("icon element of source: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.ID != nil {
|
if s.ID != nil {
|
||||||
if err := s.ID.Check(); err != nil {
|
if err := s.ID.Check(); err != nil {
|
||||||
return fmt.Errorf("id element of source %v: %v", s.ID.URI, err)
|
return fmt.Errorf("id element of source: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s.Links != nil {
|
||||||
for i, l := range s.Links {
|
for i, l := range s.Links {
|
||||||
if err := l.Check(); err != nil {
|
if err := l.Check(); err != nil {
|
||||||
return fmt.Errorf("link element %v of source %v: %v", i, s.ID.URI, err)
|
return fmt.Errorf("link element %v of source: %v", i, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.Logo != nil {
|
if s.Logo != nil {
|
||||||
if err := s.Logo.Check(); err != nil {
|
if err := s.Logo.Check(); err != nil {
|
||||||
return fmt.Errorf("logo element of source %v: %v", s.ID.URI, err)
|
return fmt.Errorf("logo element of source: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.Rights != nil {
|
if s.Rights != nil {
|
||||||
if err := s.Rights.Check(); err != nil {
|
if err := (*s.Rights).Check(); err != nil {
|
||||||
return fmt.Errorf("rights element of source %v: %v", s.ID.URI, err)
|
return fmt.Errorf("rights element of source: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.Subtitle != nil {
|
if s.Subtitle != nil {
|
||||||
if err := s.Subtitle.Check(); err != nil {
|
if err := (*s.Subtitle).Check(); err != nil {
|
||||||
return fmt.Errorf("subtitle element of source %v: %v", s.ID.URI, err)
|
return fmt.Errorf("subtitle element of source: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.Title != nil {
|
if s.Title != nil {
|
||||||
if err := s.Title.Check(); err != nil {
|
if err := (*s.Title).Check(); err != nil {
|
||||||
return fmt.Errorf("title element of source %v: %v", s.ID.URI, err)
|
return fmt.Errorf("title element of source: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.Updated != nil {
|
if s.Updated != nil {
|
||||||
if err := s.Updated.Check(); err != nil {
|
if err := s.Updated.Check(); err != nil {
|
||||||
return fmt.Errorf("updated element of source %v: %v", s.ID.URI, err)
|
return fmt.Errorf("updated element of source: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s.Extensions != nil {
|
||||||
for i, e := range s.Extensions {
|
for i, e := range s.Extensions {
|
||||||
if err := e.Check(); err != nil {
|
if err := e.Check(); err != nil {
|
||||||
return fmt.Errorf("extension element %v of source %v: %v", i, s.ID.URI, err)
|
return fmt.Errorf("extension element %v of source: %v", i, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user