From fa152bda3f021af28a3741bc73d28748eaec7b1c Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Wed, 15 Feb 2017 17:48:40 -0700 Subject: [PATCH] Added count clearning for status changes --- graph/mutators/comment.js | 20 +++++++++++++++++--- services/comments.js | 2 +- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/graph/mutators/comment.js b/graph/mutators/comment.js index 91b2b0d01..a56612b83 100644 --- a/graph/mutators/comment.js +++ b/graph/mutators/comment.js @@ -169,9 +169,23 @@ const createPublicComment = (context, commentInput) => { * @param {String} status the new status of the comment */ -const setCommentStatus = ({comment}, {id, status}) => { - return CommentsService.setStatus(id, status) - .then(res => res); +const setCommentStatus = ({loaders: {Comments}}, {id, status}) => { + return CommentsService + .setStatus(id, status) + .then((comment) => { + + // If the loaders are present, clear the caches for these values because we + // just added a new comment, hence the counts should be updated. + if (Comments && Comments.countByAssetID && Comments.countByParentID) { + if (comment.parent_id != null) { + Comments.countByParentID.clear(comment.parent_id); + } else { + Comments.countByAssetID.clear(comment.asset_id); + } + } + + return comment; + }); }; module.exports = (context) => { diff --git a/services/comments.js b/services/comments.js index 8ec2b6038..ad9ce18db 100644 --- a/services/comments.js +++ b/services/comments.js @@ -273,7 +273,7 @@ module.exports = class CommentsService { return Promise.reject(new Error(`status ${status} is not supported`)); } - return CommentModel.update({id}, { + return CommentModel.findOneAndUpdate({id}, { $set: {status} }); }