This commit is contained in:
faris Aljohari
2024-07-30 14:14:58 +03:00
parent 0b7934e9cc
commit 8cb131f395
19 changed files with 760 additions and 14 deletions

View File

@ -25,6 +25,7 @@ import { PermissionType } from '@app/common/constants/permission-type.enum';
import { In } from 'typeorm';
import { ProductType } from '@app/common/constants/product-type.enum';
import { SpaceRepository } from '@app/common/modules/space/repositories';
import { DeviceStatusMongoService } from '@app/common/mongoose/devices-status/services/devices-status.service';
@Injectable()
export class DeviceService {
@ -33,6 +34,7 @@ export class DeviceService {
private readonly configService: ConfigService,
private readonly deviceRepository: DeviceRepository,
private readonly productRepository: ProductRepository,
private readonly deviceStatusMongoService: DeviceStatusMongoService,
private readonly spaceRepository: SpaceRepository,
) {
const accessKey = this.configService.get<string>('auth-config.ACCESS_KEY');
@ -72,14 +74,28 @@ export class DeviceService {
if (!device.productUuid) {
throw new Error('Product UUID is missing for the device.');
}
return await this.deviceRepository.save({
const deviceSaved = await this.deviceRepository.save({
deviceTuyaUuid: addDeviceDto.deviceTuyaUuid,
productDevice: { uuid: device.productUuid },
user: {
uuid: addDeviceDto.userUuid,
},
});
if (deviceSaved.uuid) {
const deviceStatus = await this.getDevicesInstructionStatus(
deviceSaved.uuid,
);
if (deviceStatus.productUuid) {
await this.deviceStatusMongoService.addDeviceStatusToMongo({
deviceUuid: deviceSaved.uuid,
deviceTuyaUuid: addDeviceDto.deviceTuyaUuid,
status: deviceStatus.status,
productUuid: deviceStatus.productUuid,
productType: deviceStatus.productType,
});
}
}
return deviceSaved;
} catch (error) {
if (error.code === '23505') {
throw new HttpException(