Files
twenty_crm/packages/twenty-server/src/engine/utils/deduce-relation-direction.util.ts
Jérémy M e5c1309e8c feat: wip server folder structure (#4573)
* feat: wip server folder structure

* fix: merge

* fix: wrong merge

* fix: remove unused file

* fix: comment

* fix: lint

* fix: merge

* fix: remove console.log

* fix: metadata graphql arguments broken
2024-03-20 16:23:46 +01:00

31 lines
987 B
TypeScript

import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { RelationMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-metadata.interface';
export enum RelationDirection {
FROM = 'from',
TO = 'to',
}
export const deduceRelationDirection = (
fieldMetadata: FieldMetadataInterface,
relationMetadata: RelationMetadataInterface,
): RelationDirection => {
if (
relationMetadata.fromObjectMetadataId === fieldMetadata.objectMetadataId &&
relationMetadata.fromFieldMetadataId === fieldMetadata.id
) {
return RelationDirection.FROM;
}
if (
relationMetadata.toObjectMetadataId === fieldMetadata.objectMetadataId &&
relationMetadata.toFieldMetadataId === fieldMetadata.id
) {
return RelationDirection.TO;
}
throw new Error(
`Relation metadata ${relationMetadata.id} is not related to object ${fieldMetadata.objectMetadataId}`,
);
};