diff --git a/date.go b/date.go index 603631d..809ad0b 100644 --- a/date.go +++ b/date.go @@ -24,15 +24,6 @@ func NewDate(t time.Time) *Date { } } -// Update updates the Date. -func (d *Date) Update() { - if d == nil { - d = NewDate(time.Now()) - } else { - d.DateTime = DateTime(time.Now()) - } -} - // Check checks the Date for incompatibilities with RFC4287. It returns an // error. func (d *Date) Check() error { diff --git a/entry.go b/entry.go index 9afbe71..b7d4cfa 100644 --- a/entry.go +++ b/entry.go @@ -69,7 +69,12 @@ func NewEntry(title string) *Entry { // AddAuthor adds the Person as an author to the Entry. It returns its index as // an int. func (e *Entry) AddAuthor(p *Person) int { - e.Updated.Update() + if e.Updated == nil { + e.Updated = NewDate(time.Now()) + } else { + e.Updated.DateTime = DateTime(time.Now()) + } + return addToSlice(&e.Authors, p) } @@ -79,13 +84,23 @@ func (e *Entry) DeleteAuthor(index int) error { return fmt.Errorf("error deleting author %v from entry %v: %v", index, e.ID.URI, err) } - e.Updated.Update() + if e.Updated == nil { + e.Updated = NewDate(time.Now()) + } else { + e.Updated.DateTime = DateTime(time.Now()) + } + return nil } // AddCategory adds the Category to the Entry. It returns ts index as an int. func (e *Entry) AddCategory(c *Category) int { - e.Updated.Update() + if e.Updated == nil { + e.Updated = NewDate(time.Now()) + } else { + e.Updated.DateTime = DateTime(time.Now()) + } + return addToSlice(&e.Categories, c) } @@ -96,14 +111,24 @@ func (e *Entry) DeleteCategory(index int) error { return fmt.Errorf("error deleting category %v from entry %v: %v", index, e.ID.URI, err) } - e.Updated.Update() + if e.Updated == nil { + e.Updated = NewDate(time.Now()) + } else { + e.Updated.DateTime = DateTime(time.Now()) + } + return nil } // AddContributor adds the Person as a contributor to the Entry. It returns its // index as an int. func (e *Entry) AddContributor(c *Person) int { - e.Updated.Update() + if e.Updated == nil { + e.Updated = NewDate(time.Now()) + } else { + e.Updated.DateTime = DateTime(time.Now()) + } + return addToSlice(&e.Contributors, c) } @@ -114,13 +139,23 @@ func (e *Entry) DeleteContributor(index int) error { return fmt.Errorf("error deleting contributor %v from entry %v: %v", index, e.ID.URI, err) } - e.Updated.Update() + if e.Updated == nil { + e.Updated = NewDate(time.Now()) + } else { + e.Updated.DateTime = DateTime(time.Now()) + } + return nil } // AddLink adds the Link to the Entry. It returns its index as an int. func (e *Entry) AddLink(l *Link) int { - e.Updated.Update() + if e.Updated == nil { + e.Updated = NewDate(time.Now()) + } else { + e.Updated.DateTime = DateTime(time.Now()) + } + return addToSlice(&e.Links, l) } @@ -130,14 +165,24 @@ func (e *Entry) DeleteLink(index int) error { return fmt.Errorf("error deleting link %v from entry %v: %v", index, e.ID.URI, err) } - e.Updated.Update() + if e.Updated == nil { + e.Updated = NewDate(time.Now()) + } else { + e.Updated.DateTime = DateTime(time.Now()) + } + return nil } // AddExtension adds the ExtensionElement to the Entry. It returns its index as // an int. func (e *Entry) AddExtension(x *ExtensionElement) int { - e.Updated.Update() + if e.Updated == nil { + e.Updated = NewDate(time.Now()) + } else { + e.Updated.DateTime = DateTime(time.Now()) + } + return addToSlice(&e.Extensions, x) } @@ -148,7 +193,12 @@ func (e *Entry) DeleteExtension(index int) error { return fmt.Errorf("error deleting extension %v from entry %v: %v", index, e.ID.URI, err) } - e.Updated.Update() + if e.Updated == nil { + e.Updated = NewDate(time.Now()) + } else { + e.Updated.DateTime = DateTime(time.Now()) + } + return nil } diff --git a/feed.go b/feed.go index c030320..4d9b395 100644 --- a/feed.go +++ b/feed.go @@ -38,7 +38,12 @@ func NewFeed(title string) *Feed { // AddAuthor adds the Person as an author to the Feed. It returns its index as // an int. func (f *Feed) AddAuthor(p *Person) int { - f.Updated.Update() + if f.Updated == nil { + f.Updated = NewDate(time.Now()) + } else { + f.Updated.DateTime = DateTime(time.Now()) + } + return addToSlice(&f.Authors, p) } @@ -48,13 +53,23 @@ func (f *Feed) DeleteAuthor(index int) error { return fmt.Errorf("error deleting author %v from entry %v: %v", index, f.ID.URI, err) } - f.Updated.Update() + if f.Updated == nil { + f.Updated = NewDate(time.Now()) + } else { + f.Updated.DateTime = DateTime(time.Now()) + } + return nil } // AddCategory adds the Category to the Feed. It returns its index as an int. func (f *Feed) AddCategory(c *Category) int { - f.Updated.Update() + if f.Updated == nil { + f.Updated = NewDate(time.Now()) + } else { + f.Updated.DateTime = DateTime(time.Now()) + } + return addToSlice(&f.Categories, c) } @@ -65,14 +80,24 @@ func (f *Feed) DeleteCategory(index int) error { return fmt.Errorf("error deleting category %v from entry %v: %v", index, f.ID.URI, err) } - f.Updated.Update() + if f.Updated == nil { + f.Updated = NewDate(time.Now()) + } else { + f.Updated.DateTime = DateTime(time.Now()) + } + return nil } // AddContributor adds the Person as a contributor to the Feed. It returns its // index as an int. func (f *Feed) AddContributor(c *Person) int { - f.Updated.Update() + if f.Updated == nil { + f.Updated = NewDate(time.Now()) + } else { + f.Updated.DateTime = DateTime(time.Now()) + } + return addToSlice(&f.Contributors, c) } @@ -83,14 +108,24 @@ func (f *Feed) DeleteContributor(index int) error { return fmt.Errorf("error deleting contributor %v from entry %v: %v", index, f.ID.URI, err) } - f.Updated.Update() + if f.Updated == nil { + f.Updated = NewDate(time.Now()) + } else { + f.Updated.DateTime = DateTime(time.Now()) + } + return nil } // AddLink adds the Link to the Feed. There should be one Link with Rel "self". // It returns its index as an int. func (f *Feed) AddLink(l *Link) int { - f.Updated.Update() + if f.Updated == nil { + f.Updated = NewDate(time.Now()) + } else { + f.Updated.DateTime = DateTime(time.Now()) + } + return addToSlice(&f.Links, l) } @@ -100,13 +135,23 @@ func (f *Feed) DeleteLink(index int) error { return fmt.Errorf("error deleting link %v from entry %v: %v", index, f.ID.URI, err) } - f.Updated.Update() + if f.Updated == nil { + f.Updated = NewDate(time.Now()) + } else { + f.Updated.DateTime = DateTime(time.Now()) + } + return nil } // AddExtension adds the Extension to the Feed. It returns its index as an int. func (f *Feed) AddExtension(e *ExtensionElement) int { - f.Updated.Update() + if f.Updated == nil { + f.Updated = NewDate(time.Now()) + } else { + f.Updated.DateTime = DateTime(time.Now()) + } + return addToSlice(&f.Extensions, e) } @@ -117,13 +162,23 @@ func (f *Feed) DeleteExtension(index int) error { return fmt.Errorf("error deleting extension %v from entry %v: %v", index, f.ID.URI, err) } - f.Updated.Update() + if f.Updated == nil { + f.Updated = NewDate(time.Now()) + } else { + f.Updated.DateTime = DateTime(time.Now()) + } + return nil } // AddEntry adds the Entry to the Feed. It returns its index as an int. func (f *Feed) AddEntry(e *Entry) int { - f.Updated.Update() + if f.Updated == nil { + f.Updated = NewDate(time.Now()) + } else { + f.Updated.DateTime = DateTime(time.Now()) + } + return addToSlice(&f.Entries, e) } @@ -133,7 +188,12 @@ func (f *Feed) DeleteEntry(index int) error { return fmt.Errorf("error deleting entry %v from entry %v: %v", index, f.ID.URI, err) } - f.Updated.Update() + if f.Updated == nil { + f.Updated = NewDate(time.Now()) + } else { + f.Updated.DateTime = DateTime(time.Now()) + } + return nil } @@ -155,7 +215,12 @@ func (f *Feed) DeleteEntryByURI(uri string) error { } f.Entries = append(f.Entries[:index], f.Entries[index+1:]...) - f.Updated.Update() + if f.Updated == nil { + f.Updated = NewDate(time.Now()) + } else { + f.Updated.DateTime = DateTime(time.Now()) + } + return nil }