From f690f1016a5e985231ec4e2a30246a29b207554b Mon Sep 17 00:00:00 2001 From: Kristaps Fabians Geikins Date: Fri, 25 Oct 2024 13:57:58 +0300 Subject: [PATCH] branchDeleted --- .../activitystream/services/branchActivity.ts | 3 +- .../modules/core/graph/resolvers/branches.js | 35 ------------------- .../resolvers/{branchesNew.ts => branches.ts} | 15 ++++++++ .../modules/shared/utils/subscriptions.ts | 9 ++++- 4 files changed, 24 insertions(+), 38 deletions(-) delete mode 100644 packages/server/modules/core/graph/resolvers/branches.js rename packages/server/modules/core/graph/resolvers/{branchesNew.ts => branches.ts} (93%) diff --git a/packages/server/modules/activitystream/services/branchActivity.ts b/packages/server/modules/activitystream/services/branchActivity.ts index 0cfcc8bed3..22ef8c0a23 100644 --- a/packages/server/modules/activitystream/services/branchActivity.ts +++ b/packages/server/modules/activitystream/services/branchActivity.ts @@ -1,6 +1,5 @@ import { ActionTypes, ResourceTypes } from '@/modules/activitystream/helpers/types' import { - pubsub, BranchSubscriptions as BranchPubsubEvents, PublishSubscription } from '@/modules/shared/utils/subscriptions' @@ -113,7 +112,7 @@ export const addBranchDeletedActivityFactory = info: { branch: { ...input, name: branchName } }, message: `Branch deleted: '${branchName}' (${input.id})` }), - pubsub.publish(BranchPubsubEvents.BranchDeleted, { + publish(BranchPubsubEvents.BranchDeleted, { branchDeleted: input, streamId }), diff --git a/packages/server/modules/core/graph/resolvers/branches.js b/packages/server/modules/core/graph/resolvers/branches.js deleted file mode 100644 index d5404ace4f..0000000000 --- a/packages/server/modules/core/graph/resolvers/branches.js +++ /dev/null @@ -1,35 +0,0 @@ -const { withFilter } = require('graphql-subscriptions') -const { - pubsub, - BranchSubscriptions: BranchPubsubEvents -} = require('@/modules/shared/utils/subscriptions') -const { authorizeResolver } = require('@/modules/shared') -const { Roles } = require('@speckle/shared') - -/** - * TODO: Clean up and move to branchesNew.ts - */ - -// subscription events -const BRANCH_DELETED = BranchPubsubEvents.BranchDeleted - -/** @type {import('@/modules/core/graph/generated/graphql').Resolvers} */ -module.exports = { - Subscription: { - branchDeleted: { - subscribe: withFilter( - () => pubsub.asyncIterator([BRANCH_DELETED]), - async (payload, variables, context) => { - await authorizeResolver( - context.userId, - payload.streamId, - Roles.Stream.Reviewer, - context.resourceAccessRules - ) - - return payload.streamId === variables.streamId - } - ) - } - } -} diff --git a/packages/server/modules/core/graph/resolvers/branchesNew.ts b/packages/server/modules/core/graph/resolvers/branches.ts similarity index 93% rename from packages/server/modules/core/graph/resolvers/branchesNew.ts rename to packages/server/modules/core/graph/resolvers/branches.ts index 5997e6f5b3..a3b068c0df 100644 --- a/packages/server/modules/core/graph/resolvers/branchesNew.ts +++ b/packages/server/modules/core/graph/resolvers/branches.ts @@ -173,6 +173,21 @@ export = { return streamMatch } ) + }, + branchDeleted: { + subscribe: filteredSubscribe( + BranchPubsubEvents.BranchDeleted, + async (payload, variables, context) => { + await authorizeResolver( + context.userId, + payload.streamId, + Roles.Stream.Reviewer, + context.resourceAccessRules + ) + + return payload.streamId === variables.streamId + } + ) } } } as Resolvers diff --git a/packages/server/modules/shared/utils/subscriptions.ts b/packages/server/modules/shared/utils/subscriptions.ts index 660a762db2..36ea1f9812 100644 --- a/packages/server/modules/shared/utils/subscriptions.ts +++ b/packages/server/modules/shared/utils/subscriptions.ts @@ -43,7 +43,10 @@ import { SubscriptionBranchCreatedArgs, SubscriptionBranchUpdatedArgs, BranchUpdateInput, - UpdateModelInput + UpdateModelInput, + SubscriptionBranchDeletedArgs, + BranchDeleteInput, + DeleteModelInput } from '@/modules/core/graph/generated/graphql' import { Merge } from 'type-fest' import { @@ -318,6 +321,10 @@ type SubscriptionTypeMap = { } variables: SubscriptionBranchUpdatedArgs } + [BranchSubscriptions.BranchDeleted]: { + payload: { branchDeleted: BranchDeleteInput | DeleteModelInput; streamId: string } + variables: SubscriptionBranchDeletedArgs + } } & { [k in SubscriptionEvent]: { payload: unknown; variables: unknown } } type SubscriptionEvent =