From f4205c39b3d1cbdad509e2b1baa4cdf4f088c44f Mon Sep 17 00:00:00 2001 From: faris Aljohari <83524184+farisaljohari@users.noreply.github.com> Date: Tue, 25 Jun 2024 00:38:46 +0300 Subject: [PATCH] Add method to get device by Tuya UUID and update getDevicesInGetawayTuya method --- src/device/services/device.service.ts | 31 ++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/device/services/device.service.ts b/src/device/services/device.service.ts index c3da047..ef45960 100644 --- a/src/device/services/device.service.ts +++ b/src/device/services/device.service.ts @@ -53,6 +53,14 @@ export class DeviceService { ...(withProductDevice && { relations: ['productDevice'] }), }); } + async getDeviceByDeviceTuyaUuid(deviceTuyaUuid: string) { + return await this.deviceRepository.findOne({ + where: { + deviceTuyaUuid, + }, + relations: ['productDevice'], + }); + } async addDeviceUser(addDeviceDto: AddDeviceDto) { try { const device = await this.getDeviceDetailsByDeviceIdTuya( @@ -434,19 +442,32 @@ export class DeviceService { deviceDetails.deviceTuyaUuid, ); + const devices = await Promise.all( + response.map(async (device: any) => { + const deviceDetails = await this.getDeviceByDeviceTuyaUuid(device.id); + if (deviceDetails.deviceTuyaUuid) { + return { + ...device, + uuid: deviceDetails.uuid, + productUuid: deviceDetails.productDevice.uuid, + productType: deviceDetails.productDevice.prodType, + }; + } + return null; + }), + ); + return { uuid: deviceDetails.uuid, productUuid: deviceDetails.productDevice.uuid, productType: deviceDetails.productDevice.prodType, - device: response, + devices: devices.filter((device) => device !== null), }; } catch (error) { - throw new HttpException( - error.message || 'Device Not Found', - HttpStatus.NOT_FOUND, - ); + throw new HttpException('Device Not Found', HttpStatus.NOT_FOUND); } } + async getDevicesInGetawayTuya( deviceId: string, ): Promise {