Files
backend/src/user-device-permission/controllers/user-device-permission.controller.ts
2024-10-08 10:59:31 +03:00

89 lines
2.5 KiB
TypeScript

import {
Body,
Controller,
Delete,
Get,
HttpStatus,
Param,
Post,
Put,
UseGuards,
} from '@nestjs/common';
import { ApiBearerAuth, ApiTags } 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';
@ApiTags('Device Permission Module')
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: 'device-permission',
})
export class UserDevicePermissionController {
constructor(
private readonly userDevicePermissionService: UserDevicePermissionService,
) {}
@ApiBearerAuth()
@UseGuards(AdminRoleGuard)
@Post()
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')
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')
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')
async deleteDevicePermission(
@Param('devicePermissionUuid') devicePermissionUuid: string,
) {
await this.userDevicePermissionService.deleteDevicePermission(
devicePermissionUuid,
);
return {
statusCode: HttpStatus.OK,
message: 'User Permission for Devices Deleted Successfully',
};
}
}