Files
backend/src/user-device-permission/controllers/user-device-permission.controller.ts

112 lines
3.4 KiB
TypeScript

import {
Body,
Controller,
Delete,
Get,
HttpStatus,
Param,
Post,
Put,
UseGuards,
} from '@nestjs/common';
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: ControllerRoute.DEVICE_PERMISSION.ROUTE,
})
export class UserDevicePermissionController {
constructor(
private readonly userDevicePermissionService: UserDevicePermissionService,
) {}
@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,
) {
const addDetails = await this.userDevicePermissionService.addUserPermission(
userDevicePermissionDto,
);
return {
statusCode: HttpStatus.CREATED,
message: 'User Permission for Devices Added Successfully',
data: addDetails,
};
}
@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,
) {
await this.userDevicePermissionService.editUserPermission(
devicePermissionUuid,
userDevicePermissionEditDto,
);
return {
statusCode: HttpStatus.OK,
message: 'User Permission for Devices Updated Successfully',
};
}
@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);
return {
statusCode: HttpStatus.OK,
message: 'Device Details fetched Successfully',
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,
) {
await this.userDevicePermissionService.deleteDevicePermission(
devicePermissionUuid,
);
return {
statusCode: HttpStatus.OK,
message: 'User Permission for Devices Deleted Successfully',
};
}
}