mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-10 07:07:21 +00:00
89 lines
2.5 KiB
TypeScript
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',
|
|
};
|
|
}
|
|
}
|