mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-10 15:17:41 +00:00
fix: add validation for missing properties in device status logs
This commit is contained in:
@ -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,
|
||||||
|
@ -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,
|
||||||
|
Reference in New Issue
Block a user