diff --git a/src/space-model/handlers/propate-subspace-handler.ts b/src/space-model/handlers/propate-subspace-handler.ts index d8be419..9b3aad2 100644 --- a/src/space-model/handlers/propate-subspace-handler.ts +++ b/src/space-model/handlers/propate-subspace-handler.ts @@ -40,16 +40,21 @@ export class PropogateUpdateSpaceModelHandler async execute(command: PropogateUpdateSpaceModelCommand): Promise { const { subspaceModels, spaces } = command.param; + try { + if (!subspaceModels || subspaceModels.length === 0) return; + if (!spaces || spaces.length === 0) return; - if (!subspaceModels || subspaceModels.length === 0) return; - if (!spaces || spaces.length === 0) return; - - for (const subspaceModel of subspaceModels) { - if (subspaceModel.action === ModifyAction.ADD) { - await this.addSubspaceModel(subspaceModel, spaces); - } else if (subspaceModel.action === ModifyAction.DELETE) { - await this.deleteSubspaceModel(subspaceModel, spaces); + for (const subspaceModel of subspaceModels) { + if (subspaceModel.action === ModifyAction.ADD) { + await this.addSubspaceModel(subspaceModel, spaces); + } else if (subspaceModel.action === ModifyAction.DELETE) { + await this.deleteSubspaceModel(subspaceModel, spaces); + } else if (subspaceModel.action === ModifyAction.UPDATE) { + await this.updateSubspaceModel(subspaceModel); + } } + } catch (error) { + console.error(`Error processing subspaceModel updates`, error); } } @@ -152,6 +157,15 @@ export class PropogateUpdateSpaceModelHandler } } + async updateSubspaceModel(subspaceModel: ISingleSubspaceModel) { + return this.subspaceRepository.update( + { + subSpaceModel: { uuid: subspaceModel.subspaceModel.uuid }, + disabled: false, + }, + { subspaceName: subspaceModel.subspaceModel.subspaceName }, + ); + } async updateSubspaceModels( subspaceModels: UpdatedSubspaceModelPayload[], queryRunner: QueryRunner, diff --git a/src/space-model/handlers/propogate-space-model-deletion.handler.ts b/src/space-model/handlers/propogate-space-model-deletion.handler.ts index 318635e..1686435 100644 --- a/src/space-model/handlers/propogate-space-model-deletion.handler.ts +++ b/src/space-model/handlers/propogate-space-model-deletion.handler.ts @@ -36,6 +36,13 @@ export class PropogateDeleteSpaceModelHandler for (const space of spaces) { try { + await queryRunner.manager.update( + this.spaceRepository.target, + { uuid: space.uuid }, + { + spaceModel: null, + }, + ); await this.spaceService.unlinkSpaceFromModel(space, queryRunner); } catch (innerError) { this.logger.error(