feat: simplification of default-value specification in FieldMetadata (#4592)
* feat: wip refactor default-value * feat: health check to migrate default value * fix: tests * fix: refactor defaultValue to make it more clean * fix: unit tests * fix: front-end default value
This commit is contained in:
@ -2,7 +2,6 @@ import { Injectable, Logger } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceColumnActionOptions } from 'src/engine/metadata-modules/workspace-migration/interfaces/workspace-column-action-options.interface';
|
||||
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
|
||||
import { FieldMetadataDefaultValue } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-default-value.interface';
|
||||
|
||||
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
||||
import {
|
||||
@ -35,8 +34,7 @@ export class BasicColumnActionFactory extends ColumnActionAbstractFactory<BasicF
|
||||
fieldMetadata: FieldMetadataInterface<BasicFieldMetadataType>,
|
||||
options?: WorkspaceColumnActionOptions,
|
||||
): WorkspaceMigrationColumnCreate {
|
||||
const defaultValue =
|
||||
this.getDefaultValue(fieldMetadata.defaultValue) ?? options?.defaultValue;
|
||||
const defaultValue = fieldMetadata.defaultValue ?? options?.defaultValue;
|
||||
const serializedDefaultValue = serializeDefaultValue(defaultValue);
|
||||
|
||||
return {
|
||||
@ -54,8 +52,7 @@ export class BasicColumnActionFactory extends ColumnActionAbstractFactory<BasicF
|
||||
options?: WorkspaceColumnActionOptions,
|
||||
): WorkspaceMigrationColumnAlter {
|
||||
const defaultValue =
|
||||
this.getDefaultValue(alteredFieldMetadata.defaultValue) ??
|
||||
options?.defaultValue;
|
||||
alteredFieldMetadata.defaultValue ?? options?.defaultValue;
|
||||
const serializedDefaultValue = serializeDefaultValue(defaultValue);
|
||||
const currentColumnName = currentFieldMetadata.targetColumnMap.value;
|
||||
const alteredColumnName = alteredFieldMetadata.targetColumnMap.value;
|
||||
@ -75,9 +72,7 @@ export class BasicColumnActionFactory extends ColumnActionAbstractFactory<BasicF
|
||||
columnName: currentColumnName,
|
||||
columnType: fieldMetadataTypeToColumnType(currentFieldMetadata.type),
|
||||
isNullable: currentFieldMetadata.isNullable,
|
||||
defaultValue: serializeDefaultValue(
|
||||
this.getDefaultValue(currentFieldMetadata.defaultValue),
|
||||
),
|
||||
defaultValue: serializeDefaultValue(currentFieldMetadata.defaultValue),
|
||||
},
|
||||
alteredColumnDefinition: {
|
||||
columnName: alteredColumnName,
|
||||
@ -87,19 +82,4 @@ export class BasicColumnActionFactory extends ColumnActionAbstractFactory<BasicF
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
private getDefaultValue(
|
||||
defaultValue:
|
||||
| FieldMetadataDefaultValue<BasicFieldMetadataType>
|
||||
| undefined
|
||||
| null,
|
||||
) {
|
||||
if (!defaultValue) return null;
|
||||
|
||||
if ('type' in defaultValue) {
|
||||
return defaultValue;
|
||||
} else {
|
||||
return defaultValue?.value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,8 +26,7 @@ export class EnumColumnActionFactory extends ColumnActionAbstractFactory<EnumFie
|
||||
fieldMetadata: FieldMetadataInterface<EnumFieldMetadataType>,
|
||||
options: WorkspaceColumnActionOptions,
|
||||
): WorkspaceMigrationColumnCreate {
|
||||
const defaultValue =
|
||||
fieldMetadata.defaultValue?.value ?? options?.defaultValue;
|
||||
const defaultValue = fieldMetadata.defaultValue ?? options?.defaultValue;
|
||||
const serializedDefaultValue = serializeDefaultValue(defaultValue);
|
||||
const enumOptions = fieldMetadata.options
|
||||
? [...fieldMetadata.options.map((option) => option.value)]
|
||||
@ -50,7 +49,7 @@ export class EnumColumnActionFactory extends ColumnActionAbstractFactory<EnumFie
|
||||
options: WorkspaceColumnActionOptions,
|
||||
): WorkspaceMigrationColumnAlter {
|
||||
const defaultValue =
|
||||
alteredFieldMetadata.defaultValue?.value ?? options?.defaultValue;
|
||||
alteredFieldMetadata.defaultValue ?? options?.defaultValue;
|
||||
const serializedDefaultValue = serializeDefaultValue(defaultValue);
|
||||
|
||||
const enumOptions = alteredFieldMetadata.options
|
||||
@ -94,9 +93,7 @@ export class EnumColumnActionFactory extends ColumnActionAbstractFactory<EnumFie
|
||||
: undefined,
|
||||
isArray: currentFieldMetadata.type === FieldMetadataType.MULTI_SELECT,
|
||||
isNullable: currentFieldMetadata.isNullable,
|
||||
defaultValue: serializeDefaultValue(
|
||||
currentFieldMetadata.defaultValue?.value,
|
||||
),
|
||||
defaultValue: serializeDefaultValue(currentFieldMetadata.defaultValue),
|
||||
},
|
||||
alteredColumnDefinition: {
|
||||
columnName: alteredColumnName,
|
||||
|
||||
Reference in New Issue
Block a user