rename Comments.comment to Comments.visible and allow slack task to load any comment regardless of visibility (#2855)

Co-authored-by: Wyatt Johnson <accounts+github@wyattjoh.ca>
This commit is contained in:
Tessa Thornton
2020-02-27 13:46:28 -05:00
committed by GitHub
parent a059e70d05
commit c052d37a6f
4 changed files with 14 additions and 6 deletions
+10 -2
View File
@@ -69,7 +69,7 @@ const primeCommentsFromConnection = (ctx: Context) => (
if (!ctx.disableCaching) {
// For each of the nodes, prime the comment loader.
connection.nodes.forEach(comment => {
ctx.loaders.Comments.comment.prime(comment.id, comment);
ctx.loaders.Comments.visible.prime(comment.id, comment);
});
}
@@ -115,7 +115,7 @@ const mapVisibleComments = (user?: Pick<User, "role">) => (
): Array<Readonly<Comment> | null> => comments.map(mapVisibleComment(user));
export default (ctx: Context) => ({
comment: new DataLoader<string, Readonly<Comment> | null>(
visible: new DataLoader<string, Readonly<Comment> | null>(
(ids: string[]) =>
retrieveManyComments(ctx.mongo, ctx.tenant.id, ids).then(
mapVisibleComments(ctx.user)
@@ -126,6 +126,14 @@ export default (ctx: Context) => ({
cache: !ctx.disableCaching,
}
),
comment: new DataLoader<string, Readonly<Comment> | null>(
(ids: string[]) => retrieveManyComments(ctx.mongo, ctx.tenant.id, ids),
{
// Disable caching for the DataLoader if the Context is designed to be
// long lived.
cache: !ctx.disableCaching,
}
),
forFilter: ({
first,
after,
+2 -2
View File
@@ -40,7 +40,7 @@ export const maybeLoadOnlyID = (
// We want more than the ID! Get the comment!
// TODO: (wyattjoh) if the parent and the parents (containing the parent) are requested, the parent comment is retrieved from the database twice. Investigate ways of reducing i/o.
return ctx.loaders.Comments.comment.load(id);
return ctx.loaders.Comments.visible.load(id);
};
export const Comment: GQLCommentTypeResolver<comment.Comment> = {
@@ -77,7 +77,7 @@ export const Comment: GQLCommentTypeResolver<comment.Comment> = {
return 0;
}
const children = await ctx.loaders.Comments.comment.loadMany(childIDs);
const children = await ctx.loaders.Comments.visible.loadMany(childIDs);
return children.reduce(
(sum: any, c: any) => (c && hasPublishedStatus(c) ? sum + 1 : sum),
0
@@ -6,7 +6,7 @@ export const CommentModerationAction: GQLCommentModerationActionTypeResolver<
actions.CommentModerationAction
> = {
revision: async (action, input, ctx) => {
const comment = await ctx.loaders.Comments.comment.load(action.commentID);
const comment = await ctx.loaders.Comments.visible.load(action.commentID);
if (!comment) {
return null;
}
+1 -1
View File
@@ -14,7 +14,7 @@ export const Query: Required<GQLQueryTypeResolver<void>> = {
user: (source, args, ctx) => ctx.loaders.Users.user.load(args.id),
users: (source, args, ctx) => ctx.loaders.Users.connection(args),
comment: (source, { id }, ctx) =>
id ? ctx.loaders.Comments.comment.load(id) : null,
id ? ctx.loaders.Comments.visible.load(id) : null,
comments: (source, args, ctx) => ctx.loaders.Comments.forFilter(args),
settings: (source, args, ctx) => ctx.tenant,
viewer: (source, args, ctx) => ctx.user,