FieldMetadataServiceV2.deleteOneField (#13744)

# Introduction
- Migrated the `deleteOneField` handler to new workspace migration v2
style
- Refactored the build to expect `flatObjectMetadataMaps` that he
instantly translate at the be beginning
Commented `ObjectMetadataServiceV2` as it's still not implemented
neither used
This commit is contained in:
Paul Rastoin
2025-08-08 15:11:47 +02:00
committed by GitHub
parent 33f8885ef4
commit 28e5186f23
22 changed files with 1751 additions and 569 deletions
@@ -0,0 +1,6 @@
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
export const EMPTY_FLAT_OBJECT_METADATA_MAPS = {
byId: {},
idByNameSingular: {},
} as const satisfies FlatObjectMetadataMaps;
@@ -1,5 +1,6 @@
import { isDefined } from 'twenty-shared/utils';
import { EMPTY_FLAT_OBJECT_METADATA_MAPS } from 'src/engine/metadata-modules/flat-object-metadata-maps/constant/empty-flat-object-metadata-maps.constant';
import {
FlatObjectMetadataMapsException,
FlatObjectMetadataMapsExceptionCode,
@@ -17,11 +18,6 @@ export const extractFlatObjectMetadataMapsOutOfFlatObjectMetadataMapsOrThrow =
flatObjectMetadataMaps: sourceFlatObjectMetadataMaps,
objectMetadataIds,
}: ExtractFlatObjectMetadataMapsOutOfFlatObjectMetadataMapsOrThrowArgs): FlatObjectMetadataMaps => {
const emptyFlatObjectMetadataMaps: FlatObjectMetadataMaps = {
byId: {},
idByNameSingular: {},
};
return objectMetadataIds.reduce(
(flatObjectMetadataMaps, objectMetadataId) => {
const flatObjectMetadataWithFlatFieldMaps =
@@ -41,6 +37,6 @@ export const extractFlatObjectMetadataMapsOutOfFlatObjectMetadataMapsOrThrow =
},
);
},
emptyFlatObjectMetadataMaps,
EMPTY_FLAT_OBJECT_METADATA_MAPS,
);
};
@@ -0,0 +1,32 @@
import { isDefined } from 'twenty-shared/utils';
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
export type FindFlatFieldMetadataInFlatObjectMetadataMapsWithOnlyFieldIdArgs = {
fieldMetadataId: string;
flatObjectMetadataMaps: FlatObjectMetadataMaps;
};
// TODO add tests
export const findFlatFieldMetadataInFlatObjectMetadataMapsWithOnlyFieldId = ({
flatObjectMetadataMaps,
fieldMetadataId,
}: FindFlatFieldMetadataInFlatObjectMetadataMapsWithOnlyFieldIdArgs):
| FlatFieldMetadata
| undefined => {
const flatObjectMetadataWithFlatFieldMapsArray = Object.values(
flatObjectMetadataMaps.byId,
).filter(isDefined);
const matchingFlatObjectMetadataWithFlatFieldMaps =
flatObjectMetadataWithFlatFieldMapsArray.find(
(flatObjectMetadataWithFlatFieldMaps) =>
isDefined(
flatObjectMetadataWithFlatFieldMaps.fieldsById[fieldMetadataId],
),
);
return matchingFlatObjectMetadataWithFlatFieldMaps?.fieldsById[
fieldMetadataId
];
};