mirror of
https://github.com/SyncrowIOT/backend.git
synced 2026-10-23 11:17:54 +00:00
149 lines
4.3 KiB
TypeScript
149 lines
4.3 KiB
TypeScript
import { VisitorPasswordService } from '../services/visitor-password.service';
|
|
import {
|
|
Body,
|
|
Controller,
|
|
Post,
|
|
HttpStatus,
|
|
UseGuards,
|
|
Req,
|
|
} from '@nestjs/common';
|
|
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
|
|
import {
|
|
AddDoorLockOfflineMultipleDto,
|
|
AddDoorLockOfflineOneTimeDto,
|
|
AddDoorLockOnlineMultipleDto,
|
|
AddDoorLockOnlineOneTimeDto,
|
|
} from '../dtos/temp-pass.dto';
|
|
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
|
|
import { ControllerRoute } from '@app/common/constants/controller-route';
|
|
import { PermissionsGuard } from 'src/guards/permissions.guard';
|
|
import { Permissions } from 'src/decorators/permissions.decorator';
|
|
|
|
@ApiTags('Visitor Password Module')
|
|
@Controller({
|
|
version: EnableDisableStatusEnum.ENABLED,
|
|
path: ControllerRoute.VISITOR_PASSWORD.ROUTE,
|
|
})
|
|
export class VisitorPasswordController {
|
|
constructor(
|
|
private readonly visitorPasswordService: VisitorPasswordService,
|
|
) {}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('VISITOR_PASSWORD_ADD')
|
|
@Post('temporary-password/online/multiple-time')
|
|
@ApiOperation({
|
|
summary:
|
|
ControllerRoute.VISITOR_PASSWORD.ACTIONS
|
|
.ADD_ONLINE_TEMP_PASSWORD_MULTIPLE_TIME_SUMMARY,
|
|
description:
|
|
ControllerRoute.VISITOR_PASSWORD.ACTIONS
|
|
.ADD_ONLINE_TEMP_PASSWORD_MULTIPLE_TIME_DESCRIPTION,
|
|
})
|
|
async addOnlineTemporaryPasswordMultipleTime(
|
|
@Body() addDoorLockOnlineMultipleDto: AddDoorLockOnlineMultipleDto,
|
|
@Req() req: any,
|
|
) {
|
|
const userUuid = req.user.uuid;
|
|
const temporaryPasswords =
|
|
await this.visitorPasswordService.addOnlineTemporaryPasswordMultipleTime(
|
|
addDoorLockOnlineMultipleDto,
|
|
userUuid,
|
|
);
|
|
|
|
return {
|
|
statusCode: HttpStatus.CREATED,
|
|
data: temporaryPasswords,
|
|
};
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('VISITOR_PASSWORD_ADD')
|
|
@Post('temporary-password/online/one-time')
|
|
@ApiOperation({
|
|
summary:
|
|
ControllerRoute.VISITOR_PASSWORD.ACTIONS
|
|
.ADD_ONLINE_TEMP_PASSWORD_ONE_TIME_SUMMARY,
|
|
description:
|
|
ControllerRoute.VISITOR_PASSWORD.ACTIONS
|
|
.ADD_ONLINE_TEMP_PASSWORD_ONE_TIME_DESCRIPTION,
|
|
})
|
|
async addOnlineTemporaryPassword(
|
|
@Body() addDoorLockOnlineOneTimeDto: AddDoorLockOnlineOneTimeDto,
|
|
@Req() req: any,
|
|
) {
|
|
const userUuid = req.user.uuid;
|
|
const temporaryPasswords =
|
|
await this.visitorPasswordService.addOnlineTemporaryPasswordOneTime(
|
|
addDoorLockOnlineOneTimeDto,
|
|
userUuid,
|
|
);
|
|
|
|
return {
|
|
statusCode: HttpStatus.CREATED,
|
|
data: temporaryPasswords,
|
|
};
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('VISITOR_PASSWORD_ADD')
|
|
@Post('temporary-password/offline/one-time')
|
|
@ApiOperation({
|
|
summary:
|
|
ControllerRoute.VISITOR_PASSWORD.ACTIONS
|
|
.ADD_OFFLINE_TEMP_PASSWORD_ONE_TIME_SUMMARY,
|
|
description:
|
|
ControllerRoute.VISITOR_PASSWORD.ACTIONS
|
|
.ADD_OFFLINE_TEMP_PASSWORD_ONE_TIME_DESCRIPTION,
|
|
})
|
|
async addOfflineOneTimeTemporaryPassword(
|
|
@Body() addDoorLockOfflineOneTimeDto: AddDoorLockOfflineOneTimeDto,
|
|
@Req() req: any,
|
|
) {
|
|
const userUuid = req.user.uuid;
|
|
const temporaryPassword =
|
|
await this.visitorPasswordService.addOfflineOneTimeTemporaryPassword(
|
|
addDoorLockOfflineOneTimeDto,
|
|
userUuid,
|
|
);
|
|
|
|
return {
|
|
statusCode: HttpStatus.CREATED,
|
|
data: temporaryPassword,
|
|
};
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('VISITOR_PASSWORD_ADD')
|
|
@Post('temporary-password/offline/multiple-time')
|
|
@ApiOperation({
|
|
summary:
|
|
ControllerRoute.VISITOR_PASSWORD.ACTIONS
|
|
.ADD_OFFLINE_TEMP_PASSWORD_MULTIPLE_TIME_SUMMARY,
|
|
description:
|
|
ControllerRoute.VISITOR_PASSWORD.ACTIONS
|
|
.ADD_OFFLINE_TEMP_PASSWORD_MULTIPLE_TIME_DESCRIPTION,
|
|
})
|
|
async addOfflineMultipleTimeTemporaryPassword(
|
|
@Body()
|
|
addDoorLockOfflineMultipleDto: AddDoorLockOfflineMultipleDto,
|
|
@Req() req: any,
|
|
) {
|
|
const userUuid = req.user.uuid;
|
|
const temporaryPassword =
|
|
await this.visitorPasswordService.addOfflineMultipleTimeTemporaryPassword(
|
|
addDoorLockOfflineMultipleDto,
|
|
userUuid,
|
|
);
|
|
|
|
return {
|
|
statusCode: HttpStatus.CREATED,
|
|
data: temporaryPassword,
|
|
};
|
|
}
|
|
}
|