diff --git a/graph/mutators/action.js b/graph/mutators/action.js index 3499719e1..a572a641c 100644 --- a/graph/mutators/action.js +++ b/graph/mutators/action.js @@ -45,10 +45,6 @@ const deleteAction = ({user}, {id}) => { }; module.exports = (context) => { - - // TODO: refactor to something that'll return an error in the event an attempt - // is made to mutate state while not logged in. There's got to be a better way - // to do this. if (context.user && context.user.can('mutation:createAction', 'mutation:deleteAction')) { return { Action: { diff --git a/graph/mutators/comment.js b/graph/mutators/comment.js index 91b2b0d01..5007a3039 100644 --- a/graph/mutators/comment.js +++ b/graph/mutators/comment.js @@ -169,16 +169,26 @@ 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) => { - - // TODO: refactor to something that'll return an error in the event an attempt - // is made to mutate state while not logged in. There's got to be a better way - // to do this. let mutators = { Comment: { create: () => Promise.reject(errors.ErrNotAuthorized), diff --git a/graph/mutators/user.js b/graph/mutators/user.js index 2c43f11be..3f87c1fb5 100644 --- a/graph/mutators/user.js +++ b/graph/mutators/user.js @@ -7,10 +7,6 @@ const setUserStatus = ({user}, {id, status}) => { }; module.exports = (context) => { - - // TODO: refactor to something that'll return an error in the event an attempt - // is made to mutate state while not logged in. There's got to be a better way - // to do this. if (context.user && context.user.can('mutation:setUserStatus')) { return { User: { 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} }); }