Skip to content

Commit a850682

Browse files
committed
Update endpoint + listeners
1 parent 47db158 commit a850682

File tree

4 files changed

+35
-9
lines changed

4 files changed

+35
-9
lines changed

packages/twenty-server/src/engine/core-modules/workflow/dtos/workflow-input.dto.ts renamed to packages/twenty-server/src/engine/core-modules/workflow/dtos/run-workflow-version-input.dto.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@ import { Field, InputType } from '@nestjs/graphql';
33
import graphqlTypeJson from 'graphql-type-json';
44

55
@InputType()
6-
export class WorkflowInput {
6+
export class RunWorkflowVersionInput {
7+
@Field(() => String, {
8+
description: 'Workflow version ID',
9+
nullable: false,
10+
})
11+
workflowVersionId: string;
12+
713
@Field(() => graphqlTypeJson, {
814
description: 'Execution result in JSON format',
915
nullable: true,

packages/twenty-server/src/engine/core-modules/workflow/workflow-trigger.resolver.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { UseGuards } from '@nestjs/common';
22
import { Args, Mutation, Resolver } from '@nestjs/graphql';
33

4-
import { WorkflowInput } from 'src/engine/core-modules/workflow/dtos/workflow-input.dto';
4+
import { RunWorkflowVersionInput } from 'src/engine/core-modules/workflow/dtos/run-workflow-version-input.dto';
55
import { WorkflowTriggerResultDTO } from 'src/engine/core-modules/workflow/dtos/workflow-trigger-result.dto';
66
import { workflowTriggerGraphqlApiExceptionHandler } from 'src/engine/core-modules/workflow/utils/workflow-trigger-graphql-api-exception-handler.util';
77
import { Workspace } from 'src/engine/core-modules/workspace/workspace.entity';
@@ -32,14 +32,13 @@ export class WorkflowTriggerResolver {
3232
}
3333

3434
@Mutation(() => WorkflowTriggerResultDTO)
35-
async triggerWorkflow(
35+
async runWorkflowVersion(
3636
@AuthWorkspace() { id: workspaceId }: Workspace,
37-
@Args('workflowVersionId') workflowVersionId: string,
38-
@Args('input') { payload }: WorkflowInput,
37+
@Args('input') { workflowVersionId, payload }: RunWorkflowVersionInput,
3938
) {
4039
try {
4140
return {
42-
result: await this.workflowTriggerService.runWorkflow(
41+
result: await this.workflowTriggerService.runWorkflowVersion(
4342
workspaceId,
4443
workflowVersionId,
4544
payload ?? {},

packages/twenty-server/src/modules/workflow/workflow-trigger/listeners/database-event-trigger.listener.ts

+23-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import { OnEvent } from '@nestjs/event-emitter';
44
import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum';
55
import { IsFeatureEnabledService } from 'src/engine/core-modules/feature-flag/services/is-feature-enabled.service';
66
import { ObjectRecordCreateEvent } from 'src/engine/integrations/event-emitter/types/object-record-create.event';
7+
import { ObjectRecordDeleteEvent } from 'src/engine/integrations/event-emitter/types/object-record-delete.event';
8+
import { ObjectRecordUpdateEvent } from 'src/engine/integrations/event-emitter/types/object-record-update.event';
79
import { InjectMessageQueue } from 'src/engine/integrations/message-queue/decorators/message-queue.decorator';
810
import { MessageQueue } from 'src/engine/integrations/message-queue/message-queue.constants';
911
import { MessageQueueService } from 'src/engine/integrations/message-queue/services/message-queue.service';
@@ -25,8 +27,27 @@ export class DatabaseEventTriggerListener {
2527
private readonly isFeatureFlagEnabledService: IsFeatureEnabledService,
2628
) {}
2729

28-
@OnEvent('**')
29-
async handleEvent(payload: ObjectRecordCreateEvent<any>) {
30+
@OnEvent('*.created')
31+
async handleObjectRecordCreateEvent(payload: ObjectRecordCreateEvent<any>) {
32+
await this.handleEvent(payload);
33+
}
34+
35+
@OnEvent('*.updated')
36+
async handleObjectRecordUpdateEvent(payload: ObjectRecordUpdateEvent<any>) {
37+
await this.handleEvent(payload);
38+
}
39+
40+
@OnEvent('*.deleted')
41+
async handleObjectRecordDeleteEvent(payload: ObjectRecordDeleteEvent<any>) {
42+
await this.handleEvent(payload);
43+
}
44+
45+
private async handleEvent(
46+
payload:
47+
| ObjectRecordCreateEvent<any>
48+
| ObjectRecordUpdateEvent<any>
49+
| ObjectRecordDeleteEvent<any>,
50+
) {
3051
const workspaceId = payload.workspaceId;
3152
const eventName = payload.name;
3253

packages/twenty-server/src/modules/workflow/workflow-trigger/workflow-trigger.service.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export class WorkflowTriggerService {
2222
private readonly workflowRunnerService: WorkflowRunnerService,
2323
) {}
2424

25-
async runWorkflow(
25+
async runWorkflowVersion(
2626
workspaceId: string,
2727
workflowVersionId: string,
2828
payload: object,

0 commit comments

Comments
 (0)