finished skip any error from tuya device

This commit is contained in:
faris Aljohari
2024-11-24 17:47:47 -06:00
parent 67ed5cdca1
commit 99bacbe202
3 changed files with 42 additions and 20 deletions

View File

@ -172,31 +172,40 @@ export class DeviceService {
'permission.permissionType',
],
});
const devicesData = await Promise.all(
devices.map(async (device) => {
const safeFetchDeviceDetails = async (device: any) => {
try {
const tuyaDetails = await this.getDeviceDetailsByDeviceIdTuya(
device.deviceTuyaUuid,
);
return {
haveRoom: device.spaceDevice ? true : false,
haveRoom: !!device.spaceDevice,
productUuid: device.productDevice.uuid,
productType: device.productDevice.prodType,
permissionType: device.permission[0].permissionType.type,
...(await this.getDeviceDetailsByDeviceIdTuya(
device.deviceTuyaUuid,
)),
...tuyaDetails,
uuid: device.uuid,
} as GetDeviceDetailsInterface;
}),
} catch (error) {
console.warn(
`Skipping device with deviceTuyaUuid: ${device.deviceTuyaUuid} due to error.`,
);
return null;
}
};
const devicesData = await Promise.all(
devices.map(safeFetchDeviceDetails),
);
return devicesData;
return devicesData.filter(Boolean); // Remove null or undefined entries
} catch (error) {
// Handle the error here
console.error('Error fetching devices by user:', error);
throw new HttpException(
'User does not have any devices',
HttpStatus.NOT_FOUND,
);
}
}
async getDevicesBySpaceId(
getDeviceBySpaceUuidDto: GetDeviceBySpaceUuidDto,
userUuid: string,