From acf792089deb44b870a8ab12faa56432a9743c80 Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Wed, 23 Aug 2017 15:42:30 -0600 Subject: [PATCH] added more db optims --- graph/resolvers/asset.js | 41 ++++++++++------------- graph/resolvers/comment_status_history.js | 6 ++-- graph/resolvers/flag_action.js | 6 ++-- graph/resolvers/root_query.js | 4 +-- services/comments.js | 6 ++-- 5 files changed, 31 insertions(+), 32 deletions(-) diff --git a/graph/resolvers/asset.js b/graph/resolvers/asset.js index 51234fd5a..ebae4e5a7 100644 --- a/graph/resolvers/asset.js +++ b/graph/resolvers/asset.js @@ -1,32 +1,27 @@ const {decorateWithTags} = require('./util'); -const { - SEARCH_NON_NULL_OR_ACCEPTED_COMMENTS, -} = require('../../perms/constants'); const Asset = { - async comment({id}, {id: commentId}, {loaders: {Comments}, user}) { - const statuses = user && user.can(SEARCH_NON_NULL_OR_ACCEPTED_COMMENTS) - ? ['NONE', 'ACCEPTED', 'PREMOD', 'REJECTED'] - : ['NONE', 'ACCEPTED']; + async comment({id}, {id: commentId}, {loaders: {Comments}}) { - const comments = await Comments.getByQuery({ - asset_id: id, - ids: commentId, - statuses, - }); + // Load the comment from the database. + const comment = Comments.get.load(id); + if (!comment) { + return null; + } - return comments.nodes[0]; + // If the comment asset mismatches, then don't return it! + if (comment.asset_id !== id) { + return null; + } + + return comment; }, - comments({id}, {query: {sort, sortBy, limit, excludeIgnored, tags}, deep}, {loaders: {Comments}}) { - return Comments.getByQuery({ - asset_id: id, - sort, - sortBy, - limit, - parent_id: deep ? undefined : null, - tags, - excludeIgnored, - }); + comments({id}, {query, deep}, {loaders: {Comments}}) { + if (!deep) { + query.parent_id = null; + } + + return Comments.getByQuery(query); }, commentCount({id, commentCount}, {tags}, {loaders: {Comments}}) { if (commentCount != null) { diff --git a/graph/resolvers/comment_status_history.js b/graph/resolvers/comment_status_history.js index 2e1676d90..fb431b628 100644 --- a/graph/resolvers/comment_status_history.js +++ b/graph/resolvers/comment_status_history.js @@ -2,9 +2,11 @@ const {SEARCH_OTHER_USERS} = require('../../perms/constants'); const CommentStatusHistory = { assigned_by({assigned_by}, _, {user, loaders: {Users}}) { - if (user && user.can(SEARCH_OTHER_USERS) && assigned_by != null) { - return Users.getByID.load(assigned_by); + if (!user || !user.can(SEARCH_OTHER_USERS) || assigned_by != null) { + return null; } + + return Users.getByID.load(assigned_by); } }; diff --git a/graph/resolvers/flag_action.js b/graph/resolvers/flag_action.js index e4b30c408..dee583747 100644 --- a/graph/resolvers/flag_action.js +++ b/graph/resolvers/flag_action.js @@ -8,9 +8,11 @@ const FlagAction = { return group_id; }, user({user_id}, _, {loaders: {Users}}) { - if (user_id) { - return Users.getByID.load(user_id); + if (!user_id) { + return null; } + + return Users.getByID.load(user_id); }, }; diff --git a/graph/resolvers/root_query.js b/graph/resolvers/root_query.js index c88184dc9..07dab8eed 100644 --- a/graph/resolvers/root_query.js +++ b/graph/resolvers/root_query.js @@ -39,8 +39,8 @@ const RootQuery = { return null; } - const {asset_url} = query; - if (asset_url && asset_url.length > 0) { + const {asset_url, asset_id} = query; + if ((!asset_id || asset_id.length === 0) && asset_url && asset_url.length > 0) { let asset = await Assets.findByUrl(asset_url); if (asset) { query.asset_id = asset.id; diff --git a/services/comments.js b/services/comments.js index ac7d6ae45..db0714233 100644 --- a/services/comments.js +++ b/services/comments.js @@ -95,11 +95,11 @@ module.exports = class CommentsService { }, }); - if (originalComment === null) { + if (originalComment == null) { // Try to get the comment. const comment = await CommentsService.findById(id); - if (comment === null) { + if (comment == null) { debug('rejecting comment edit because comment was not found'); throw errors.ErrNotFound; } @@ -253,7 +253,7 @@ module.exports = class CommentsService { $set: {status} }); - if (originalComment === null) { + if (originalComment == null) { throw errors.ErrNotFound; }