From 196abad8babd590bb9dcf89c53be6f4437d3d3b7 Mon Sep 17 00:00:00 2001 From: hannathkadher Date: Wed, 18 Dec 2024 10:13:42 +0400 Subject: [PATCH 1/2] fixed issue in getting device details from space --- src/space/services/space-device.service.ts | 14 ++++++++------ src/space/services/space.service.ts | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/space/services/space-device.service.ts b/src/space/services/space-device.service.ts index 0a262a1..44880c2 100644 --- a/src/space/services/space-device.service.ts +++ b/src/space/services/space-device.service.ts @@ -1,22 +1,17 @@ import { TuyaService } from '@app/common/integrations/tuya/services/tuya.service'; -import { CommunityRepository } from '@app/common/modules/community/repositories'; -import { SpaceRepository } from '@app/common/modules/space/repositories'; + import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; import { GetDeviceDetailsInterface } from 'src/device/interfaces/get.device.interface'; import { GetSpaceParam } from '../dtos'; import { BaseResponseDto } from '@app/common/dto/base.response.dto'; import { SuccessResponseDto } from '@app/common/dto/success.response.dto'; import { convertKeysToCamelCase } from '@app/common/helper/camelCaseConverter'; -import { ProductRepository } from '@app/common/modules/product/repositories'; import { SpaceService } from './space.service'; @Injectable() export class SpaceDeviceService { constructor( - private readonly spaceRepository: SpaceRepository, private readonly tuyaService: TuyaService, - private readonly productRepository: ProductRepository, - private readonly communityRepository: CommunityRepository, private readonly spaceService: SpaceService, ) {} @@ -29,6 +24,13 @@ export class SpaceDeviceService { projectUuid, ); + if (!Array.isArray(space.devices)) { + throw new HttpException( + 'The space does not contain any devices or the devices property is invalid.', + HttpStatus.BAD_REQUEST, + ); + } + const safeFetch = async (device: any) => { try { const tuyaDetails = await this.getDeviceDetailsByDeviceIdTuya( diff --git a/src/space/services/space.service.ts b/src/space/services/space.service.ts index 8189f8c..b40723f 100644 --- a/src/space/services/space.service.ts +++ b/src/space/services/space.service.ts @@ -325,6 +325,7 @@ export class SpaceService { private async validateSpace(spaceUuid: string) { const space = await this.spaceRepository.findOne({ where: { uuid: spaceUuid }, + relations: ['devices'], }); if (!space) this.throwNotFound('Space', spaceUuid); return space; From 422e3b1581ab64dd1c06c000ecd1cfc4e170c1e8 Mon Sep 17 00:00:00 2001 From: hannathkadher Date: Wed, 18 Dec 2024 10:21:50 +0400 Subject: [PATCH 2/2] added log --- src/space/services/space-device.service.ts | 3 +-- src/space/services/space.service.ts | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/space/services/space-device.service.ts b/src/space/services/space-device.service.ts index 44880c2..7dff75a 100644 --- a/src/space/services/space-device.service.ts +++ b/src/space/services/space-device.service.ts @@ -30,7 +30,6 @@ export class SpaceDeviceService { HttpStatus.BAD_REQUEST, ); } - const safeFetch = async (device: any) => { try { const tuyaDetails = await this.getDeviceDetailsByDeviceIdTuya( @@ -48,7 +47,7 @@ export class SpaceDeviceService { }; } catch (error) { console.warn( - `Skipping device with deviceTuyaUuid: ${device.deviceTuyaUuid} due to error.`, + `Skipping device with deviceTuyaUuid: ${device.deviceTuyaUuid} due to error. ${error}`, ); return null; } diff --git a/src/space/services/space.service.ts b/src/space/services/space.service.ts index b40723f..0061226 100644 --- a/src/space/services/space.service.ts +++ b/src/space/services/space.service.ts @@ -325,7 +325,7 @@ export class SpaceService { private async validateSpace(spaceUuid: string) { const space = await this.spaceRepository.findOne({ where: { uuid: spaceUuid }, - relations: ['devices'], + relations: ['devices', 'devices.productDevice'], }); if (!space) this.throwNotFound('Space', spaceUuid); return space;