Morph Relations : deleteOneField (#13349)
This PR adapts teh deleteOneField to make sure morph relations can be deleted, either - from a relation type, - or from a morph relation type (which is the most obvious case). This PR covers - the deletion of fieldMetadata - and the migrationof workspace schemas, by using the already existing definition of relation migrations This PR implements a new test suite: "Delete Object metadata with morph relation" and completes the other test suites for FieldMetadata and ObjectMetadata creation/deletion. Last, we added a nitpick from @paul I forgot on a previous PR on process-nested-realtion-v2 Fixes https://github.com/twentyhq/core-team-issues/issues/1197
This commit is contained in:
+20
@@ -0,0 +1,20 @@
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
||||
import { isFieldMetadataTypeMorphRelation } from 'src/engine/metadata-modules/field-metadata/utils/is-field-metadata-type-morph-relation.util';
|
||||
import { isFieldMetadataTypeRelation } from 'src/engine/metadata-modules/field-metadata/utils/is-field-metadata-type-relation.util';
|
||||
|
||||
export const areFieldMetadatasTypeRelationOrMorphRelation = (
|
||||
fieldMetadatas: FieldMetadataEntity[],
|
||||
): fieldMetadatas is Array<
|
||||
FieldMetadataEntity &
|
||||
FieldMetadataEntity<
|
||||
FieldMetadataType.MORPH_RELATION | FieldMetadataType.RELATION
|
||||
>
|
||||
> => {
|
||||
return fieldMetadatas.every(
|
||||
(fieldMetadata) =>
|
||||
isFieldMetadataTypeRelation(fieldMetadata) ||
|
||||
isFieldMetadataTypeMorphRelation(fieldMetadata),
|
||||
);
|
||||
};
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
||||
|
||||
export const isFieldMetadataTypeMorphRelation = (
|
||||
fieldMetadata: FieldMetadataEntity,
|
||||
): fieldMetadata is FieldMetadataEntity &
|
||||
FieldMetadataEntity<FieldMetadataType.MORPH_RELATION> => {
|
||||
return fieldMetadata.type === FieldMetadataType.MORPH_RELATION;
|
||||
};
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
||||
|
||||
export const isFieldMetadataTypeRelation = (
|
||||
fieldMetadata: FieldMetadataEntity,
|
||||
): fieldMetadata is FieldMetadataEntity &
|
||||
FieldMetadataEntity<FieldMetadataType.RELATION> => {
|
||||
return fieldMetadata.type === FieldMetadataType.RELATION;
|
||||
};
|
||||
Reference in New Issue
Block a user