finished soft delete devices

This commit is contained in:
faris Aljohari
2024-10-07 23:11:16 -05:00
parent e2490515b0
commit 6bfb64370a
10 changed files with 39 additions and 7 deletions

View File

@ -85,6 +85,7 @@ export class DeviceStatusFirebaseService {
return await this.deviceRepository.findOne({
where: {
deviceTuyaUuid,
isActive: true,
},
relations: ['productDevice'],
});
@ -139,6 +140,7 @@ export class DeviceStatusFirebaseService {
return await this.deviceRepository.findOne({
where: {
uuid: deviceUuid,
isActive: true,
},
...(withProductDevice && { relations: ['productDevice'] }),
});

View File

@ -18,8 +18,9 @@ export class DeviceEntity extends AbstractEntity<DeviceDto> {
@Column({
nullable: true,
default: true,
type: 'boolean',
})
isActive: true;
isActive: boolean;
@ManyToOne(() => UserEntity, (user) => user.userSpaces, { nullable: false })
user: UserEntity;

View File

@ -62,6 +62,7 @@ export class DeviceService {
return await this.deviceRepository.findOne({
where: {
uuid: deviceUuid,
isActive: true,
},
...(withProductDevice && { relations: ['productDevice'] }),
});
@ -70,6 +71,7 @@ export class DeviceService {
return await this.deviceRepository.findOne({
where: {
deviceTuyaUuid,
isActive: true,
},
relations: ['productDevice'],
});
@ -126,6 +128,7 @@ export class DeviceService {
const devices = await this.deviceRepository.find({
where: {
user: { uuid: userUuid },
isActive: true,
permission: {
userUuid,
permissionType: {
@ -172,6 +175,7 @@ export class DeviceService {
const devices = await this.deviceRepository.find({
where: {
spaceDevice: { uuid: getDeviceByRoomUuidDto.roomUuid },
isActive: true,
permission: {
userUuid,
permissionType: {
@ -221,6 +225,7 @@ export class DeviceService {
const device = await this.deviceRepository.findOne({
where: {
uuid: updateDeviceInRoomDto.deviceUuid,
isActive: true,
},
relations: ['spaceDevice', 'spaceDevice.parent'],
});
@ -407,7 +412,7 @@ export class DeviceService {
}
async checkAllDevicesHaveSameProductUuid(deviceUuids: string[]) {
const firstDevice = await this.deviceRepository.findOne({
where: { uuid: deviceUuids[0] },
where: { uuid: deviceUuids[0], isActive: true },
relations: ['productDevice'],
});
@ -419,7 +424,7 @@ export class DeviceService {
for (let i = 1; i < deviceUuids.length; i++) {
const device = await this.deviceRepository.findOne({
where: { uuid: deviceUuids[i] },
where: { uuid: deviceUuids[i], isActive: true },
relations: ['productDevice'],
});
@ -463,6 +468,11 @@ export class DeviceService {
if (operationResult.success) {
// Add to success results if operationResult.success is true
successResults.push({ deviceUuid, result: operationResult });
// Update isActive to false in the repository for the successfully reset device
await this.deviceRepository.update(
{ uuid: deviceUuid },
{ isActive: false },
);
} else {
// Add to failed results if operationResult.success is false
failedResults.push({ deviceUuid, error: operationResult.msg });
@ -643,6 +653,7 @@ export class DeviceService {
const device = await this.deviceRepository.findOne({
where: {
uuid: deviceUuid,
isActive: true,
permission: {
userUuid: userUuid,
},
@ -774,6 +785,9 @@ export class DeviceService {
parent: {
uuid: unitUuid,
},
devicesSpaceEntity: {
isActive: true,
},
},
relations: ['devicesSpaceEntity', 'devicesSpaceEntity.productDevice'],
});
@ -808,6 +822,7 @@ export class DeviceService {
async getAllDevices(): Promise<GetDeviceDetailsInterface[]> {
try {
const devices = await this.deviceRepository.find({
where: { isActive: true },
relations: [
'spaceDevice.parent',
'productDevice',

View File

@ -826,6 +826,7 @@ export class DoorLockService {
return await this.deviceRepository.findOne({
where: {
uuid: deviceUuid,
isActive: true,
},
...(withProductDevice && { relations: ['productDevice'] }),
});

View File

@ -28,7 +28,7 @@ export class CheckProductUuidForAllDevicesGuard implements CanActivate {
async checkAllDevicesHaveSameProductUuid(deviceUuids: string[]) {
const firstDevice = await this.deviceRepository.findOne({
where: { uuid: deviceUuids[0] },
where: { uuid: deviceUuids[0], isActive: true },
relations: ['productDevice'],
});
@ -40,7 +40,7 @@ export class CheckProductUuidForAllDevicesGuard implements CanActivate {
for (let i = 1; i < deviceUuids.length; i++) {
const device = await this.deviceRepository.findOne({
where: { uuid: deviceUuids[i] },
where: { uuid: deviceUuids[i], isActive: true },
relations: ['productDevice'],
});

View File

@ -55,6 +55,7 @@ export class CheckRoomGuard implements CanActivate {
const response = await this.deviceRepository.findOne({
where: {
uuid: deviceUuid,
isActive: true,
},
});

View File

@ -58,7 +58,11 @@ export class CheckUserHaveControllablePermission implements CanActivate {
deviceUuid: string,
): Promise<string> {
const device = await this.deviceRepository.findOne({
where: { uuid: deviceUuid, permission: { userUuid: userUuid } },
where: {
uuid: deviceUuid,
isActive: true,
permission: { userUuid: userUuid },
},
relations: ['permission', 'permission.permissionType'],
});

View File

@ -59,7 +59,11 @@ export class CheckUserHavePermission implements CanActivate {
deviceUuid: string,
): Promise<string> {
const device = await this.deviceRepository.findOne({
where: { uuid: deviceUuid, permission: { userUuid: userUuid } },
where: {
uuid: deviceUuid,
permission: { userUuid: userUuid },
isActive: true,
},
relations: ['permission', 'permission.permissionType'],
});

View File

@ -298,6 +298,7 @@ export class ScheduleService {
return await this.deviceRepository.findOne({
where: {
uuid: deviceUuid,
isActive: true,
},
...(withProductDevice && { relations: ['productDevice'] }),
});

View File

@ -440,6 +440,7 @@ export class VisitorPasswordService {
productDevice: {
prodType: ProductType.DL,
},
isActive: true,
},
});
const data = [];
@ -482,6 +483,7 @@ export class VisitorPasswordService {
productDevice: {
prodType: ProductType.DL,
},
isActive: true,
},
relations: ['productDevice'],
});
@ -823,6 +825,7 @@ export class VisitorPasswordService {
return await this.deviceRepository.findOne({
where: {
uuid: deviceUuid,
isActive: true,
},
...(withProductDevice && { relations: ['productDevice'] }),
});