finished config with 6 scene device

This commit is contained in:
faris Aljohari
2024-11-19 20:44:45 -06:00
parent 25ce2f7b94
commit 9510905fb4
8 changed files with 81 additions and 30 deletions

View File

@ -0,0 +1,42 @@
import { ProductType } from '@app/common/constants/product-type.enum';
import {
Injectable,
CanActivate,
ExecutionContext,
BadRequestException,
HttpException,
} from '@nestjs/common';
import { DeviceService } from 'src/device/services';
@Injectable()
export class CheckFourAndSixSceneDeviceTypeGuard implements CanActivate {
constructor(private readonly deviceService: DeviceService) {}
async canActivate(context: ExecutionContext): Promise<boolean> {
const request = context.switchToHttp().getRequest();
const deviceUuid = request.params.deviceUuid;
if (!deviceUuid) {
throw new BadRequestException('Device UUID is required');
}
try {
const deviceDetails =
await this.deviceService.getDeviceByDeviceUuid(deviceUuid);
if (
deviceDetails.productDevice.prodType !== ProductType.FOUR_S &&
deviceDetails.productDevice.prodType !== ProductType.SIX_S
) {
throw new BadRequestException('The device type is not supported');
}
return true;
} catch (error) {
throw new HttpException(
error.message || 'An error occurred',
error.status || 500,
);
}
}
}