Merge pull request #51 from SyncrowIOT/return-device-uuid-gateway-devices

Add method to get device by Tuya UUID and update getDevicesInGetawayT…
This commit is contained in:
faris Aljohari
2024-06-25 00:40:30 +03:00
committed by GitHub

View File

@ -53,6 +53,14 @@ export class DeviceService {
...(withProductDevice && { relations: ['productDevice'] }), ...(withProductDevice && { relations: ['productDevice'] }),
}); });
} }
async getDeviceByDeviceTuyaUuid(deviceTuyaUuid: string) {
return await this.deviceRepository.findOne({
where: {
deviceTuyaUuid,
},
relations: ['productDevice'],
});
}
async addDeviceUser(addDeviceDto: AddDeviceDto) { async addDeviceUser(addDeviceDto: AddDeviceDto) {
try { try {
const device = await this.getDeviceDetailsByDeviceIdTuya( const device = await this.getDeviceDetailsByDeviceIdTuya(
@ -434,19 +442,32 @@ export class DeviceService {
deviceDetails.deviceTuyaUuid, 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 { return {
uuid: deviceDetails.uuid, uuid: deviceDetails.uuid,
productUuid: deviceDetails.productDevice.uuid, productUuid: deviceDetails.productDevice.uuid,
productType: deviceDetails.productDevice.prodType, productType: deviceDetails.productDevice.prodType,
device: response, devices: devices.filter((device) => device !== null),
}; };
} catch (error) { } catch (error) {
throw new HttpException( throw new HttpException('Device Not Found', HttpStatus.NOT_FOUND);
error.message || 'Device Not Found',
HttpStatus.NOT_FOUND,
);
} }
} }
async getDevicesInGetawayTuya( async getDevicesInGetawayTuya(
deviceId: string, deviceId: string,
): Promise<GetDeviceDetailsInterface[]> { ): Promise<GetDeviceDetailsInterface[]> {