import { ControllerRoute } from '@app/common/constants/controller-route'; import { EnableDisableStatusEnum } from '@app/common/constants/days.enum'; import { Controller, Get, Param, Query, UseGuards } from '@nestjs/common'; import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; import { Permissions } from 'src/decorators/permissions.decorator'; import { PermissionsGuard } from 'src/guards/permissions.guard'; import { GetDevicesFilterDto, ProjectParam } from '../dtos'; import { DeviceService } from '../services/device.service'; @ApiTags('Device Module') @Controller({ version: EnableDisableStatusEnum.ENABLED, path: ControllerRoute.DEVICE_PROJECT.ROUTE, }) export class DeviceProjectController { constructor(private readonly deviceService: DeviceService) {} @ApiBearerAuth() @UseGuards(PermissionsGuard) @Permissions('DEVICE_VIEW') @Get() @ApiOperation({ summary: ControllerRoute.DEVICE.ACTIONS.GET_ALL_DEVICES_SUMMARY, description: ControllerRoute.DEVICE.ACTIONS.GET_ALL_DEVICES_DESCRIPTION, }) async getAllDevices( @Param() param: ProjectParam, @Query() query: GetDevicesFilterDto, ) { return await this.deviceService.getAllDevices(param, query); } }