diff --git a/src/space-model/services/space-model-product-allocation.service.ts b/src/space-model/services/space-model-product-allocation.service.ts index 7c9736e..aa2c3da 100644 --- a/src/space-model/services/space-model-product-allocation.service.ts +++ b/src/space-model/services/space-model-product-allocation.service.ts @@ -14,7 +14,6 @@ import { ModifyAction } from '@app/common/constants/modify-action.enum'; import { NewTagEntity } from '@app/common/modules/tag'; import { ProductEntity } from '@app/common/modules/product/entities'; import { SpaceRepository } from '@app/common/modules/space'; -import { SpaceEntity } from '@app/common/modules/space/entities/space.entity'; import { ProjectEntity } from '@app/common/modules/project/entities'; @Injectable() @@ -31,7 +30,6 @@ export class SpaceModelProductAllocationService { tags: ProcessTagDto[], queryRunner?: QueryRunner, modifySubspaceModels?: ModifySubspaceModelDto[], - spaces?: SpaceEntity[], ): Promise { try { if (!tags.length) return []; @@ -133,7 +131,6 @@ export class SpaceModelProductAllocationService { spaceModel: SpaceModelEntity, queryRunner: QueryRunner, modifySubspaceModels?: ModifySubspaceModelDto[], - spaces?: SpaceEntity[], ): Promise { try { const addDtos = dtos.filter((dto) => dto.action === ModifyAction.ADD); @@ -184,15 +181,8 @@ export class SpaceModelProductAllocationService { spaceModel, queryRunner, modifySubspaceModels, - spaces, - ), - this.processDeleteActions( - filteredDtos, - queryRunner, - spaceModel, - project, - spaces, ), + this.processDeleteActions(filteredDtos, queryRunner, spaceModel), ]); } catch (error) { throw this.handleError(error, 'Error while updating product allocations'); @@ -205,7 +195,6 @@ export class SpaceModelProductAllocationService { spaceModel: SpaceModelEntity, queryRunner: QueryRunner, modifySubspaceModels?: ModifySubspaceModelDto[], - spaces?: SpaceEntity[], ): Promise { const addDtos: ProcessTagDto[] = dtos .filter((dto) => dto.action === ModifyAction.ADD) @@ -222,7 +211,6 @@ export class SpaceModelProductAllocationService { addDtos, queryRunner, modifySubspaceModels, - spaces, ); } } @@ -304,8 +292,6 @@ export class SpaceModelProductAllocationService { dtos: ModifyTagModelDto[], queryRunner: QueryRunner, spaceModel: SpaceModelEntity, - project: ProjectEntity, - spaces?: SpaceEntity[], ): Promise { try { if (!dtos || dtos.length === 0) { diff --git a/src/space/services/space-product-allocation.service.ts b/src/space/services/space-product-allocation.service.ts index cda09b8..2d54875 100644 --- a/src/space/services/space-product-allocation.service.ts +++ b/src/space/services/space-product-allocation.service.ts @@ -190,6 +190,8 @@ export class SpaceProductAllocationService { queryRunner: QueryRunner, modifySubspace?: ModifySubspaceDto[], ): Promise { + if (!dtos || dtos.length === 0) return; + try { await Promise.all([ this.processAddActions( @@ -343,10 +345,7 @@ export class SpaceProductAllocationService { space: SpaceEntity, ): Promise { try { - if (!dtos || dtos.length === 0) { - throw new Error('No DTOs provided for deletion.'); - } - + if (!dtos || dtos.length === 0) return; const tagUuidsToDelete = dtos .filter((dto) => dto.action === ModifyAction.DELETE && dto.tagUuid) .map((dto) => dto.tagUuid); diff --git a/src/space/services/space-validation.service.ts b/src/space/services/space-validation.service.ts index 26e74f9..f8db191 100644 --- a/src/space/services/space-validation.service.ts +++ b/src/space/services/space-validation.service.ts @@ -133,6 +133,7 @@ export class ValidationService { 'subspaces.productAllocations.product', 'subspaces.tags', 'subspaces.devices', + 'spaceModel', ], }); diff --git a/src/space/services/space.service.ts b/src/space/services/space.service.ts index 505f00f..202b935 100644 --- a/src/space/services/space.service.ts +++ b/src/space/services/space.service.ts @@ -449,6 +449,11 @@ export class SpaceService { ); } + if (space.spaceModel && !updateSpaceDto.spaceModelUuid) { + space.spaceModel = null; + await this.unlinkSpaceFromModel(space, queryRunner); + } + this.updateSpaceProperties(space, updateSpaceDto); if (updateSpaceDto.spaceModelUuid) { @@ -535,15 +540,6 @@ export class SpaceService { queryRunner: QueryRunner, ): Promise { try { - await queryRunner.manager.update( - this.spaceRepository.target, - { uuid: space.uuid }, - { - spaceModel: null, - }, - ); - - // Unlink subspaces and tags if they exist if (space.subspaces || space.tags) { if (space.tags) { await this.spaceProductAllocationService.unlinkModels(