From 39a4fef506fce564c3c51dba9aab73ea76daf20a Mon Sep 17 00:00:00 2001 From: Gisle Aune Date: Mon, 14 Jan 2019 18:01:43 +0100 Subject: [PATCH] models, graph2: Added comment removal on chapter removal. --- graph2/queries/chapter.go | 6 ++++++ models/comments/remove.go | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 models/comments/remove.go diff --git a/graph2/queries/chapter.go b/graph2/queries/chapter.go index d703378..55582ca 100644 --- a/graph2/queries/chapter.go +++ b/graph2/queries/chapter.go @@ -7,6 +7,7 @@ import ( "git.aiterp.net/rpdata/api/models/changekeys" "git.aiterp.net/rpdata/api/models/changes" + "git.aiterp.net/rpdata/api/models/comments" "git.aiterp.net/rpdata/api/internal/auth" "git.aiterp.net/rpdata/api/models/stories" @@ -155,6 +156,11 @@ func (r *mutationResolver) RemoveChapter(ctx context.Context, input input.Chapte return models.Chapter{}, errors.New("Failed to remove chapter: " + err.Error()) } + err = comments.RemoveChapter(chapter) + if err != nil { + return models.Chapter{}, errors.New("Chapter was removed, but comment removal failed: " + err.Error()) + } + go func() { story, err := stories.FindID(chapter.StoryID) if err != nil { diff --git a/models/comments/remove.go b/models/comments/remove.go new file mode 100644 index 0000000..db1fe79 --- /dev/null +++ b/models/comments/remove.go @@ -0,0 +1,17 @@ +package comments + +import ( + "git.aiterp.net/rpdata/api/models" + "github.com/globalsign/mgo/bson" +) + +// Remove removes one comment. +func Remove(comment models.Comment) error { + return collection.RemoveId(comment.ID) +} + +// RemoveChapter removes all comments for the given chapter. +func RemoveChapter(chapter models.Chapter) error { + _, err := collection.RemoveAll(bson.M{"chapterId": chapter.ID}) + return err +}