diff --git a/package-lock.json b/package-lock.json index e1ad0e400..96e667219 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10222,11 +10222,8 @@ "resolved": "https://registry.npmjs.org/fluent-intl-polyfill/-/fluent-intl-polyfill-0.1.0.tgz", "integrity": "sha1-ETOUSrJHeINHOZVZaIPg05z4hc8=", "dev": true, - "dependencies": { - "intl-pluralrules": { - "version": "github:projectfluent/IntlPluralRules#94cb0fa1c23ad943bc5aafef43cea132fa51d68b", - "from": "github:projectfluent/IntlPluralRules#94cb0fa1c23ad943bc5aafef43cea132fa51d68b" - } + "requires": { + "intl-pluralrules": "github:projectfluent/IntlPluralRules#94cb0fa1c23ad943bc5aafef43cea132fa51d68b" } }, "fluent-langneg": { @@ -12670,6 +12667,11 @@ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", "dev": true }, + "intl-pluralrules": { + "version": "github:projectfluent/IntlPluralRules#94cb0fa1c23ad943bc5aafef43cea132fa51d68b", + "from": "github:projectfluent/IntlPluralRules#module", + "dev": true + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", diff --git a/src/core/server/graph/tenant/loaders/comments.ts b/src/core/server/graph/tenant/loaders/comments.ts index c12fe4296..c90c1ef6b 100644 --- a/src/core/server/graph/tenant/loaders/comments.ts +++ b/src/core/server/graph/tenant/loaders/comments.ts @@ -9,7 +9,7 @@ import { } from "talk-server/graph/tenant/schema/__generated__/types"; import { ACTION_ITEM_TYPE, - retrieveManyAuthoredActionPresence, + retrieveManyUserActionPresence, } from "talk-server/models/actions"; import { retrieveCommentAssetConnection, @@ -21,9 +21,9 @@ export default (ctx: Context) => ({ comment: new DataLoader((ids: string[]) => retrieveManyComments(ctx.mongo, ctx.tenant.id, ids) ), - retrieveAuthoredActionPresence: new DataLoader( + retrieveMyActionPresence: new DataLoader( (itemIDs: string[]) => - retrieveManyAuthoredActionPresence( + retrieveManyUserActionPresence( ctx.mongo, ctx.tenant.id, // This should only ever be accessed when a user is logged in. diff --git a/src/core/server/graph/tenant/resolvers/comment.ts b/src/core/server/graph/tenant/resolvers/comment.ts index 4c552727b..25b9b2f73 100644 --- a/src/core/server/graph/tenant/resolvers/comment.ts +++ b/src/core/server/graph/tenant/resolvers/comment.ts @@ -19,8 +19,10 @@ const Comment: GQLCommentTypeResolver = { replies: (comment, input, ctx) => ctx.loaders.Comments.forParent(comment.asset_id, comment.id, input), actionCounts: comment => decodeActionCounts(comment.action_counts), - authoredActionPresence: (comment, input, ctx) => - ctx.loaders.Comments.retrieveAuthoredActionPresence.load(comment.id), + myActionPresence: (comment, input, ctx) => + ctx.user + ? ctx.loaders.Comments.retrieveMyActionPresence.load(comment.id) + : null, }; export default Comment; diff --git a/src/core/server/graph/tenant/schema/schema.graphql b/src/core/server/graph/tenant/schema/schema.graphql index 4e1a05047..f8c00d98b 100644 --- a/src/core/server/graph/tenant/schema/schema.graphql +++ b/src/core/server/graph/tenant/schema/schema.graphql @@ -833,10 +833,10 @@ type Comment { actionCounts: ActionCounts! """ - authoredActionPresence stores the presense information for all the actions + myActionPresence stores the presense information for all the actions left by the current User on this Comment. """ - authoredActionPresence: ActionPresence! @auth + myActionPresence: ActionPresence } type PageInfo { diff --git a/src/core/server/models/actions.ts b/src/core/server/models/actions.ts index 7cd7a1ba6..a9e3a4654 100644 --- a/src/core/server/models/actions.ts +++ b/src/core/server/models/actions.ts @@ -1,5 +1,5 @@ import Joi from "joi"; -import { pick } from "lodash"; +import { camelCase, pick } from "lodash"; import { Db } from "mongodb"; import uuid from "uuid"; @@ -190,10 +190,10 @@ export async function createActions( } /** - * retrieveManyAuthoredActionPresence returns the action presence for a specific + * retrieveManyUserActionPresence returns the action presence for a specific * user. */ -export async function retrieveManyAuthoredActionPresence( +export async function retrieveManyUserActionPresence( mongo: Db, tenantID: string, userID: string | null, @@ -226,7 +226,7 @@ export async function retrieveManyAuthoredActionPresence( itemActions.reduce( (actionPresence, { action_type }) => ({ ...actionPresence, - [action_type.toLowerCase()]: true, + [camelCase(action_type)]: true, }), { reaction: false,