RelationFieldMetadataType to MorphOrRelationFieldMetadataType and so on (#14160)
This commit is contained in:
+4
-4
@@ -10,7 +10,7 @@ import { type FlatFieldMetadataRelationPropertiesToCompare } from 'src/engine/me
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { isFlatFieldMetadataJsonbProperty } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-flat-field-metadata-jsonb-property.util';
|
||||
import { isStandardMetadata } from 'src/engine/metadata-modules/utils/is-standard-metadata.util';
|
||||
import { isRelationFieldMetadataType } from 'src/engine/utils/is-relation-field-metadata-type.util';
|
||||
import { isMorphOrRelationFieldMetadataType } from 'src/engine/utils/is-morph-or-relation-field-metadata-type.util';
|
||||
import { type UpdateFieldAction } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/workspace-migration-field-action-v2';
|
||||
import { transformMetadataForComparison } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util';
|
||||
|
||||
@@ -39,12 +39,12 @@ export const compareTwoFlatFieldMetadata = ({
|
||||
}
|
||||
|
||||
// Remove below assertion when we authorize relation edition, see https://github.com/twentyhq/twenty/commit/39f6f3c4bb101272a9014e142a842d0801a3c33b
|
||||
const isRelationFieldType =
|
||||
const isMorphOrRelationFieldType =
|
||||
isDefined(fieldMetadata.type) &&
|
||||
isRelationFieldMetadataType(fieldMetadata.type);
|
||||
isMorphOrRelationFieldMetadataType(fieldMetadata.type);
|
||||
|
||||
if (
|
||||
isRelationFieldType &&
|
||||
isMorphOrRelationFieldType &&
|
||||
!FLAT_FIELD_METADATA_RELATION_PROPERTIES_TO_COMPARE.includes(
|
||||
property as FlatFieldMetadataRelationPropertiesToCompare,
|
||||
)
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { type RelationFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/relation-field-metadata-type.type';
|
||||
import { type MorphOrRelationFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/morph-or-relation-field-metadata-type.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { findRelationFlatFieldMetadataTargetFlatFieldMetadataOrThrow } from 'src/engine/metadata-modules/flat-field-metadata/utils/find-relation-flat-field-metadatas-target-flat-field-metadata-or-throw.util';
|
||||
import { isFlatFieldMetadataEntityOfType } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-flat-field-metadata-of-type.util';
|
||||
@@ -18,7 +18,7 @@ export type FindFlatFieldMetadatasRelatedToMorphRelationOrThrowArgs = {
|
||||
export const findFlatFieldMetadatasRelatedToMorphRelationOrThrow = ({
|
||||
flatObjectMetadataMaps,
|
||||
flatFieldMetadata: morphRelationFlatFieldMetadata,
|
||||
}: FindFlatFieldMetadatasRelatedToMorphRelationOrThrowArgs): FlatFieldMetadata<RelationFieldMetadataType>[] => {
|
||||
}: FindFlatFieldMetadatasRelatedToMorphRelationOrThrowArgs): FlatFieldMetadata<MorphOrRelationFieldMetadataType>[] => {
|
||||
const flatObjectMetadataWithFlatFieldMaps =
|
||||
flatObjectMetadataMaps.byId[
|
||||
morphRelationFlatFieldMetadata.objectMetadataId
|
||||
|
||||
+3
-3
@@ -1,18 +1,18 @@
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import {
|
||||
FieldMetadataException,
|
||||
FieldMetadataExceptionCode,
|
||||
} from 'src/engine/metadata-modules/field-metadata/field-metadata.exception';
|
||||
import { type RelationFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/relation-field-metadata-type.type';
|
||||
import { type MorphOrRelationFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/morph-or-relation-field-metadata-type.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { isFlatFieldMetadataEntityOfType } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-flat-field-metadata-of-type.util';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
|
||||
export type GetRelationFlatFieldMetadatasUtilArgs = {
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
flatFieldMetadata: FlatFieldMetadata<RelationFieldMetadataType>;
|
||||
flatFieldMetadata: FlatFieldMetadata<MorphOrRelationFieldMetadataType>;
|
||||
};
|
||||
|
||||
export const findRelationFlatFieldMetadataTargetFlatFieldMetadataOrThrow = ({
|
||||
|
||||
+6
-3
@@ -7,9 +7,10 @@ import {
|
||||
|
||||
import { type CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input';
|
||||
import { FieldMetadataExceptionCode } from 'src/engine/metadata-modules/field-metadata/field-metadata.exception';
|
||||
import { type MorphOrRelationFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/morph-or-relation-field-metadata-type.type';
|
||||
import { type FieldInputTranspilationResult } from 'src/engine/metadata-modules/flat-field-metadata/types/field-input-transpilation-result.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { generateRelationOrMorphRelationFlatFieldMetadataPair } from 'src/engine/metadata-modules/flat-field-metadata/utils/generate-relation-or-morph-relation-flat-field-metadata-pair.util';
|
||||
import { generateMorphOrRelationFlatFieldMetadataPair } from 'src/engine/metadata-modules/flat-field-metadata/utils/generate-morph-or-relation-flat-field-metadata-pair.util';
|
||||
import { validateMorphRelationCreationPayload } from 'src/engine/metadata-modules/flat-field-metadata/validators/utils/validate-morph-relation-creation-payload.util';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
@@ -28,7 +29,9 @@ export const fromMorphRelationCreateFieldInputToFlatFieldMetadatas = async ({
|
||||
sourceFlatObjectMetadata,
|
||||
workspaceId,
|
||||
}: FromMorphRelationCreateFieldInputToFlatFieldMetadatasArgs): Promise<
|
||||
FieldInputTranspilationResult<FlatFieldMetadata[]>
|
||||
FieldInputTranspilationResult<
|
||||
FlatFieldMetadata<MorphOrRelationFieldMetadataType>[]
|
||||
>
|
||||
> => {
|
||||
const rawMorphCreationPayload =
|
||||
createFieldInput.morphRelationsCreationPayload;
|
||||
@@ -70,7 +73,7 @@ export const fromMorphRelationCreateFieldInputToFlatFieldMetadatas = async ({
|
||||
targetFlatObjectMetadata.nameSingular,
|
||||
});
|
||||
|
||||
return generateRelationOrMorphRelationFlatFieldMetadataPair({
|
||||
return generateMorphOrRelationFlatFieldMetadataPair({
|
||||
createFieldInput: {
|
||||
...createFieldInput,
|
||||
relationCreationPayload,
|
||||
|
||||
+16
-18
@@ -4,11 +4,10 @@ import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { type CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input';
|
||||
import { FieldMetadataExceptionCode } from 'src/engine/metadata-modules/field-metadata/field-metadata.exception';
|
||||
import { type RelationFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/relation-field-metadata-type.type';
|
||||
import { computeRelationFieldJoinColumnName } from 'src/engine/metadata-modules/field-metadata/utils/compute-relation-field-join-column-name.util';
|
||||
import { type FieldInputTranspilationResult } from 'src/engine/metadata-modules/flat-field-metadata/types/field-input-transpilation-result.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { generateRelationOrMorphRelationFlatFieldMetadataPair } from 'src/engine/metadata-modules/flat-field-metadata/utils/generate-relation-or-morph-relation-flat-field-metadata-pair.util';
|
||||
import { generateMorphOrRelationFlatFieldMetadataPair } from 'src/engine/metadata-modules/flat-field-metadata/utils/generate-morph-or-relation-flat-field-metadata-pair.util';
|
||||
import { validateRelationCreationPayload } from 'src/engine/metadata-modules/flat-field-metadata/validators/utils/validate-relation-creation-payload.util';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
@@ -27,7 +26,7 @@ export const fromRelationCreateFieldInputToFlatFieldMetadatas = async ({
|
||||
createFieldInput,
|
||||
workspaceId,
|
||||
}: FromRelationCreateFieldInputToFlatFieldMetadataArgs): Promise<
|
||||
FieldInputTranspilationResult<FlatFieldMetadata<RelationFieldMetadataType>[]>
|
||||
FieldInputTranspilationResult<FlatFieldMetadata<FieldMetadataType.RELATION>[]>
|
||||
> => {
|
||||
const rawCreationPayload = createFieldInput.relationCreationPayload;
|
||||
|
||||
@@ -54,23 +53,22 @@ export const fromRelationCreateFieldInputToFlatFieldMetadatas = async ({
|
||||
const { relationCreationPayload, targetFlatObjectMetadata } =
|
||||
relationValidationResult.result;
|
||||
|
||||
const flatFieldMetadatas =
|
||||
generateRelationOrMorphRelationFlatFieldMetadataPair({
|
||||
createFieldInput: {
|
||||
...createFieldInput,
|
||||
relationCreationPayload,
|
||||
},
|
||||
sourceFlatObjectMetadataJoinColumnName:
|
||||
computeRelationFieldJoinColumnName({
|
||||
name: createFieldInput.name,
|
||||
}),
|
||||
sourceFlatObjectMetadata,
|
||||
targetFlatObjectMetadata,
|
||||
workspaceId,
|
||||
});
|
||||
const flatFieldMetadatas = generateMorphOrRelationFlatFieldMetadataPair({
|
||||
createFieldInput: {
|
||||
...createFieldInput,
|
||||
relationCreationPayload,
|
||||
},
|
||||
sourceFlatObjectMetadataJoinColumnName: computeRelationFieldJoinColumnName({
|
||||
name: createFieldInput.name,
|
||||
}),
|
||||
sourceFlatObjectMetadata,
|
||||
targetFlatObjectMetadata,
|
||||
workspaceId,
|
||||
});
|
||||
|
||||
return {
|
||||
status: 'success',
|
||||
result: flatFieldMetadatas,
|
||||
result:
|
||||
flatFieldMetadatas as FlatFieldMetadata<FieldMetadataType.RELATION>[],
|
||||
};
|
||||
};
|
||||
|
||||
+7
-7
@@ -2,7 +2,7 @@ import { FieldMetadataType, RelationType } from 'twenty-shared/types';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input';
|
||||
import { type RelationFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/relation-field-metadata-type.type';
|
||||
import { type MorphOrRelationFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/morph-or-relation-field-metadata-type.type';
|
||||
import { computeRelationFieldJoinColumnName } from 'src/engine/metadata-modules/field-metadata/utils/compute-relation-field-join-column-name.util';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { getDefaultFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/get-default-flat-field-metadata-from-create-field-input.util';
|
||||
@@ -31,23 +31,23 @@ const computeFieldMetadataRelationSettingsForRelationType = ({
|
||||
};
|
||||
};
|
||||
|
||||
type GenerateRelationOrMorphRelationFlatFieldMetadataPairArgs = {
|
||||
type GenerateMorphOrRelationFlatFieldMetadataPairArgs = {
|
||||
targetFlatObjectMetadata: FlatObjectMetadata;
|
||||
sourceFlatObjectMetadata: FlatObjectMetadata;
|
||||
sourceFlatObjectMetadataJoinColumnName: string;
|
||||
createFieldInput: Omit<CreateFieldInput, 'workspaceId'> &
|
||||
Required<
|
||||
Pick<CreateFieldInput, 'relationCreationPayload' | 'type' | 'name'>
|
||||
> & { type: RelationFieldMetadataType };
|
||||
> & { type: MorphOrRelationFieldMetadataType };
|
||||
workspaceId: string;
|
||||
};
|
||||
export const generateRelationOrMorphRelationFlatFieldMetadataPair = ({
|
||||
export const generateMorphOrRelationFlatFieldMetadataPair = ({
|
||||
createFieldInput,
|
||||
sourceFlatObjectMetadata,
|
||||
targetFlatObjectMetadata,
|
||||
workspaceId,
|
||||
sourceFlatObjectMetadataJoinColumnName,
|
||||
}: GenerateRelationOrMorphRelationFlatFieldMetadataPairArgs): FlatFieldMetadata<RelationFieldMetadataType>[] => {
|
||||
}: GenerateMorphOrRelationFlatFieldMetadataPairArgs): FlatFieldMetadata<MorphOrRelationFieldMetadataType>[] => {
|
||||
const { relationCreationPayload } = createFieldInput;
|
||||
|
||||
const sourceFlatFieldMetadataSettings =
|
||||
@@ -58,7 +58,7 @@ export const generateRelationOrMorphRelationFlatFieldMetadataPair = ({
|
||||
const targetRelationTargetFieldMetadataId = v4();
|
||||
const sourceRelationTargetFieldMetadataId = v4();
|
||||
const sourceFlatFieldMetadata: Omit<
|
||||
FlatFieldMetadata<RelationFieldMetadataType>,
|
||||
FlatFieldMetadata<MorphOrRelationFieldMetadataType>,
|
||||
'flatRelationTargetFieldMetadata'
|
||||
> = {
|
||||
...getDefaultFlatFieldMetadata({
|
||||
@@ -120,5 +120,5 @@ export const generateRelationOrMorphRelationFlatFieldMetadataPair = ({
|
||||
flatRelationTargetFieldMetadata: targetFlatFieldMetadata,
|
||||
},
|
||||
targetFlatFieldMetadata,
|
||||
] satisfies FlatFieldMetadata<RelationFieldMetadataType>[];
|
||||
] satisfies FlatFieldMetadata<MorphOrRelationFieldMetadataType>[];
|
||||
};
|
||||
+6
-6
@@ -1,13 +1,13 @@
|
||||
import {
|
||||
RELATION_FIELD_TYPES,
|
||||
type RelationFieldMetadataType,
|
||||
} from 'src/engine/metadata-modules/field-metadata/types/relation-field-metadata-type.type';
|
||||
MORPH_OR_RELATION_FIELD_TYPES,
|
||||
type MorphOrRelationFieldMetadataType,
|
||||
} from 'src/engine/metadata-modules/field-metadata/types/morph-or-relation-field-metadata-type.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { isFlatFieldMetadataEntityOfTypes } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-flat-field-metadata-of-types.util';
|
||||
|
||||
export const isRelationFlatFieldMetadata = (
|
||||
export const isMorphOrRelationFlatFieldMetadata = (
|
||||
flatFieldMetadata: FlatFieldMetadata,
|
||||
): flatFieldMetadata is FlatFieldMetadata<RelationFieldMetadataType> =>
|
||||
): flatFieldMetadata is FlatFieldMetadata<MorphOrRelationFieldMetadataType> =>
|
||||
isFlatFieldMetadataEntityOfTypes(flatFieldMetadata, [
|
||||
...RELATION_FIELD_TYPES,
|
||||
...MORPH_OR_RELATION_FIELD_TYPES,
|
||||
]);
|
||||
Reference in New Issue
Block a user