added timeseries

This commit is contained in:
unknown
2024-10-20 16:46:44 +03:00
parent 1f6072c292
commit 07ac955eb0
9 changed files with 62 additions and 2 deletions
@@ -2,10 +2,15 @@ import { Module } from '@nestjs/common';
import { DeviceStatusFirebaseController } from './controllers/devices-status.controller';
import { DeviceStatusFirebaseService } from './services/devices-status.service';
import { DeviceRepository } from '@app/common/modules/device/repositories';
import { DeviceStatusLogRepository } from '@app/common/modules/device-status-log/repositories/device-status.repository';
@Module({
providers: [DeviceStatusFirebaseService, DeviceRepository],
providers: [
DeviceStatusFirebaseService,
DeviceRepository,
DeviceStatusLogRepository,
],
controllers: [DeviceStatusFirebaseController],
exports: [DeviceStatusFirebaseService],
exports: [DeviceStatusFirebaseService, DeviceStatusLogRepository],
})
export class DeviceStatusFirebaseModule {}
@@ -11,6 +11,7 @@ import { TuyaContext } from '@tuya/tuya-connector-nodejs';
import { ConfigService } from '@nestjs/config';
import { firebaseDataBase } from '../../firebase.config';
import { Database, DataSnapshot, get, ref, set } from 'firebase/database';
import { DeviceStatusLogRepository } from '@app/common/modules/device-status-log/repositories';
@Injectable()
export class DeviceStatusFirebaseService {
private tuya: TuyaContext;
@@ -18,6 +19,7 @@ export class DeviceStatusFirebaseService {
constructor(
private readonly configService: ConfigService,
private readonly deviceRepository: DeviceRepository,
private deviceStatusLogRepository: DeviceStatusLogRepository,
) {
const accessKey = this.configService.get<string>('auth-config.ACCESS_KEY');
const secretKey = this.configService.get<string>('auth-config.SECRET_KEY');
@@ -175,6 +177,7 @@ export class DeviceStatusFirebaseService {
);
// Update or add status codes
for (const statusItem of addDeviceStatusDto.status) {
statusMap.set(statusItem.code, statusItem.value);
}
@@ -184,7 +187,15 @@ export class DeviceStatusFirebaseService {
code,
value,
}));
const newLog = this.deviceStatusLogRepository.create({
deviceUuid: addDeviceStatusDto.deviceUuid,
deviceTuyaUuid: addDeviceStatusDto.deviceTuyaUuid,
productUuid: addDeviceStatusDto.productUuid,
productType: addDeviceStatusDto.productType,
status: existingData.status,
});
await this.deviceStatusLogRepository.save(newLog);
// Save the updated data to Firebase
await set(dataRef, existingData);