import { Injectable, Logger } from '@nestjs/common'; import { DeviceStatusFirebaseService } from '@app/common/firebase/devices-status/services/devices-status.service'; @Injectable() export class SosHandlerService { private readonly logger = new Logger(SosHandlerService.name); constructor( private readonly deviceStatusFirebaseService: DeviceStatusFirebaseService, ) {} isSosTriggered(status: any): boolean { return ( Array.isArray(status) && status.some((item) => item.code === 'sos' && item.value === 'sos') ); } async handleSosEvent(devId: string, logData: any): Promise { try { await this.deviceStatusFirebaseService.addDeviceStatusToFirebase({ deviceTuyaUuid: devId, status: [{ code: 'sos', value: true }], log: logData, }); setTimeout(async () => { try { await this.deviceStatusFirebaseService.addDeviceStatusToFirebase({ deviceTuyaUuid: devId, status: [{ code: 'sos', value: false }], log: logData, }); } catch (err) { this.logger.error('Failed to send SOS false value', err); } }, 2000); } catch (err) { this.logger.error('Failed to send SOS true value', err); } } }