Fix labelIdentifierFieldMetadata creation for custom objects (#8729)
This commit is contained in:
@ -12,4 +12,5 @@ export enum ObjectMetadataExceptionCode {
|
|||||||
INVALID_OBJECT_INPUT = 'INVALID_OBJECT_INPUT',
|
INVALID_OBJECT_INPUT = 'INVALID_OBJECT_INPUT',
|
||||||
OBJECT_MUTATION_NOT_ALLOWED = 'OBJECT_MUTATION_NOT_ALLOWED',
|
OBJECT_MUTATION_NOT_ALLOWED = 'OBJECT_MUTATION_NOT_ALLOWED',
|
||||||
OBJECT_ALREADY_EXISTS = 'OBJECT_ALREADY_EXISTS',
|
OBJECT_ALREADY_EXISTS = 'OBJECT_ALREADY_EXISTS',
|
||||||
|
MISSING_CUSTOM_OBJECT_DEFAULT_LABEL_IDENTIFIER_FIELD = 'MISSING_CUSTOM_OBJECT_DEFAULT_LABEL_IDENTIFIER_FIELD',
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,6 +31,7 @@ import { SearchService } from 'src/engine/metadata-modules/search/search.service
|
|||||||
import { WorkspaceMetadataVersionService } from 'src/engine/metadata-modules/workspace-metadata-version/services/workspace-metadata-version.service';
|
import { WorkspaceMetadataVersionService } from 'src/engine/metadata-modules/workspace-metadata-version/services/workspace-metadata-version.service';
|
||||||
import { computeObjectTargetTable } from 'src/engine/utils/compute-object-target-table.util';
|
import { computeObjectTargetTable } from 'src/engine/utils/compute-object-target-table.util';
|
||||||
import { WorkspaceMigrationRunnerService } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service';
|
import { WorkspaceMigrationRunnerService } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service';
|
||||||
|
import { CUSTOM_OBJECT_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||||
import { isSearchableFieldType } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/is-searchable-field.util';
|
import { isSearchableFieldType } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/is-searchable-field.util';
|
||||||
|
|
||||||
import { ObjectMetadataEntity } from './object-metadata.entity';
|
import { ObjectMetadataEntity } from './object-metadata.entity';
|
||||||
@ -118,6 +119,21 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
|
|||||||
: buildDefaultFieldsForCustomObject(objectMetadataInput.workspaceId),
|
: buildDefaultFieldsForCustomObject(objectMetadataInput.workspaceId),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const labelIdentifierFieldMetadata = createdObjectMetadata.fields.find(
|
||||||
|
(field) => field.standardId === CUSTOM_OBJECT_STANDARD_FIELD_IDS.name,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!labelIdentifierFieldMetadata) {
|
||||||
|
throw new ObjectMetadataException(
|
||||||
|
'Label identifier field metadata not created properly',
|
||||||
|
ObjectMetadataExceptionCode.MISSING_CUSTOM_OBJECT_DEFAULT_LABEL_IDENTIFIER_FIELD,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
await this.objectMetadataRepository.update(createdObjectMetadata.id, {
|
||||||
|
labelIdentifierFieldMetadataId: labelIdentifierFieldMetadata.id,
|
||||||
|
});
|
||||||
|
|
||||||
if (objectMetadataInput.isRemote) {
|
if (objectMetadataInput.isRemote) {
|
||||||
await this.remoteTableRelationsService.createForeignKeysMetadataAndMigrations(
|
await this.remoteTableRelationsService.createForeignKeysMetadataAndMigrations(
|
||||||
objectMetadataInput.workspaceId,
|
objectMetadataInput.workspaceId,
|
||||||
|
|||||||
Reference in New Issue
Block a user