From 3ee2e66e3989e92e9dacb41e09a8a69ba78d4624 Mon Sep 17 00:00:00 2001 From: hannathkadher Date: Wed, 22 Jan 2025 12:03:53 +0400 Subject: [PATCH] filter disable get space models in get query --- .../services/space-model.service.ts | 40 +++++++++++++------ 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/src/space-model/services/space-model.service.ts b/src/space-model/services/space-model.service.ts index e71d05f..5ef531c 100644 --- a/src/space-model/services/space-model.service.ts +++ b/src/space-model/services/space-model.service.ts @@ -159,8 +159,6 @@ export class SpaceModelService { queryBuilder, ); - console.log(baseResponseDto); - return new PageResponse( baseResponseDto, paginationResponseDto, @@ -344,35 +342,51 @@ export class SpaceModelService { try { await this.validateProject(params.projectUuid); const spaceModel = await this.validateSpaceModel(params.spaceModelUuid); + return new SuccessResponseDto({ message: 'SpaceModel retrieved successfully', data: spaceModel, }); } catch (error) { throw new HttpException( - `Failed to retrieve space model ${error}`, + `Failed to retrieve space model: ${error.message}`, HttpStatus.INTERNAL_SERVER_ERROR, ); } } async validateSpaceModel(uuid: string): Promise { - const spaceModel = await this.spaceModelRepository.findOne({ - where: { - uuid, - disabled: false, - }, - relations: [ + const spaceModel = await this.spaceModelRepository + .createQueryBuilder('spaceModel') + .leftJoinAndSelect( + 'spaceModel.subspaceModels', 'subspaceModels', + 'subspaceModels.disabled = :subspaceDisabled', + { subspaceDisabled: false }, + ) + .leftJoinAndSelect( + 'spaceModel.tags', 'tags', - 'tags.product', + 'tags.disabled = :tagsDisabled', + { tagsDisabled: false }, + ) + .leftJoinAndSelect('tags.product', 'spaceTagproduct') + .leftJoinAndSelect( 'subspaceModels.tags', - 'subspaceModels.tags.product', - ], - }); + 'subspaceModelTags', + 'subspaceModelTags.disabled = :subspaceModelTagsDisabled', + { subspaceModelTagsDisabled: false }, + ) + .leftJoinAndSelect('subspaceModelTags.product', 'subspaceTagproduct') + .where('spaceModel.disabled = :disabled', { disabled: false }) + .where('spaceModel.disabled = :disabled', { disabled: false }) + .andWhere('spaceModel.uuid = :uuid', { uuid }) + .getOne(); + if (!spaceModel) { throw new HttpException('space model not found', HttpStatus.NOT_FOUND); } + return spaceModel; } }