Update Name of relation fieldMetadata (#15749)
UpdateOne of a Relation that involves a CustomObject, because the nameSingular needs to be updated in the fieldMetadata - nameSingular and namePlural must be provided since they are necessary for morph name computation - label sync should be false Interesting files to look at: - packages/twenty-server/src/engine/metadata-modules/object-metadata/utils/build-default-relation-flat-field-metadatas-for-custom-object.util.ts - UPDATE => packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/rename-related-morph-field-on-object-names-update.util.ts ( also update relation indexes ) needs v2 refactor to handle field relation name update - CREATE => packages/twenty-server/src/engine/metadata-modules/object-metadata/utils/build-default-relation-flat-field-metadatas-for-custom-object.util.ts ( handle morph instead of previous classic relation ) - DELETE => DONE Edit: closes https://github.com/twentyhq/core-team-issues/issues/1897 --------- Co-authored-by: prastoin <paul@twenty.com>
This commit is contained in:
+2
@@ -108,6 +108,7 @@ export class FlatFieldMetadataValidatorService {
|
||||
});
|
||||
}
|
||||
|
||||
// Should be moved in relation field validator
|
||||
if (isMorphOrRelationFlatFieldMetadata(flatFieldMetadataToValidate)) {
|
||||
const relationNonEditableUpdatedProperties = updates.flatMap(
|
||||
({ property }) =>
|
||||
@@ -126,6 +127,7 @@ export class FlatFieldMetadataValidatorService {
|
||||
});
|
||||
}
|
||||
}
|
||||
///
|
||||
|
||||
if (updates.some((update) => update.property === 'name')) {
|
||||
validationResult.errors.push(
|
||||
|
||||
+17
-24
@@ -211,19 +211,26 @@ export class UpdateFieldActionHandlerService extends WorkspaceMigrationRunnerAct
|
||||
optimisticFlatFieldMetadata.options = update.to ?? [];
|
||||
}
|
||||
if (
|
||||
isMorphOrRelationFlatFieldMetadata(optimisticFlatFieldMetadata) &&
|
||||
update.property === 'settings'
|
||||
isPropertyUpdate(update, 'settings') &&
|
||||
isDefined(update.from?.joinColumnName) &&
|
||||
isDefined(update.to?.joinColumnName) &&
|
||||
update.from.joinColumnName !== update.to.joinColumnName &&
|
||||
isMorphOrRelationFlatFieldMetadata(optimisticFlatFieldMetadata)
|
||||
) {
|
||||
await this.handleMorphOrRelationSettingsUpdate({
|
||||
flatFieldMetadata: optimisticFlatFieldMetadata,
|
||||
await this.workspaceSchemaManagerService.columnManager.renameColumn({
|
||||
queryRunner,
|
||||
schemaName,
|
||||
tableName,
|
||||
update: update as PropertyUpdate<
|
||||
FlatFieldMetadata<MorphOrRelationFieldMetadataType>,
|
||||
'settings'
|
||||
>,
|
||||
oldColumnName: update.from.joinColumnName,
|
||||
newColumnName: update.to.joinColumnName,
|
||||
});
|
||||
optimisticFlatFieldMetadata = {
|
||||
...optimisticFlatFieldMetadata,
|
||||
settings: {
|
||||
...optimisticFlatFieldMetadata.settings,
|
||||
joinColumnName: update.to.joinColumnName,
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -263,20 +270,6 @@ export class UpdateFieldActionHandlerService extends WorkspaceMigrationRunnerAct
|
||||
newColumnName: toCompositeColumnName,
|
||||
});
|
||||
}
|
||||
} else {
|
||||
if (isMorphOrRelationFlatFieldMetadata(flatFieldMetadata)) {
|
||||
throw new WorkspaceMigrationRunnerException(
|
||||
'Relation field metadata name update is not supported yet',
|
||||
WorkspaceMigrationRunnerExceptionCode.NOT_SUPPORTED,
|
||||
);
|
||||
}
|
||||
await this.workspaceSchemaManagerService.columnManager.renameColumn({
|
||||
queryRunner,
|
||||
schemaName,
|
||||
tableName,
|
||||
oldColumnName: update.from,
|
||||
newColumnName: update.to,
|
||||
});
|
||||
}
|
||||
|
||||
const enumOperations = collectEnumOperationsForField({
|
||||
@@ -440,8 +433,8 @@ export class UpdateFieldActionHandlerService extends WorkspaceMigrationRunnerAct
|
||||
}
|
||||
|
||||
await this.workspaceSchemaManagerService.columnManager.renameColumn({
|
||||
newColumnName: fromJoinColumnName,
|
||||
oldColumnName: toJoinColumnName,
|
||||
oldColumnName: fromJoinColumnName,
|
||||
newColumnName: toJoinColumnName,
|
||||
queryRunner,
|
||||
schemaName,
|
||||
tableName,
|
||||
|
||||
Reference in New Issue
Block a user