Deprecate address standard field (#6087)

Closes #5916

---------

Co-authored-by: Weiko <corentin@twenty.com>
This commit is contained in:
Marie
2024-07-10 18:07:18 +02:00
committed by GitHub
parent b14918c4b5
commit 34d13a7b58
27 changed files with 310 additions and 77 deletions

View File

@ -8,11 +8,11 @@ import {
} from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/comparator.interface';
import { ComputedPartialFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface';
import { transformMetadataForComparison } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util';
import {
FieldMetadataEntity,
FieldMetadataType,
} from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { transformMetadataForComparison } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util';
const commonFieldPropertiesToIgnore = [
'id',
@ -28,6 +28,12 @@ const commonFieldPropertiesToIgnore = [
const fieldPropertiesToStringify = ['defaultValue'] as const;
const shouldSkipFieldCreation = (
standardFieldMetadata: ComputedPartialFieldMetadata | undefined,
) => {
return standardFieldMetadata?.isCustom;
};
@Injectable()
export class WorkspaceFieldComparator {
constructor() {}
@ -108,10 +114,6 @@ export class WorkspaceFieldComparator {
const findField = (
field: ComputedPartialFieldMetadata | FieldMetadataEntity,
) => {
if (field.isCustom) {
return field.name === fieldName;
}
return field.standardId === fieldName;
};
// Object shouldn't have thousands of fields, so we can use find here
@ -122,6 +124,9 @@ export class WorkspaceFieldComparator {
switch (difference.type) {
case 'CREATE': {
if (shouldSkipFieldCreation(standardFieldMetadata)) {
break;
}
if (!standardFieldMetadata) {
throw new Error(
`Field ${fieldName} not found in standardObjectMetadata`,

View File

@ -114,7 +114,8 @@ export const COMMENT_STANDARD_FIELD_IDS = {
export const COMPANY_STANDARD_FIELD_IDS = {
name: '20202020-4d99-4e2e-a84c-4a27837b1ece',
domainName: '20202020-0c28-43d8-8ba5-3659924d3489',
address: '20202020-a82a-4ee2-96cc-a18a3259d953',
address_deprecated: '20202020-a82a-4ee2-96cc-a18a3259d953',
address: '20202020-c5ce-4adc-b7b6-9c0979fc55e7',
employees: '20202020-8965-464a-8a75-74bafc152a0b',
linkedinLink: '20202020-ebeb-4beb-b9ad-6848036fb451',
xLink: '20202020-6f64-4fd9-9580-9c1991c7d8c3',

View File

@ -162,7 +162,7 @@ export class StandardFieldFactory {
options: workspaceFieldMetadataArgs.options,
workspaceId: context.workspaceId,
isNullable: workspaceFieldMetadataArgs.isNullable,
isCustom: false,
isCustom: workspaceFieldMetadataArgs.isDeprecated ? true : false,
isSystem:
workspaceEntityMetadataArgs?.isSystem ||
workspaceFieldMetadataArgs.isSystem,

View File

@ -125,16 +125,6 @@ export class WorkspaceMetadataUpdaterService {
updatedFieldMetadataCollection: FieldMetadataUpdate[];
}> {
const fieldMetadataRepository = manager.getRepository(FieldMetadataEntity);
/**
* Create field metadata
*/
const createdFieldMetadataCollection = await fieldMetadataRepository.save(
storage.fieldMetadataCreateCollection.map((field) =>
this.prepareFieldMetadataForCreation(field),
) as DeepPartial<FieldMetadataEntity>[],
);
/**
* Update field metadata
*/
@ -145,6 +135,15 @@ export class WorkspaceMetadataUpdaterService {
'workspaceId',
]);
/**
* Create field metadata
*/
const createdFieldMetadataCollection = await fieldMetadataRepository.save(
storage.fieldMetadataCreateCollection.map((field) =>
this.prepareFieldMetadataForCreation(field),
) as DeepPartial<FieldMetadataEntity>[],
);
/**
* Delete field metadata
*/