From 90681c67b048cd83974a7c066e74288fe2581f9a Mon Sep 17 00:00:00 2001 From: Gisle Aune Date: Sat, 13 Oct 2018 11:43:53 +0200 Subject: [PATCH] models2: Added post removal on log removal. --- models/logs/remove.go | 13 +++++++++++-- models/posts/remove.go | 6 ++++++ 2 files changed, 17 insertions(+), 2 deletions(-) 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 +}