Refactor door lock controller and service

This commit is contained in:
faris Aljohari
2024-07-20 18:51:51 +03:00
parent 2b8ba755b1
commit 5e957e3395
5 changed files with 188 additions and 93 deletions
@@ -9,11 +9,13 @@ import {
Get,
Delete,
UseGuards,
Put,
} from '@nestjs/common';
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
import { AddDoorLockOnlineDto } from '../dtos/add.online-temp.dto';
import { AddDoorLockOfflineTempDto } from '../dtos/add.offline-temp.dto';
import { AddDoorLockOfflineTempMultipleTimeDto } from '../dtos/add.offline-temp.dto';
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
import { UpdateDoorLockOfflineTempDto } from '../dtos/update.offline-temp.dto';
@ApiTags('Door Lock Module')
@Controller({
@@ -55,13 +57,11 @@ export class DoorLockController {
@UseGuards(JwtAuthGuard)
@Post('temporary-password/offline/one-time/:doorLockUuid')
async addOfflineOneTimeTemporaryPassword(
@Body() addDoorLockOfflineTempDto: AddDoorLockOfflineTempDto,
@Param('doorLockUuid') doorLockUuid: string,
) {
try {
const temporaryPassword =
await this.doorLockService.addOfflineOneTimeTemporaryPassword(
addDoorLockOfflineTempDto,
doorLockUuid,
);
@@ -82,13 +82,14 @@ export class DoorLockController {
@UseGuards(JwtAuthGuard)
@Post('temporary-password/offline/multiple-time/:doorLockUuid')
async addOfflineMultipleTimeTemporaryPassword(
@Body() addDoorLockOfflineTempDto: AddDoorLockOfflineTempDto,
@Body()
addDoorLockOfflineTempMultipleTimeDto: AddDoorLockOfflineTempMultipleTimeDto,
@Param('doorLockUuid') doorLockUuid: string,
) {
try {
const temporaryPassword =
await this.doorLockService.addOfflineMultipleTimeTemporaryPassword(
addDoorLockOfflineTempDto,
addDoorLockOfflineTempMultipleTimeDto,
doorLockUuid,
);
@@ -124,6 +125,29 @@ export class DoorLockController {
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Delete('temporary-password/online/:doorLockUuid/:passwordId')
async deleteDoorLockPassword(
@Param('doorLockUuid') doorLockUuid: string,
@Param('passwordId') passwordId: string,
) {
try {
await this.doorLockService.deleteDoorLockPassword(
doorLockUuid,
passwordId,
);
return {
statusCode: HttpStatus.OK,
message: 'Temporary Password deleted Successfully',
};
} catch (error) {
throw new HttpException(
error.message || 'Internal server error',
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
);
}
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get('temporary-password/offline/one-time/:doorLockUuid')
async getOfflineOneTimeTemporaryPasswords(
@Param('doorLockUuid') doorLockUuid: string,
@@ -156,21 +180,29 @@ export class DoorLockController {
);
}
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Delete('temporary-password/:doorLockUuid/:passwordId')
async deleteDoorLockPassword(
@Put('temporary-password/:doorLockUuid/offline/:passwordId')
async updateOfflineTemporaryPassword(
@Body()
updateDoorLockOfflineTempDto: UpdateDoorLockOfflineTempDto,
@Param('doorLockUuid') doorLockUuid: string,
@Param('passwordId') passwordId: string,
) {
try {
await this.doorLockService.deleteDoorLockPassword(
doorLockUuid,
passwordId,
);
const temporaryPassword =
await this.doorLockService.updateOfflineTemporaryPassword(
updateDoorLockOfflineTempDto,
doorLockUuid,
passwordId,
);
return {
statusCode: HttpStatus.OK,
message: 'Temporary Password deleted Successfully',
statusCode: HttpStatus.CREATED,
success: true,
message: 'offline temporary password updated successfully',
data: temporaryPassword,
};
} catch (error) {
throw new HttpException(