Skip to content

Commit 6125c7a

Browse files
committed
Add relations in database event trigger output data
1 parent 849a359 commit 6125c7a

File tree

4 files changed

+30
-19
lines changed

4 files changed

+30
-19
lines changed

packages/twenty-server/src/modules/workflow/workflow-builder/workflow-schema/utils/generate-fake-field.ts

+9-9
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,7 @@ export const generateFakeField = ({
1919
}): Leaf | Node => {
2020
const compositeType = compositeTypeDefinitions.get(type);
2121

22-
if (!compositeType) {
23-
return {
24-
isLeaf: true,
25-
type: type,
26-
icon: icon,
27-
label: label,
28-
value: generateFakeValue(type, 'FieldMetadataType'),
29-
};
30-
} else {
22+
if (compositeType) {
3123
return {
3224
isLeaf: false,
3325
icon: icon,
@@ -44,4 +36,12 @@ export const generateFakeField = ({
4436
}, {}),
4537
};
4638
}
39+
40+
return {
41+
isLeaf: true,
42+
type: type,
43+
icon: icon,
44+
label: label,
45+
value: generateFakeValue(type, 'FieldMetadataType'),
46+
};
4747
};

packages/twenty-server/src/modules/workflow/workflow-builder/workflow-schema/utils/generate-fake-object-record.ts

+19-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { FieldMetadataType } from 'twenty-shared/types';
2+
13
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
24
import {
35
Leaf,
@@ -9,13 +11,27 @@ import { shouldGenerateFieldFakeValue } from 'src/modules/workflow/workflow-buil
911

1012
const generateObjectRecordFields = (
1113
objectMetadataEntity: ObjectMetadataEntity,
12-
) =>
13-
objectMetadataEntity.fields.reduce(
14+
depth = 0,
15+
) => {
16+
return objectMetadataEntity.fields.reduce(
1417
(acc: Record<string, Leaf | Node>, field) => {
1518
if (!shouldGenerateFieldFakeValue(field)) {
1619
return acc;
1720
}
1821

22+
if (field.type === FieldMetadataType.RELATION && depth === 0) {
23+
acc[field.name] = {
24+
isLeaf: false,
25+
icon: field.icon,
26+
label: field.label,
27+
value: generateObjectRecordFields(
28+
field.relationTargetObjectMetadata,
29+
1,
30+
),
31+
};
32+
33+
return acc;
34+
}
1935
acc[field.name] = generateFakeField({
2036
type: field.type,
2137
label: field.label,
@@ -26,6 +42,7 @@ const generateObjectRecordFields = (
2642
},
2743
{},
2844
);
45+
};
2946

3047
export const generateFakeObjectRecord = (
3148
objectMetadataEntity: ObjectMetadataEntity,
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
1-
import { FieldMetadataType } from 'twenty-shared/types';
2-
31
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
42

53
export const shouldGenerateFieldFakeValue = (field: FieldMetadataEntity) => {
6-
return (
7-
(!field.isSystem || field.name === 'id') &&
8-
field.isActive &&
9-
field.type !== FieldMetadataType.RELATION
10-
);
4+
return (!field.isSystem || field.name === 'id') && field.isActive;
115
};

packages/twenty-server/src/modules/workflow/workflow-builder/workflow-schema/workflow-schema.workspace-service.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ export class WorkflowSchemaWorkspaceService {
112112
nameSingular,
113113
workspaceId,
114114
},
115-
relations: ['fields'],
115+
relations: ['fields', 'fields.relationTargetObjectMetadata.fields'],
116116
});
117117

118118
if (!isDefined(objectMetadata)) {

0 commit comments

Comments
 (0)