fix: add validation for missing properties in device status logs

This commit is contained in:
faris Aljohari
2025-06-25 05:20:26 -06:00
parent 68692b7c8b
commit 71f6ccb4db
2 changed files with 15 additions and 1 deletions

View File

@ -95,7 +95,13 @@ export class DeviceStatusFirebaseService {
for (const item of batch) { for (const item of batch) {
const device = deviceMap.get(item.deviceTuyaUuid); const device = deviceMap.get(item.deviceTuyaUuid);
if (!device?.uuid) continue; if (!device?.uuid) continue;
if (!Array.isArray(item.log?.properties)) {
console.warn(
`🚨 Missing properties for device: ${item.deviceTuyaUuid}`,
);
console.log('🔍 Problematic item:', JSON.stringify(item, null, 2));
continue;
}
const logs = item.log.properties.map((property) => const logs = item.log.properties.map((property) =>
this.deviceStatusLogRepository.create({ this.deviceStatusLogRepository.create({
deviceId: device.uuid, deviceId: device.uuid,

View File

@ -107,6 +107,14 @@ export class TuyaWebSocketService {
console.log(`🔁 Processing batch of size: ${batch.length}`); console.log(`🔁 Processing batch of size: ${batch.length}`);
try { try {
batch.forEach((item, index) => {
if (!Array.isArray(item?.logData?.properties)) {
console.warn(
`❌ Item #${index + 1} has invalid or missing 'properties':`,
);
console.log(JSON.stringify(item, null, 2));
}
});
await this.deviceStatusFirebaseService.addBatchDeviceStatusToOurDb( await this.deviceStatusFirebaseService.addBatchDeviceStatusToOurDb(
batch?.map((item) => ({ batch?.map((item) => ({
deviceTuyaUuid: item.devId, deviceTuyaUuid: item.devId,