diff --git a/models/logs/remove.go b/models/logs/remove.go index a6edffe..0d68f98 100644 --- a/models/logs/remove.go +++ b/models/logs/remove.go @@ -1,6 +1,11 @@ package logs -import "git.aiterp.net/rpdata/api/models" +import ( + "errors" + + "git.aiterp.net/rpdata/api/models" + "git.aiterp.net/rpdata/api/models/posts" +) // Remove removes the log. func Remove(log models.Log) (models.Log, error) { @@ -9,5 +14,9 @@ func Remove(log models.Log) (models.Log, error) { return models.Log{}, err } + if err := posts.RemoveAllInLog(log); err != nil { + return models.Log{}, errors.New("The log was removed, but its posts couldn't be: " + err.Error()) + } + return log, nil -} +} \ No newline at end of file diff --git a/models/posts/remove.go b/models/posts/remove.go index f79a15b..d9d2e1b 100644 --- a/models/posts/remove.go +++ b/models/posts/remove.go @@ -22,3 +22,9 @@ func Remove(post models.Post) (models.Post, error) { return post, nil } + +// RemoveAllInLog removes all posts for the given log. +func RemoveAllInLog(log models.Log) error { + _, err := collection.RemoveAll(bson.M{"logId": log.ShortID}) + return err +}