Merge pull request #154 from SyncrowIOT/SP-447-be-lack-of-documentation

Sp 447 be lack of documentation
This commit is contained in:
faris Aljohari
2024-11-24 23:26:35 -06:00
committed by GitHub
16 changed files with 936 additions and 50 deletions
+36 -5
View File
@@ -10,7 +10,7 @@ import {
} from '@nestjs/common';
import { UserAuthService } from '../services/user-auth.service';
import { UserSignUpDto } from '../dtos/user-auth.dto';
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
import { ResponseMessage } from '../../../libs/common/src/response/response.decorator';
import { UserLoginDto } from '../dtos/user-login.dto';
import { ForgetPasswordDto, UserOtpDto, VerifyOtpDto } from '../dtos';
@@ -18,17 +18,22 @@ import { RefreshTokenGuard } from '@app/common/guards/jwt-refresh.auth.guard';
import { SuperAdminRoleGuard } from 'src/guards/super.admin.role.guard';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
import { OtpType } from '@app/common/constants/otp-type.enum';
import { ControllerRoute } from '@app/common/constants/controller-route';
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: 'authentication',
path: ControllerRoute.AUTHENTICATION.ROUTE,
})
@ApiTags('Auth')
@ApiTags('Authentication Module')
export class UserAuthController {
constructor(private readonly userAuthService: UserAuthService) {}
@ResponseMessage('User Registered Successfully')
@Post('user/signup')
@ApiOperation({
summary: ControllerRoute.AUTHENTICATION.ACTIONS.SIGN_UP_SUMMARY,
description: ControllerRoute.AUTHENTICATION.ACTIONS.SIGN_UP_DESCRIPTION,
})
async signUp(@Body() userSignUpDto: UserSignUpDto) {
const signupUser = await this.userAuthService.signUp(userSignUpDto);
return {
@@ -41,8 +46,12 @@ export class UserAuthController {
};
}
@ResponseMessage('user logged in successfully')
@ResponseMessage('User Logged in Successfully')
@Post('user/login')
@ApiOperation({
summary: ControllerRoute.AUTHENTICATION.ACTIONS.LOGIN_SUMMARY,
description: ControllerRoute.AUTHENTICATION.ACTIONS.LOGIN_DESCRIPTION,
})
async userLogin(@Body() data: UserLoginDto) {
const accessToken = await this.userAuthService.userLogin(data);
return {
@@ -53,6 +62,10 @@ export class UserAuthController {
}
@Post('user/send-otp')
@ApiOperation({
summary: ControllerRoute.AUTHENTICATION.ACTIONS.SEND_OTP_SUMMARY,
description: ControllerRoute.AUTHENTICATION.ACTIONS.SEND_OTP_DESCRIPTION,
})
async sendOtp(@Body() otpDto: UserOtpDto) {
const otpCode = await this.userAuthService.generateOTP(otpDto);
return {
@@ -60,11 +73,15 @@ export class UserAuthController {
data: {
...otpCode,
},
message: 'Otp Send Successfully',
message: 'Otp Sent Successfully',
};
}
@Post('user/verify-otp')
@ApiOperation({
summary: ControllerRoute.AUTHENTICATION.ACTIONS.VERIFY_OTP_SUMMARY,
description: ControllerRoute.AUTHENTICATION.ACTIONS.VERIFY_OTP_DESCRIPTION,
})
async verifyOtp(@Body() verifyOtpDto: VerifyOtpDto) {
await this.userAuthService.verifyOTP(verifyOtpDto);
return {
@@ -75,6 +92,11 @@ export class UserAuthController {
}
@Post('user/forget-password')
@ApiOperation({
summary: ControllerRoute.AUTHENTICATION.ACTIONS.FORGET_PASSWORD_SUMMARY,
description:
ControllerRoute.AUTHENTICATION.ACTIONS.FORGET_PASSWORD_DESCRIPTION,
})
async forgetPassword(@Body() forgetPasswordDto: ForgetPasswordDto) {
const otpResult = await this.userAuthService.verifyOTP(
{
@@ -102,6 +124,10 @@ export class UserAuthController {
@ApiBearerAuth()
@UseGuards(SuperAdminRoleGuard)
@Get('user')
@ApiOperation({
summary: ControllerRoute.AUTHENTICATION.ACTIONS.USER_LIST_SUMMARY,
description: ControllerRoute.AUTHENTICATION.ACTIONS.USER_LIST_DESCRIPTION,
})
async userList() {
const userList = await this.userAuthService.userList();
return {
@@ -114,6 +140,11 @@ export class UserAuthController {
@ApiBearerAuth()
@UseGuards(RefreshTokenGuard)
@Get('refresh-token')
@ApiOperation({
summary: ControllerRoute.AUTHENTICATION.ACTIONS.REFRESH_TOKEN_SUMMARY,
description:
ControllerRoute.AUTHENTICATION.ACTIONS.REFRESH_TOKEN_DESCRIPTION,
})
async refreshToken(@Req() req) {
const refreshToken = await this.userAuthService.refreshToken(
req.user.uuid,
@@ -10,7 +10,7 @@ import {
Put,
UseGuards,
} from '@nestjs/common';
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
import {
AddAutomationDto,
UpdateAutomationDto,
@@ -19,11 +19,12 @@ import {
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
import { AutomationParamDto, SpaceParamDto } from '../dtos';
import { ControllerRoute } from '@app/common/constants/controller-route';
@ApiTags('Automation Module')
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: 'automation',
path: ControllerRoute.AUTOMATION.ROUTE,
})
export class AutomationController {
constructor(private readonly automationService: AutomationService) {}
@@ -31,6 +32,10 @@ export class AutomationController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Post()
@ApiOperation({
summary: ControllerRoute.AUTOMATION.ACTIONS.ADD_AUTOMATION_SUMMARY,
description: ControllerRoute.AUTOMATION.ACTIONS.ADD_AUTOMATION_DESCRIPTION,
})
async addAutomation(@Body() addAutomationDto: AddAutomationDto) {
const automation =
await this.automationService.addAutomation(addAutomationDto);
@@ -45,6 +50,11 @@ export class AutomationController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get(':spaceUuid')
@ApiOperation({
summary: ControllerRoute.AUTOMATION.ACTIONS.GET_AUTOMATION_BY_SPACE_SUMMARY,
description:
ControllerRoute.AUTOMATION.ACTIONS.GET_AUTOMATION_BY_SPACE_DESCRIPTION,
})
async getAutomationBySpace(@Param() param: SpaceParamDto) {
const automation = await this.automationService.getAutomationBySpace(
param.spaceUuid,
@@ -55,6 +65,11 @@ export class AutomationController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get('details/:automationUuid')
@ApiOperation({
summary: ControllerRoute.AUTOMATION.ACTIONS.GET_AUTOMATION_DETAILS_SUMMARY,
description:
ControllerRoute.AUTOMATION.ACTIONS.GET_AUTOMATION_DETAILS_DESCRIPTION,
})
async getAutomationDetails(@Param() param: AutomationParamDto) {
const automation = await this.automationService.getAutomationDetails(
param.automationUuid,
@@ -65,6 +80,11 @@ export class AutomationController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Delete(':automationUuid')
@ApiOperation({
summary: ControllerRoute.AUTOMATION.ACTIONS.DELETE_AUTOMATION_SUMMARY,
description:
ControllerRoute.AUTOMATION.ACTIONS.DELETE_AUTOMATION_DESCRIPTION,
})
async deleteAutomation(@Param() param: AutomationParamDto) {
await this.automationService.deleteAutomation(param);
return {
@@ -76,6 +96,11 @@ export class AutomationController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Put(':automationUuid')
@ApiOperation({
summary: ControllerRoute.AUTOMATION.ACTIONS.UPDATE_AUTOMATION_SUMMARY,
description:
ControllerRoute.AUTOMATION.ACTIONS.UPDATE_AUTOMATION_DESCRIPTION,
})
async updateAutomation(
@Body() updateAutomationDto: UpdateAutomationDto,
@Param() param: AutomationParamDto,
@@ -95,6 +120,12 @@ export class AutomationController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Put('status/:automationUuid')
@ApiOperation({
summary:
ControllerRoute.AUTOMATION.ACTIONS.UPDATE_AUTOMATION_STATUS_SUMMARY,
description:
ControllerRoute.AUTOMATION.ACTIONS.UPDATE_AUTOMATION_STATUS_DESCRIPTION,
})
async updateAutomationStatus(
@Body() updateAutomationStatusDto: UpdateAutomationStatusDto,
@Param() param: AutomationParamDto,
@@ -8,17 +8,18 @@ import {
Post,
UseGuards,
} from '@nestjs/common';
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
import { DeviceMessagesSubscriptionService } from '../services/device-messages.service';
import { DeviceMessagesAddDto } from '../dtos/device-messages.dto';
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
import { ControllerRoute } from '@app/common/constants/controller-route';
@ApiTags('Device Messages Status Module')
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: 'device-messages/subscription',
path: ControllerRoute.DEVICE_MESSAGES_SUBSCRIPTION.ROUTE,
})
export class DeviceMessagesSubscriptionController {
constructor(
@@ -28,6 +29,14 @@ export class DeviceMessagesSubscriptionController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Post()
@ApiOperation({
summary:
ControllerRoute.DEVICE_MESSAGES_SUBSCRIPTION.ACTIONS
.ADD_DEVICE_MESSAGES_SUBSCRIPTION_SUMMARY,
description:
ControllerRoute.DEVICE_MESSAGES_SUBSCRIPTION.ACTIONS
.ADD_DEVICE_MESSAGES_SUBSCRIPTION_DESCRIPTION,
})
async addDeviceMessagesSubscription(
@Body() deviceMessagesAddDto: DeviceMessagesAddDto,
) {
@@ -45,6 +54,14 @@ export class DeviceMessagesSubscriptionController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get(':deviceUuid/user/:userUuid')
@ApiOperation({
summary:
ControllerRoute.DEVICE_MESSAGES_SUBSCRIPTION.ACTIONS
.GET_DEVICE_MESSAGES_SUBSCRIPTION_SUMMARY,
description:
ControllerRoute.DEVICE_MESSAGES_SUBSCRIPTION.ACTIONS
.GET_DEVICE_MESSAGES_SUBSCRIPTION_DESCRIPTION,
})
async getDeviceMessagesSubscription(
@Param('deviceUuid') deviceUuid: string,
@Param('userUuid') userUuid: string,
@@ -60,9 +77,18 @@ export class DeviceMessagesSubscriptionController {
data: deviceDetails,
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Delete()
@ApiOperation({
summary:
ControllerRoute.DEVICE_MESSAGES_SUBSCRIPTION.ACTIONS
.DELETE_DEVICE_MESSAGES_SUBSCRIPTION_SUMMARY,
description:
ControllerRoute.DEVICE_MESSAGES_SUBSCRIPTION.ACTIONS
.DELETE_DEVICE_MESSAGES_SUBSCRIPTION_DESCRIPTION,
})
async deleteDeviceMessagesSubscription(
@Body() deviceMessagesAddDto: DeviceMessagesAddDto,
) {
+89 -2
View File
@@ -11,7 +11,7 @@ import {
Req,
Put,
} from '@nestjs/common';
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
import {
AddDeviceDto,
AddSceneToFourSceneDeviceDto,
@@ -32,17 +32,22 @@ import { CheckDeviceGuard } from 'src/guards/device.guard';
import { SuperAdminRoleGuard } from 'src/guards/super.admin.role.guard';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
import { CheckFourAndSixSceneDeviceTypeGuard } from 'src/guards/scene.device.type.guard';
import { ControllerRoute } from '@app/common/constants/controller-route';
@ApiTags('Device Module')
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: 'device',
path: ControllerRoute.DEVICE.ROUTE,
})
export class DeviceController {
constructor(private readonly deviceService: DeviceService) {}
@ApiBearerAuth()
@UseGuards(SuperAdminRoleGuard, CheckDeviceGuard)
@Post()
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.ADD_DEVICE_TO_USER_SUMMARY,
description: ControllerRoute.DEVICE.ACTIONS.ADD_DEVICE_TO_USER_DESCRIPTION,
})
async addDeviceUser(@Body() addDeviceDto: AddDeviceDto) {
const device = await this.deviceService.addDeviceUser(addDeviceDto);
@@ -56,6 +61,10 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get('user/:userUuid')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.GET_DEVICES_BY_USER_SUMMARY,
description: ControllerRoute.DEVICE.ACTIONS.GET_DEVICES_BY_USER_DESCRIPTION,
})
async getDevicesByUser(@Param('userUuid') userUuid: string) {
return await this.deviceService.getDevicesByUser(userUuid);
}
@@ -63,12 +72,22 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get('space/:spaceUuid')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.GET_DEVICES_BY_SPACE_UUID_SUMMARY,
description:
ControllerRoute.DEVICE.ACTIONS.GET_DEVICES_BY_SPACE_UUID_DESCRIPTION,
})
async getDevicesByUnitId(@Param('spaceUuid') spaceUuid: string) {
return await this.deviceService.getDevicesBySpaceUuid(spaceUuid);
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard, CheckRoomGuard)
@Put('space')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.UPDATE_DEVICE_IN_ROOM_SUMMARY,
description:
ControllerRoute.DEVICE.ACTIONS.UPDATE_DEVICE_IN_ROOM_DESCRIPTION,
})
async updateDeviceInRoom(
@Body() updateDeviceInSpaceDto: UpdateDeviceInSpaceDto,
) {
@@ -87,6 +106,10 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get(':deviceUuid')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.GET_DEVICE_DETAILS_SUMMARY,
description: ControllerRoute.DEVICE.ACTIONS.GET_DEVICE_DETAILS_DESCRIPTION,
})
async getDeviceDetailsByDeviceId(
@Param('deviceUuid') deviceUuid: string,
@Req() req: any,
@@ -100,6 +123,10 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Put(':deviceUuid')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.UPDATE_DEVICE_SUMMARY,
description: ControllerRoute.DEVICE.ACTIONS.UPDATE_DEVICE_DESCRIPTION,
})
async updateDevice(
@Param('deviceUuid') deviceUuid: string,
@Body() updateDeviceDto: UpdateDeviceDto,
@@ -120,6 +147,11 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get(':deviceUuid/functions')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.GET_DEVICE_INSTRUCTION_SUMMARY,
description:
ControllerRoute.DEVICE.ACTIONS.GET_DEVICE_INSTRUCTION_DESCRIPTION,
})
async getDeviceInstructionByDeviceId(
@Param('deviceUuid') deviceUuid: string,
) {
@@ -128,6 +160,10 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get(':deviceUuid/functions/status')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.GET_DEVICE_STATUS_SUMMARY,
description: ControllerRoute.DEVICE.ACTIONS.GET_DEVICE_STATUS_DESCRIPTION,
})
async getDevicesInstructionStatus(@Param('deviceUuid') deviceUuid: string) {
return await this.deviceService.getDevicesInstructionStatus(deviceUuid);
}
@@ -135,6 +171,10 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Post(':deviceUuid/control')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.CONTROL_DEVICE_SUMMARY,
description: ControllerRoute.DEVICE.ACTIONS.CONTROL_DEVICE_DESCRIPTION,
})
async controlDevice(
@Body() controlDeviceDto: ControlDeviceDto,
@Param('deviceUuid') deviceUuid: string,
@@ -144,6 +184,11 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Post(':deviceUuid/firmware/:firmwareVersion')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.UPDATE_DEVICE_FIRMWARE_SUMMARY,
description:
ControllerRoute.DEVICE.ACTIONS.UPDATE_DEVICE_FIRMWARE_DESCRIPTION,
})
async updateDeviceFirmware(
@Param('deviceUuid') deviceUuid: string,
@Param('firmwareVersion') firmwareVersion: number,
@@ -156,12 +201,21 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get('gateway/:gatewayUuid/devices')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.GET_DEVICES_IN_GATEWAY_SUMMARY,
description:
ControllerRoute.DEVICE.ACTIONS.GET_DEVICES_IN_GATEWAY_DESCRIPTION,
})
async getDevicesInGateway(@Param('gatewayUuid') gatewayUuid: string) {
return await this.deviceService.getDevicesInGateway(gatewayUuid);
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get()
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.GET_ALL_DEVICES_SUMMARY,
description: ControllerRoute.DEVICE.ACTIONS.GET_ALL_DEVICES_DESCRIPTION,
})
async getAllDevices() {
return await this.deviceService.getAllDevices();
}
@@ -169,6 +223,10 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get('report-logs/:deviceUuid')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.GET_DEVICE_LOGS_SUMMARY,
description: ControllerRoute.DEVICE.ACTIONS.GET_DEVICE_LOGS_DESCRIPTION,
})
async getBuildingChildByUuid(
@Param('deviceUuid') deviceUuid: string,
@Query() query: GetDeviceLogsDto,
@@ -178,6 +236,11 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Post('control/batch')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.BATCH_CONTROL_DEVICES_SUMMARY,
description:
ControllerRoute.DEVICE.ACTIONS.BATCH_CONTROL_DEVICES_DESCRIPTION,
})
async batchControlDevices(
@Body() batchControlDevicesDto: BatchControlDevicesDto,
) {
@@ -186,6 +249,11 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get('status/batch')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.BATCH_STATUS_DEVICES_SUMMARY,
description:
ControllerRoute.DEVICE.ACTIONS.BATCH_STATUS_DEVICES_DESCRIPTION,
})
async batchStatusDevices(
@Query() batchStatusDevicesDto: BatchStatusDevicesDto,
) {
@@ -194,6 +262,11 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Post('factory/reset/:deviceUuid')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.BATCH_FACTORY_RESET_DEVICES_SUMMARY,
description:
ControllerRoute.DEVICE.ACTIONS.BATCH_FACTORY_RESET_DEVICES_DESCRIPTION,
})
async batchFactoryResetDevices(
@Body() batchFactoryResetDevicesDto: BatchFactoryResetDevicesDto,
) {
@@ -204,6 +277,11 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get(':powerClampUuid/power-clamp/status')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.GET_POWER_CLAMP_STATUS_SUMMARY,
description:
ControllerRoute.DEVICE.ACTIONS.GET_POWER_CLAMP_STATUS_DESCRIPTION,
})
async getPowerClampInstructionStatus(
@Param('powerClampUuid') powerClampUuid: string,
) {
@@ -213,6 +291,10 @@ export class DeviceController {
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard, CheckFourAndSixSceneDeviceTypeGuard)
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.ADD_SCENE_TO_DEVICE_SUMMARY,
description: ControllerRoute.DEVICE.ACTIONS.ADD_SCENE_TO_DEVICE_DESCRIPTION,
})
@Post(':deviceUuid/scenes')
async addSceneToSceneDevice(
@Param('deviceUuid') deviceUuid: string,
@@ -233,6 +315,11 @@ export class DeviceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard, CheckFourAndSixSceneDeviceTypeGuard)
@Get(':deviceUuid/scenes')
@ApiOperation({
summary: ControllerRoute.DEVICE.ACTIONS.GET_SCENES_BY_DEVICE_SUMMARY,
description:
ControllerRoute.DEVICE.ACTIONS.GET_SCENES_BY_DEVICE_DESCRIPTION,
})
async getScenesBySceneDevice(
@Param('deviceUuid') deviceUuid: string,
@Query() getSceneFourSceneDeviceDto: GetSceneFourSceneDeviceDto,
@@ -10,23 +10,31 @@ import {
UseGuards,
Put,
} from '@nestjs/common';
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
import { ApiTags, ApiBearerAuth, ApiOperation } 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';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
import { ControllerRoute } from '@app/common/constants/controller-route';
@ApiTags('Door Lock Module')
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: 'door-lock',
path: ControllerRoute.DOOR_LOCK.ROUTE,
})
export class DoorLockController {
constructor(private readonly doorLockService: DoorLockService) {}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Post('temporary-password/online/:doorLockUuid')
@ApiOperation({
summary:
ControllerRoute.DOOR_LOCK.ACTIONS.ADD_ONLINE_TEMPORARY_PASSWORD_SUMMARY,
description:
ControllerRoute.DOOR_LOCK.ACTIONS
.ADD_ONLINE_TEMPORARY_PASSWORD_DESCRIPTION,
})
async addOnlineTemporaryPassword(
@Body() addDoorLockDto: AddDoorLockOnlineDto,
@Param('doorLockUuid') doorLockUuid: string,
@@ -40,15 +48,24 @@ export class DoorLockController {
return {
statusCode: HttpStatus.CREATED,
success: true,
message: 'online temporary password added successfully',
message: 'Online temporary password added successfully',
data: {
id: temporaryPassword.id,
},
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Post('temporary-password/offline/one-time/:doorLockUuid')
@ApiOperation({
summary:
ControllerRoute.DOOR_LOCK.ACTIONS
.ADD_OFFLINE_ONE_TIME_TEMPORARY_PASSWORD_SUMMARY,
description:
ControllerRoute.DOOR_LOCK.ACTIONS
.ADD_OFFLINE_ONE_TIME_TEMPORARY_PASSWORD_DESCRIPTION,
})
async addOfflineOneTimeTemporaryPassword(
@Param('doorLockUuid') doorLockUuid: string,
) {
@@ -60,13 +77,22 @@ export class DoorLockController {
return {
statusCode: HttpStatus.CREATED,
success: true,
message: 'offline temporary password added successfully',
message: 'Offline one-time temporary password added successfully',
data: temporaryPassword,
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Post('temporary-password/offline/multiple-time/:doorLockUuid')
@ApiOperation({
summary:
ControllerRoute.DOOR_LOCK.ACTIONS
.ADD_OFFLINE_MULTIPLE_TIME_TEMPORARY_PASSWORD_SUMMARY,
description:
ControllerRoute.DOOR_LOCK.ACTIONS
.ADD_OFFLINE_MULTIPLE_TIME_TEMPORARY_PASSWORD_DESCRIPTION,
})
async addOfflineMultipleTimeTemporaryPassword(
@Body()
addDoorLockOfflineTempMultipleTimeDto: AddDoorLockOfflineTempMultipleTimeDto,
@@ -81,13 +107,21 @@ export class DoorLockController {
return {
statusCode: HttpStatus.CREATED,
success: true,
message: 'offline temporary password added successfully',
message: 'Offline multiple-time temporary password added successfully',
data: temporaryPassword,
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get('temporary-password/online/:doorLockUuid')
@ApiOperation({
summary:
ControllerRoute.DOOR_LOCK.ACTIONS.GET_ONLINE_TEMPORARY_PASSWORDS_SUMMARY,
description:
ControllerRoute.DOOR_LOCK.ACTIONS
.GET_ONLINE_TEMPORARY_PASSWORDS_DESCRIPTION,
})
async getOnlineTemporaryPasswords(
@Param('doorLockUuid') doorLockUuid: string,
) {
@@ -95,9 +129,18 @@ export class DoorLockController {
doorLockUuid,
);
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Delete('temporary-password/online/:doorLockUuid/:passwordId')
@ApiOperation({
summary:
ControllerRoute.DOOR_LOCK.ACTIONS
.DELETE_ONLINE_TEMPORARY_PASSWORD_SUMMARY,
description:
ControllerRoute.DOOR_LOCK.ACTIONS
.DELETE_ONLINE_TEMPORARY_PASSWORD_DESCRIPTION,
})
async deleteDoorLockPassword(
@Param('doorLockUuid') doorLockUuid: string,
@Param('passwordId') passwordId: string,
@@ -105,12 +148,21 @@ export class DoorLockController {
await this.doorLockService.deleteDoorLockPassword(doorLockUuid, passwordId);
return {
statusCode: HttpStatus.OK,
message: 'Temporary Password deleted Successfully',
message: 'Temporary password deleted successfully',
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get('temporary-password/offline/one-time/:doorLockUuid')
@ApiOperation({
summary:
ControllerRoute.DOOR_LOCK.ACTIONS
.GET_OFFLINE_ONE_TIME_TEMPORARY_PASSWORDS_SUMMARY,
description:
ControllerRoute.DOOR_LOCK.ACTIONS
.GET_OFFLINE_ONE_TIME_TEMPORARY_PASSWORDS_DESCRIPTION,
})
async getOfflineOneTimeTemporaryPasswords(
@Param('doorLockUuid') doorLockUuid: string,
) {
@@ -118,9 +170,18 @@ export class DoorLockController {
doorLockUuid,
);
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get('temporary-password/offline/multiple-time/:doorLockUuid')
@ApiOperation({
summary:
ControllerRoute.DOOR_LOCK.ACTIONS
.GET_OFFLINE_MULTIPLE_TIME_TEMPORARY_PASSWORDS_SUMMARY,
description:
ControllerRoute.DOOR_LOCK.ACTIONS
.GET_OFFLINE_MULTIPLE_TIME_TEMPORARY_PASSWORDS_DESCRIPTION,
})
async getOfflineMultipleTimeTemporaryPasswords(
@Param('doorLockUuid') doorLockUuid: string,
) {
@@ -132,9 +193,16 @@ export class DoorLockController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Put('temporary-password/:doorLockUuid/offline/:passwordId')
@ApiOperation({
summary:
ControllerRoute.DOOR_LOCK.ACTIONS
.UPDATE_OFFLINE_TEMPORARY_PASSWORD_SUMMARY,
description:
ControllerRoute.DOOR_LOCK.ACTIONS
.UPDATE_OFFLINE_TEMPORARY_PASSWORD_DESCRIPTION,
})
async updateOfflineTemporaryPassword(
@Body()
updateDoorLockOfflineTempDto: UpdateDoorLockOfflineTempDto,
@Body() updateDoorLockOfflineTempDto: UpdateDoorLockOfflineTempDto,
@Param('doorLockUuid') doorLockUuid: string,
@Param('passwordId') passwordId: string,
) {
@@ -148,20 +216,25 @@ export class DoorLockController {
return {
statusCode: HttpStatus.CREATED,
success: true,
message: 'offline temporary password updated successfully',
message: 'Offline temporary password updated successfully',
data: temporaryPassword,
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Post('open/:doorLockUuid')
@ApiOperation({
summary: ControllerRoute.DOOR_LOCK.ACTIONS.OPEN_DOOR_LOCK_SUMMARY,
description: ControllerRoute.DOOR_LOCK.ACTIONS.OPEN_DOOR_LOCK_DESCRIPTION,
})
async openDoorLock(@Param('doorLockUuid') doorLockUuid: string) {
await this.doorLockService.openDoorLock(doorLockUuid);
return {
statusCode: HttpStatus.CREATED,
success: true,
message: 'door lock opened successfully',
message: 'Door lock opened successfully',
};
}
}
+14 -2
View File
@@ -1,13 +1,14 @@
import { GroupService } from '../services/group.service';
import { Controller, Get, UseGuards, Param, Req } from '@nestjs/common';
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
import { ControllerRoute } from '@app/common/constants/controller-route'; // Assuming this is where the routes are defined
@ApiTags('Group Module')
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: 'group',
path: ControllerRoute.GROUP.ROUTE, // use the static route constant
})
export class GroupController {
constructor(private readonly groupService: GroupService) {}
@@ -15,6 +16,11 @@ export class GroupController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get(':spaceUuid')
@ApiOperation({
summary: ControllerRoute.GROUP.ACTIONS.GET_GROUPS_BY_SPACE_UUID_SUMMARY,
description:
ControllerRoute.GROUP.ACTIONS.GET_GROUPS_BY_SPACE_UUID_DESCRIPTION,
})
async getGroupsBySpaceUuid(@Param('spaceUuid') spaceUuid: string) {
return await this.groupService.getGroupsBySpaceUuid(spaceUuid);
}
@@ -22,6 +28,12 @@ export class GroupController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get(':spaceUuid/devices/:groupName')
@ApiOperation({
summary:
ControllerRoute.GROUP.ACTIONS.GET_UNIT_DEVICES_BY_GROUP_NAME_SUMMARY,
description:
ControllerRoute.GROUP.ACTIONS.GET_UNIT_DEVICES_BY_GROUP_NAME_DESCRIPTION,
})
async getUnitDevicesByGroupName(
@Param('spaceUuid') spaceUuid: string,
@Param('groupName') groupName: string,
+13 -2
View File
@@ -6,22 +6,28 @@ import {
Post,
UseGuards,
} from '@nestjs/common';
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
import { RoleService } from '../services/role.service';
import { AddUserRoleDto } from '../dtos';
import { SuperAdminRoleGuard } from 'src/guards/super.admin.role.guard';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
import { ControllerRoute } from '@app/common/constants/controller-route'; // Assuming this is where the routes are defined
@ApiTags('Role Module')
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: 'role',
path: ControllerRoute.ROLE.ROUTE, // use the static route constant
})
export class RoleController {
constructor(private readonly roleService: RoleService) {}
@ApiBearerAuth()
@UseGuards(SuperAdminRoleGuard)
@Get('types')
@ApiOperation({
summary: ControllerRoute.ROLE.ACTIONS.FETCH_ROLE_TYPES_SUMMARY,
description: ControllerRoute.ROLE.ACTIONS.FETCH_ROLE_TYPES_DESCRIPTION,
})
async fetchRoleTypes() {
const roleTypes = await this.roleService.fetchRoleTypes();
return {
@@ -30,9 +36,14 @@ export class RoleController {
data: roleTypes,
};
}
@ApiBearerAuth()
@UseGuards(SuperAdminRoleGuard)
@Post()
@ApiOperation({
summary: ControllerRoute.ROLE.ACTIONS.ADD_USER_ROLE_SUMMARY,
description: ControllerRoute.ROLE.ACTIONS.ADD_USER_ROLE_DESCRIPTION,
})
async addUserRoleType(@Body() addUserRoleDto: AddUserRoleDto) {
await this.roleService.addUserRoleType(addUserRoleDto);
return {
@@ -11,7 +11,7 @@ import {
Delete,
Query,
} from '@nestjs/common';
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
import {
AddScheduleDto,
EnableScheduleDto,
@@ -21,17 +21,24 @@ import {
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
import { ControllerRoute } from '@app/common/constants/controller-route';
@ApiTags('Schedule Module')
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: 'schedule',
path: ControllerRoute.SCHEDULE.ROUTE,
})
export class ScheduleController {
constructor(private readonly scheduleService: ScheduleService) {}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Post(':deviceUuid')
@ApiOperation({
summary: ControllerRoute.SCHEDULE.ACTIONS.ADD_DEVICE_SCHEDULE_SUMMARY,
description:
ControllerRoute.SCHEDULE.ACTIONS.ADD_DEVICE_SCHEDULE_DESCRIPTION,
})
async addDeviceSchedule(
@Param('deviceUuid') deviceUuid: string,
@Body() addScheduleDto: AddScheduleDto,
@@ -44,13 +51,21 @@ export class ScheduleController {
return {
statusCode: HttpStatus.CREATED,
success: true,
message: 'schedule added successfully',
message: 'Schedule added successfully',
data: schedule,
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get(':deviceUuid')
@ApiOperation({
summary:
ControllerRoute.SCHEDULE.ACTIONS.GET_DEVICE_SCHEDULE_BY_CATEGORY_SUMMARY,
description:
ControllerRoute.SCHEDULE.ACTIONS
.GET_DEVICE_SCHEDULE_BY_CATEGORY_DESCRIPTION,
})
async getDeviceScheduleByCategory(
@Param('deviceUuid') deviceUuid: string,
@Query() query: GetScheduleDeviceDto,
@@ -60,9 +75,15 @@ export class ScheduleController {
query.category,
);
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Delete(':deviceUuid/:scheduleId')
@ApiOperation({
summary: ControllerRoute.SCHEDULE.ACTIONS.DELETE_DEVICE_SCHEDULE_SUMMARY,
description:
ControllerRoute.SCHEDULE.ACTIONS.DELETE_DEVICE_SCHEDULE_DESCRIPTION,
})
async deleteDeviceSchedule(
@Param('deviceUuid') deviceUuid: string,
@Param('scheduleId') scheduleId: string,
@@ -71,12 +92,18 @@ export class ScheduleController {
return {
statusCode: HttpStatus.CREATED,
success: true,
message: 'schedule deleted successfully',
message: 'Schedule deleted successfully',
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Put('enable/:deviceUuid')
@ApiOperation({
summary: ControllerRoute.SCHEDULE.ACTIONS.ENABLE_DEVICE_SCHEDULE_SUMMARY,
description:
ControllerRoute.SCHEDULE.ACTIONS.ENABLE_DEVICE_SCHEDULE_DESCRIPTION,
})
async enableDeviceSchedule(
@Param('deviceUuid') deviceUuid: string,
@Body() enableScheduleDto: EnableScheduleDto,
@@ -88,12 +115,18 @@ export class ScheduleController {
return {
statusCode: HttpStatus.CREATED,
success: true,
message: 'schedule updated successfully',
message: 'Schedule updated successfully',
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Put(':deviceUuid')
@ApiOperation({
summary: ControllerRoute.SCHEDULE.ACTIONS.UPDATE_DEVICE_SCHEDULE_SUMMARY,
description:
ControllerRoute.SCHEDULE.ACTIONS.UPDATE_DEVICE_SCHEDULE_DESCRIPTION,
})
async updateDeviceSchedule(
@Param('deviceUuid') deviceUuid: string,
@Body() updateScheduleDto: UpdateScheduleDto,
@@ -106,7 +139,7 @@ export class ScheduleController {
return {
statusCode: HttpStatus.CREATED,
success: true,
message: 'schedule updated successfully',
message: 'Schedule updated successfully',
data: schedule,
};
}
@@ -1,13 +1,14 @@
import { Controller, Get, UseGuards } from '@nestjs/common';
import { TimeZoneService } from '../services/timezone.service';
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
import { JwtAuthGuard } from '../../../libs/common/src/guards/jwt.auth.guard';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
import { ControllerRoute } from '@app/common/constants/controller-route';
@ApiTags('TimeZone Module')
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: 'timezone',
path: ControllerRoute.TIMEZONE.ROUTE,
})
export class TimeZoneController {
constructor(private readonly timeZoneService: TimeZoneService) {}
@@ -15,6 +16,11 @@ export class TimeZoneController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get()
@ApiOperation({
summary: ControllerRoute.TIMEZONE.ACTIONS.GET_ALL_TIME_ZONES_SUMMARY,
description:
ControllerRoute.TIMEZONE.ACTIONS.GET_ALL_TIME_ZONES_DESCRIPTION,
})
async getAllTimeZones() {
return await this.timeZoneService.getAllTimeZones();
}
@@ -9,17 +9,18 @@ import {
Put,
UseGuards,
} from '@nestjs/common';
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
import { ApiBearerAuth, ApiTags, ApiOperation } from '@nestjs/swagger';
import { UserDevicePermissionService } from '../services/user-device-permission.service';
import { UserDevicePermissionAddDto } from '../dtos/user-device-permission.add.dto';
import { UserDevicePermissionEditDto } from '../dtos/user-device-permission.edit.dto';
import { AdminRoleGuard } from 'src/guards/admin.role.guard';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
import { ControllerRoute } from '@app/common/constants/controller-route';
@ApiTags('Device Permission Module')
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: 'device-permission',
path: ControllerRoute.DEVICE_PERMISSION.ROUTE,
})
export class UserDevicePermissionController {
constructor(
@@ -29,6 +30,11 @@ export class UserDevicePermissionController {
@ApiBearerAuth()
@UseGuards(AdminRoleGuard)
@Post()
@ApiOperation({
summary: ControllerRoute.DEVICE_PERMISSION.ACTIONS.ADD_PERMISSION_SUMMARY,
description:
ControllerRoute.DEVICE_PERMISSION.ACTIONS.ADD_PERMISSION_DESCRIPTION,
})
async addDevicePermission(
@Body() userDevicePermissionDto: UserDevicePermissionAddDto,
) {
@@ -45,6 +51,11 @@ export class UserDevicePermissionController {
@ApiBearerAuth()
@UseGuards(AdminRoleGuard)
@Put(':devicePermissionUuid')
@ApiOperation({
summary: ControllerRoute.DEVICE_PERMISSION.ACTIONS.EDIT_PERMISSION_SUMMARY,
description:
ControllerRoute.DEVICE_PERMISSION.ACTIONS.EDIT_PERMISSION_DESCRIPTION,
})
async editDevicePermission(
@Param('devicePermissionUuid') devicePermissionUuid: string,
@Body() userDevicePermissionEditDto: UserDevicePermissionEditDto,
@@ -62,6 +73,11 @@ export class UserDevicePermissionController {
@ApiBearerAuth()
@UseGuards(AdminRoleGuard)
@Get(':deviceUuid')
@ApiOperation({
summary: ControllerRoute.DEVICE_PERMISSION.ACTIONS.FETCH_PERMISSION_SUMMARY,
description:
ControllerRoute.DEVICE_PERMISSION.ACTIONS.FETCH_PERMISSION_DESCRIPTION,
})
async fetchDevicePermission(@Param('deviceUuid') deviceUuid: string) {
const deviceDetails =
await this.userDevicePermissionService.fetchUserPermission(deviceUuid);
@@ -71,9 +87,16 @@ export class UserDevicePermissionController {
data: deviceDetails,
};
}
@ApiBearerAuth()
@UseGuards(AdminRoleGuard)
@Delete(':devicePermissionUuid')
@ApiOperation({
summary:
ControllerRoute.DEVICE_PERMISSION.ACTIONS.DELETE_PERMISSION_SUMMARY,
description:
ControllerRoute.DEVICE_PERMISSION.ACTIONS.DELETE_PERMISSION_DESCRIPTION,
})
async deleteDevicePermission(
@Param('devicePermissionUuid') devicePermissionUuid: string,
) {
@@ -8,7 +8,7 @@ import {
Put,
UseGuards,
} from '@nestjs/common';
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
import { ApiBearerAuth, ApiTags, ApiOperation } from '@nestjs/swagger';
import { UserNotificationService } from '../services/user-notification.service';
import {
UserNotificationAddDto,
@@ -17,11 +17,12 @@ import {
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
import { ControllerRoute } from '@app/common/constants/controller-route';
@ApiTags('User Notification Module')
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: 'user-notification/subscription',
path: ControllerRoute.USER_NOTIFICATION.ROUTE,
})
export class UserNotificationController {
constructor(
@@ -31,6 +32,11 @@ export class UserNotificationController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Post()
@ApiOperation({
summary: ControllerRoute.USER_NOTIFICATION.ACTIONS.ADD_SUBSCRIPTION_SUMMARY,
description:
ControllerRoute.USER_NOTIFICATION.ACTIONS.ADD_SUBSCRIPTION_DESCRIPTION,
})
async addUserSubscription(
@Body() userNotificationAddDto: UserNotificationAddDto,
) {
@@ -47,6 +53,12 @@ export class UserNotificationController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get(':userUuid')
@ApiOperation({
summary:
ControllerRoute.USER_NOTIFICATION.ACTIONS.FETCH_SUBSCRIPTIONS_SUMMARY,
description:
ControllerRoute.USER_NOTIFICATION.ACTIONS.FETCH_SUBSCRIPTIONS_DESCRIPTION,
})
async fetchUserSubscriptions(@Param('userUuid') userUuid: string) {
const userDetails =
await this.userNotificationService.fetchUserSubscriptions(userUuid);
@@ -56,9 +68,16 @@ export class UserNotificationController {
data: { ...userDetails },
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Put()
@ApiOperation({
summary:
ControllerRoute.USER_NOTIFICATION.ACTIONS.UPDATE_SUBSCRIPTION_SUMMARY,
description:
ControllerRoute.USER_NOTIFICATION.ACTIONS.UPDATE_SUBSCRIPTION_DESCRIPTION,
})
async updateUserSubscription(
@Body() userNotificationUpdateDto: UserNotificationUpdateDto,
) {
@@ -40,6 +40,13 @@ export class UserSpaceController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Post('/verify-code')
@ApiOperation({
summary:
ControllerRoute.USER_SPACE.ACTIONS.VERIFY_CODE_AND_ADD_USER_SPACE_SUMMARY,
description:
ControllerRoute.USER_SPACE.ACTIONS
.VERIFY_CODE_AND_ADD_USER_SPACE_DESCRIPTION,
})
async verifyCodeAndAddUserSpace(
@Body() dto: AddUserSpaceUsingCodeDto,
@Param() params: UserParamDto,
+40 -9
View File
@@ -9,7 +9,7 @@ import {
UseGuards,
} from '@nestjs/common';
import { UserService } from '../services/user.service';
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
import { JwtAuthGuard } from '../../../libs/common/src/guards/jwt.auth.guard';
import {
UpdateNameDto,
@@ -20,11 +20,12 @@ import {
import { CheckProfilePictureGuard } from 'src/guards/profile.picture.guard';
import { SuperAdminRoleGuard } from 'src/guards/super.admin.role.guard';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
import { ControllerRoute } from '@app/common/constants/controller-route';
@ApiTags('User Module')
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: 'user',
path: ControllerRoute.USER.ROUTE,
})
export class UserController {
constructor(private readonly userService: UserService) {}
@@ -32,12 +33,22 @@ export class UserController {
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get(':userUuid')
@ApiOperation({
summary: ControllerRoute.USER.ACTIONS.GET_USER_DETAILS_SUMMARY,
description: ControllerRoute.USER.ACTIONS.GET_USER_DETAILS_DESCRIPTION,
})
async getUserDetailsByUserUuid(@Param('userUuid') userUuid: string) {
return await this.userService.getUserDetailsByUserUuid(userUuid);
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard, CheckProfilePictureGuard)
@Put('/profile-picture/:userUuid')
@ApiOperation({
summary: ControllerRoute.USER.ACTIONS.UPDATE_PROFILE_PICTURE_SUMMARY,
description:
ControllerRoute.USER.ACTIONS.UPDATE_PROFILE_PICTURE_DESCRIPTION,
})
async updateProfilePictureByUserUuid(
@Param('userUuid') userUuid: string,
@Body() updateProfilePictureDataDto: UpdateProfilePictureDataDto,
@@ -49,13 +60,18 @@ export class UserController {
return {
statusCode: HttpStatus.CREATED,
success: true,
message: 'profile picture updated successfully',
message: 'Profile picture updated successfully',
data: userData,
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Put('/region/:userUuid')
@ApiOperation({
summary: ControllerRoute.USER.ACTIONS.UPDATE_REGION_SUMMARY,
description: ControllerRoute.USER.ACTIONS.UPDATE_REGION_DESCRIPTION,
})
async updateRegionByUserUuid(
@Param('userUuid') userUuid: string,
@Body() updateRegionDataDto: UpdateRegionDataDto,
@@ -67,14 +83,19 @@ export class UserController {
return {
statusCode: HttpStatus.CREATED,
success: true,
message: 'region updated successfully',
message: 'Region updated successfully',
data: userData,
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Put('/timezone/:userUuid')
async updateNameByUserUuid(
@ApiOperation({
summary: ControllerRoute.USER.ACTIONS.UPDATE_TIMEZONE_SUMMARY,
description: ControllerRoute.USER.ACTIONS.UPDATE_TIMEZONE_DESCRIPTION,
})
async updateTimezoneByUserUuid(
@Param('userUuid') userUuid: string,
@Body() updateTimezoneDataDto: UpdateTimezoneDataDto,
) {
@@ -85,14 +106,19 @@ export class UserController {
return {
statusCode: HttpStatus.CREATED,
success: true,
message: 'timezone updated successfully',
message: 'Timezone updated successfully',
data: userData,
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Put('/name/:userUuid')
async updateTimezoneByUserUuid(
@ApiOperation({
summary: ControllerRoute.USER.ACTIONS.UPDATE_NAME_SUMMARY,
description: ControllerRoute.USER.ACTIONS.UPDATE_NAME_DESCRIPTION,
})
async updateNameByUserUuid(
@Param('userUuid') userUuid: string,
@Body() updateNameDto: UpdateNameDto,
) {
@@ -103,13 +129,18 @@ export class UserController {
return {
statusCode: HttpStatus.CREATED,
success: true,
message: 'name updated successfully',
message: 'Name updated successfully',
data: userData,
};
}
@ApiBearerAuth()
@UseGuards(SuperAdminRoleGuard)
@Delete('/:userUuid')
@ApiOperation({
summary: ControllerRoute.USER.ACTIONS.DELETE_USER_SUMMARY,
description: ControllerRoute.USER.ACTIONS.DELETE_USER_DESCRIPTION,
})
async userDelete(@Param('userUuid') userUuid: string) {
await this.userService.deleteUser(userUuid);
return {
@@ -117,7 +148,7 @@ export class UserController {
data: {
userUuid,
},
message: 'User Deleted Successfully',
message: 'User deleted successfully',
};
}
}
@@ -8,7 +8,7 @@ import {
Get,
Req,
} from '@nestjs/common';
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
import {
AddDoorLockOfflineMultipleDto,
AddDoorLockOfflineOneTimeDto,
@@ -17,19 +17,29 @@ import {
} from '../dtos/temp-pass.dto';
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
import { ControllerRoute } from '@app/common/constants/controller-route';
@ApiTags('Visitor Password Module')
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: 'visitor-password',
path: ControllerRoute.VISITOR_PASSWORD.ROUTE,
})
export class VisitorPasswordController {
constructor(
private readonly visitorPasswordService: VisitorPasswordService,
) {}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@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,
@@ -46,9 +56,18 @@ export class VisitorPasswordController {
data: temporaryPasswords,
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@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,
@@ -65,9 +84,18 @@ export class VisitorPasswordController {
data: temporaryPasswords,
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@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,
@@ -84,9 +112,18 @@ export class VisitorPasswordController {
data: temporaryPassword,
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@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,
@@ -104,15 +141,29 @@ export class VisitorPasswordController {
data: temporaryPassword,
};
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get()
@ApiOperation({
summary:
ControllerRoute.VISITOR_PASSWORD.ACTIONS.GET_VISITOR_PASSWORD_SUMMARY,
description:
ControllerRoute.VISITOR_PASSWORD.ACTIONS.GET_VISITOR_PASSWORD_DESCRIPTION,
})
async GetVisitorPassword() {
return await this.visitorPasswordService.getPasswords();
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Get('/devices')
@ApiOperation({
summary:
ControllerRoute.VISITOR_PASSWORD.ACTIONS.GET_VISITOR_DEVICES_SUMMARY,
description:
ControllerRoute.VISITOR_PASSWORD.ACTIONS.GET_VISITOR_DEVICES_DESCRIPTION,
})
async GetVisitorDevices() {
return await this.visitorPasswordService.getAllPassDevices();
}