feat: new relation resolver (#9794)

Fix [#240](https://github.com/twentyhq/core-team-issues/issues/240)
This commit is contained in:
Jérémy M
2025-01-24 10:38:50 +01:00
committed by GitHub
parent 5783c41df2
commit 8d794374f1
13 changed files with 318 additions and 8 deletions

View File

@ -0,0 +1,38 @@
import { Field, ObjectType, registerEnumType } from '@nestjs/graphql';
import { IsEnum, IsNotEmpty } from 'class-validator';
import { Relation } from 'typeorm';
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
import { FieldMetadataDTO } from 'src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto';
import { ObjectMetadataDTO } from 'src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto';
registerEnumType(RelationType, {
name: 'RelationType',
description: 'Relation type',
});
@ObjectType('Relation')
export class RelationDTO {
@IsEnum(RelationType)
@IsNotEmpty()
@Field(() => RelationType)
type: RelationType;
@IsNotEmpty()
@Field(() => ObjectMetadataDTO)
sourceObjectMetadata: Relation<ObjectMetadataDTO>;
@IsNotEmpty()
@Field(() => ObjectMetadataDTO)
targetObjectMetadata: Relation<ObjectMetadataDTO>;
@IsNotEmpty()
@Field(() => FieldMetadataDTO)
sourceFieldMetadata: Relation<FieldMetadataDTO>;
@IsNotEmpty()
@Field(() => FieldMetadataDTO)
targetFieldMetadata: Relation<FieldMetadataDTO>;
}