fix the issue in unliking

This commit is contained in:
hannathkadher
2025-03-11 15:45:21 +04:00
parent f9f9592603
commit 7fae1bf407
4 changed files with 10 additions and 28 deletions

View File

@ -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<SpaceModelProductAllocationEntity[]> {
try {
if (!tags.length) return [];
@ -133,7 +131,6 @@ export class SpaceModelProductAllocationService {
spaceModel: SpaceModelEntity,
queryRunner: QueryRunner,
modifySubspaceModels?: ModifySubspaceModelDto[],
spaces?: SpaceEntity[],
): Promise<void> {
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<void> {
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<SpaceModelProductAllocationEntity[]> {
try {
if (!dtos || dtos.length === 0) {

View File

@ -190,6 +190,8 @@ export class SpaceProductAllocationService {
queryRunner: QueryRunner,
modifySubspace?: ModifySubspaceDto[],
): Promise<void> {
if (!dtos || dtos.length === 0) return;
try {
await Promise.all([
this.processAddActions(
@ -343,10 +345,7 @@ export class SpaceProductAllocationService {
space: SpaceEntity,
): Promise<SpaceProductAllocationEntity[]> {
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);

View File

@ -133,6 +133,7 @@ export class ValidationService {
'subspaces.productAllocations.product',
'subspaces.tags',
'subspaces.devices',
'spaceModel',
],
});

View File

@ -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<void> {
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(