commitUpdated

This commit is contained in:
Kristaps Fabians Geikins
2024-10-25 15:03:15 +03:00
parent a3604331c4
commit cbbf9b6ad4
3 changed files with 27 additions and 23 deletions
@@ -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]),
@@ -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
@@ -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 =