From cbbf9b6ad4b3cb6250168faa92ba67b20aa2bafa Mon Sep 17 00:00:00 2001 From: Kristaps Fabians Geikins Date: Fri, 25 Oct 2024 15:03:15 +0300 Subject: [PATCH] commitUpdated --- .../modules/core/graph/resolvers/commits.js | 22 ------------------- .../core/graph/resolvers/commitsNew.ts | 20 +++++++++++++++++ .../modules/shared/utils/subscriptions.ts | 8 ++++++- 3 files changed, 27 insertions(+), 23 deletions(-) diff --git a/packages/server/modules/core/graph/resolvers/commits.js b/packages/server/modules/core/graph/resolvers/commits.js index 5f10d0526..1eb4db88f 100644 --- a/packages/server/modules/core/graph/resolvers/commits.js +++ b/packages/server/modules/core/graph/resolvers/commits.js @@ -11,33 +11,11 @@ const { Roles } = require('@speckle/shared') */ // subscription events -const COMMIT_UPDATED = CommitPubsubEvents.CommitUpdated const COMMIT_DELETED = CommitPubsubEvents.CommitDeleted /** @type {import('@/modules/core/graph/generated/graphql').Resolvers} */ module.exports = { Subscription: { - commitUpdated: { - subscribe: withFilter( - () => pubsub.asyncIterator([COMMIT_UPDATED]), - async (payload, variables, context) => { - await authorizeResolver( - context.userId, - payload.streamId, - Roles.Stream.Reviewer, - context.resourceAccessRules - ) - - const streamMatch = payload.streamId === variables.streamId - if (streamMatch && variables.commitId) { - return payload.commitId === variables.commitId - } - - return streamMatch - } - ) - }, - commitDeleted: { subscribe: withFilter( () => pubsub.asyncIterator([COMMIT_DELETED]), diff --git a/packages/server/modules/core/graph/resolvers/commitsNew.ts b/packages/server/modules/core/graph/resolvers/commitsNew.ts index 177eb1212..e1ca65170 100644 --- a/packages/server/modules/core/graph/resolvers/commitsNew.ts +++ b/packages/server/modules/core/graph/resolvers/commitsNew.ts @@ -401,5 +401,25 @@ export = { } ) } + }, + commitUpdated: { + subscribe: filteredSubscribe( + CommitSubscriptions.CommitUpdated, + async (payload, variables, context) => { + await authorizeResolver( + context.userId, + payload.streamId, + Roles.Stream.Reviewer, + context.resourceAccessRules + ) + + const streamMatch = payload.streamId === variables.streamId + if (streamMatch && variables.commitId) { + return payload.commitId === variables.commitId + } + + return streamMatch + } + ) } } as Resolvers diff --git a/packages/server/modules/shared/utils/subscriptions.ts b/packages/server/modules/shared/utils/subscriptions.ts index f5992ccfc..8d98b4182 100644 --- a/packages/server/modules/shared/utils/subscriptions.ts +++ b/packages/server/modules/shared/utils/subscriptions.ts @@ -41,7 +41,9 @@ import { SubscriptionStreamUpdatedArgs, SubscriptionStreamDeletedArgs, SubscriptionCommitCreatedArgs, - CommitCreateInput + CommitCreateInput, + SubscriptionCommitUpdatedArgs, + CommitUpdateInput } from '@/modules/core/graph/generated/graphql' import { Merge } from 'type-fest' import { @@ -310,6 +312,10 @@ type SubscriptionTypeMap = { } variables: SubscriptionCommitCreatedArgs } + [CommitSubscriptions.CommitUpdated]: { + payload: { commitUpdated: CommitUpdateInput; streamId: string; commitId: string } + variables: SubscriptionCommitUpdatedArgs + } } & { [k in SubscriptionEvent]: { payload: unknown; variables: unknown } } type SubscriptionEvent =