mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-11-26 09:34:54 +00:00
Merge pull request #306 from SyncrowIOT/bugifx/fix-delete-propagation
Bugifx/fix-delete-propagation
This commit is contained in:
@ -40,16 +40,21 @@ export class PropogateUpdateSpaceModelHandler
|
|||||||
|
|
||||||
async execute(command: PropogateUpdateSpaceModelCommand): Promise<void> {
|
async execute(command: PropogateUpdateSpaceModelCommand): Promise<void> {
|
||||||
const { subspaceModels, spaces } = command.param;
|
const { subspaceModels, spaces } = command.param;
|
||||||
|
try {
|
||||||
|
if (!subspaceModels || subspaceModels.length === 0) return;
|
||||||
|
if (!spaces || spaces.length === 0) return;
|
||||||
|
|
||||||
if (!subspaceModels || subspaceModels.length === 0) return;
|
for (const subspaceModel of subspaceModels) {
|
||||||
if (!spaces || spaces.length === 0) return;
|
if (subspaceModel.action === ModifyAction.ADD) {
|
||||||
|
await this.addSubspaceModel(subspaceModel, spaces);
|
||||||
for (const subspaceModel of subspaceModels) {
|
} else if (subspaceModel.action === ModifyAction.DELETE) {
|
||||||
if (subspaceModel.action === ModifyAction.ADD) {
|
await this.deleteSubspaceModel(subspaceModel, spaces);
|
||||||
await this.addSubspaceModel(subspaceModel, spaces);
|
} else if (subspaceModel.action === ModifyAction.UPDATE) {
|
||||||
} else if (subspaceModel.action === ModifyAction.DELETE) {
|
await this.updateSubspaceModel(subspaceModel);
|
||||||
await this.deleteSubspaceModel(subspaceModel, spaces);
|
}
|
||||||
}
|
}
|
||||||
|
} 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(
|
async updateSubspaceModels(
|
||||||
subspaceModels: UpdatedSubspaceModelPayload[],
|
subspaceModels: UpdatedSubspaceModelPayload[],
|
||||||
queryRunner: QueryRunner,
|
queryRunner: QueryRunner,
|
||||||
|
|||||||
@ -36,6 +36,13 @@ export class PropogateDeleteSpaceModelHandler
|
|||||||
|
|
||||||
for (const space of spaces) {
|
for (const space of spaces) {
|
||||||
try {
|
try {
|
||||||
|
await queryRunner.manager.update(
|
||||||
|
this.spaceRepository.target,
|
||||||
|
{ uuid: space.uuid },
|
||||||
|
{
|
||||||
|
spaceModel: null,
|
||||||
|
},
|
||||||
|
);
|
||||||
await this.spaceService.unlinkSpaceFromModel(space, queryRunner);
|
await this.spaceService.unlinkSpaceFromModel(space, queryRunner);
|
||||||
} catch (innerError) {
|
} catch (innerError) {
|
||||||
this.logger.error(
|
this.logger.error(
|
||||||
|
|||||||
Reference in New Issue
Block a user