From c7a698629231ebae69b75d5d9479ed3bb4b5a9aa Mon Sep 17 00:00:00 2001 From: faris Aljohari <83524184+farisaljohari@users.noreply.github.com> Date: Sat, 16 Nov 2024 23:18:20 -0600 Subject: [PATCH] finished get mac address api --- src/device/interfaces/get.device.interface.ts | 6 +++++ src/device/services/device.service.ts | 22 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/device/interfaces/get.device.interface.ts b/src/device/interfaces/get.device.interface.ts index d003d2d..3215364 100644 --- a/src/device/interfaces/get.device.interface.ts +++ b/src/device/interfaces/get.device.interface.ts @@ -90,3 +90,9 @@ export interface GetPowerClampFunctionsStatusInterface { success: boolean; msg: string; } +export interface GetMacAddressInterface { + uuid: string; + mac: string; + sn: string; + id: string; +} diff --git a/src/device/services/device.service.ts b/src/device/services/device.service.ts index a402973..81ae501 100644 --- a/src/device/services/device.service.ts +++ b/src/device/services/device.service.ts @@ -20,6 +20,7 @@ import { GetDeviceDetailsFunctionsInterface, GetDeviceDetailsFunctionsStatusInterface, GetDeviceDetailsInterface, + GetMacAddressInterface, GetPowerClampFunctionsStatusInterface, controlDeviceInterface, getDeviceLogsInterface, @@ -535,6 +536,9 @@ export class DeviceService { const response = await this.getDeviceDetailsByDeviceIdTuya( deviceDetails.deviceTuyaUuid, ); + const macAddress = await this.getMacAddressByDeviceIdTuya( + deviceDetails.deviceTuyaUuid, + ); return { ...response, @@ -542,6 +546,7 @@ export class DeviceService { productUuid: deviceDetails.productDevice.uuid, productType: deviceDetails.productDevice.prodType, permissionType: userDevicePermission, + macAddress: macAddress.mac, }; } catch (error) { throw new HttpException( @@ -582,7 +587,24 @@ export class DeviceService { ); } } + async getMacAddressByDeviceIdTuya( + deviceId: string, + ): Promise { + try { + const path = `/v1.0/devices/factory-infos?device_ids=${deviceId}`; + const response = await this.tuya.request({ + method: 'GET', + path, + }); + return response.result[0]; + } catch (error) { + throw new HttpException( + 'Error fetching mac address device from Tuya', + HttpStatus.INTERNAL_SERVER_ERROR, + ); + } + } async getDeviceInstructionByDeviceId( deviceUuid: string, ): Promise {