mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-11-26 07:34:54 +00:00
167 lines
4.8 KiB
TypeScript
167 lines
4.8 KiB
TypeScript
import { DoorLockService } from '../services/door.lock.service';
|
|
import {
|
|
Body,
|
|
Controller,
|
|
Post,
|
|
Param,
|
|
HttpStatus,
|
|
Get,
|
|
Delete,
|
|
UseGuards,
|
|
Put,
|
|
} from '@nestjs/common';
|
|
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
|
|
import { AddDoorLockOnlineDto } from '../dtos/add.online-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({
|
|
version: '1',
|
|
path: 'door-lock',
|
|
})
|
|
export class DoorLockController {
|
|
constructor(private readonly doorLockService: DoorLockService) {}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Post('temporary-password/online/:doorLockUuid')
|
|
async addOnlineTemporaryPassword(
|
|
@Body() addDoorLockDto: AddDoorLockOnlineDto,
|
|
@Param('doorLockUuid') doorLockUuid: string,
|
|
) {
|
|
const temporaryPassword =
|
|
await this.doorLockService.addOnlineTemporaryPassword(
|
|
addDoorLockDto,
|
|
doorLockUuid,
|
|
);
|
|
|
|
return {
|
|
statusCode: HttpStatus.CREATED,
|
|
success: true,
|
|
message: 'online temporary password added successfully',
|
|
data: {
|
|
id: temporaryPassword.id,
|
|
},
|
|
};
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Post('temporary-password/offline/one-time/:doorLockUuid')
|
|
async addOfflineOneTimeTemporaryPassword(
|
|
@Param('doorLockUuid') doorLockUuid: string,
|
|
) {
|
|
const temporaryPassword =
|
|
await this.doorLockService.addOfflineOneTimeTemporaryPassword(
|
|
doorLockUuid,
|
|
);
|
|
|
|
return {
|
|
statusCode: HttpStatus.CREATED,
|
|
success: true,
|
|
message: 'offline temporary password added successfully',
|
|
data: temporaryPassword,
|
|
};
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Post('temporary-password/offline/multiple-time/:doorLockUuid')
|
|
async addOfflineMultipleTimeTemporaryPassword(
|
|
@Body()
|
|
addDoorLockOfflineTempMultipleTimeDto: AddDoorLockOfflineTempMultipleTimeDto,
|
|
@Param('doorLockUuid') doorLockUuid: string,
|
|
) {
|
|
const temporaryPassword =
|
|
await this.doorLockService.addOfflineMultipleTimeTemporaryPassword(
|
|
addDoorLockOfflineTempMultipleTimeDto,
|
|
doorLockUuid,
|
|
);
|
|
|
|
return {
|
|
statusCode: HttpStatus.CREATED,
|
|
success: true,
|
|
message: 'offline temporary password added successfully',
|
|
data: temporaryPassword,
|
|
};
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Get('temporary-password/online/:doorLockUuid')
|
|
async getOnlineTemporaryPasswords(
|
|
@Param('doorLockUuid') doorLockUuid: string,
|
|
) {
|
|
return await this.doorLockService.getOnlineTemporaryPasswordsMultiple(
|
|
doorLockUuid,
|
|
);
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Delete('temporary-password/online/:doorLockUuid/:passwordId')
|
|
async deleteDoorLockPassword(
|
|
@Param('doorLockUuid') doorLockUuid: string,
|
|
@Param('passwordId') passwordId: string,
|
|
) {
|
|
await this.doorLockService.deleteDoorLockPassword(doorLockUuid, passwordId);
|
|
return {
|
|
statusCode: HttpStatus.OK,
|
|
message: 'Temporary Password deleted Successfully',
|
|
};
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Get('temporary-password/offline/one-time/:doorLockUuid')
|
|
async getOfflineOneTimeTemporaryPasswords(
|
|
@Param('doorLockUuid') doorLockUuid: string,
|
|
) {
|
|
return await this.doorLockService.getOfflineOneTimeTemporaryPasswords(
|
|
doorLockUuid,
|
|
);
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Get('temporary-password/offline/multiple-time/:doorLockUuid')
|
|
async getOfflineMultipleTimeTemporaryPasswords(
|
|
@Param('doorLockUuid') doorLockUuid: string,
|
|
) {
|
|
return await this.doorLockService.getOfflineMultipleTimeTemporaryPasswords(
|
|
doorLockUuid,
|
|
);
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Put('temporary-password/:doorLockUuid/offline/:passwordId')
|
|
async updateOfflineTemporaryPassword(
|
|
@Body()
|
|
updateDoorLockOfflineTempDto: UpdateDoorLockOfflineTempDto,
|
|
@Param('doorLockUuid') doorLockUuid: string,
|
|
@Param('passwordId') passwordId: string,
|
|
) {
|
|
const temporaryPassword =
|
|
await this.doorLockService.updateOfflineTemporaryPassword(
|
|
updateDoorLockOfflineTempDto,
|
|
doorLockUuid,
|
|
passwordId,
|
|
);
|
|
|
|
return {
|
|
statusCode: HttpStatus.CREATED,
|
|
success: true,
|
|
message: 'offline temporary password updated successfully',
|
|
data: temporaryPassword,
|
|
};
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Post('open/:doorLockUuid')
|
|
async openDoorLock(@Param('doorLockUuid') doorLockUuid: string) {
|
|
await this.doorLockService.openDoorLock(doorLockUuid);
|
|
|
|
return {
|
|
statusCode: HttpStatus.CREATED,
|
|
success: true,
|
|
message: 'door lock opened successfully',
|
|
};
|
|
}
|
|
}
|