From c795db33b2d3115e963ac1678d32e2619ed843fb Mon Sep 17 00:00:00 2001 From: Weiko Date: Thu, 23 Nov 2023 16:26:33 +0100 Subject: [PATCH] Add activityTarget relation after custom object creation (#2670) * Add activityTarget relation after custom object creation * add isCustom check for relations --- .../field-metadata/field-metadata.service.ts | 4 + .../object-metadata/object-metadata.module.ts | 3 +- .../object-metadata.service.ts | 119 +++++++++++++++++- .../composite-field-alias.factory.ts | 2 +- .../interfaces/field-metadata.interface.ts | 1 + 5 files changed, 126 insertions(+), 3 deletions(-) diff --git a/server/src/metadata/field-metadata/field-metadata.service.ts b/server/src/metadata/field-metadata/field-metadata.service.ts index b208e477e..06aa31b5d 100644 --- a/server/src/metadata/field-metadata/field-metadata.service.ts +++ b/server/src/metadata/field-metadata/field-metadata.service.ts @@ -56,6 +56,10 @@ export class FieldMetadataService extends TypeOrmQueryService, + @InjectRepository(FieldMetadataEntity, 'metadata') + private readonly fieldMetadataRepository: Repository, + + @InjectRepository(RelationMetadataEntity, 'metadata') + private readonly relationMetadataRepository: Repository, + private readonly dataSourceService: DataSourceService, private readonly typeORMService: TypeORMService, private readonly workspaceMigrationService: WorkspaceMigrationService, @@ -117,6 +130,86 @@ export class ObjectMetadataService extends TypeOrmQueryService { + if (fieldMetadata.type === FieldMetadataType.RELATION) { + acc[fieldMetadata.objectMetadataId] = fieldMetadata; + } + return acc; + }, + {}, + ); + + await this.relationMetadataRepository.save([ + { + workspaceId: record.workspaceId, + relationType: RelationMetadataType.ONE_TO_MANY, + fromObjectMetadataId: createdObjectMetadata.id, + toObjectMetadataId: activityTargetObjectMetadata.id, + fromFieldMetadataId: + activityTargetRelationFieldMetadataMap[createdObjectMetadata.id].id, + toFieldMetadataId: + activityTargetRelationFieldMetadataMap[ + activityTargetObjectMetadata.id + ].id, + }, + ]); + await this.workspaceMigrationService.createCustomMigration( createdObjectMetadata.workspaceId, [ @@ -124,6 +217,30 @@ export class ObjectMetadataService extends TypeOrmQueryService