Just implement update logic in Methods where it is needed, since if there is no pointer I cannot hand it to any function or method

This commit is contained in:
2024-10-20 15:54:49 +02:00
parent 0b70a8ee10
commit 8fc6a10b0d
3 changed files with 138 additions and 32 deletions

View File

@@ -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
}