import { ControllerRoute } from '@app/common/constants/controller-route'; import { Controller, Get, Param, Query, UseGuards } from '@nestjs/common'; import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; import { GetSpaceParam } from '../dtos'; import { BaseResponseDto } from '@app/common/dto/base.response.dto'; import { SpaceDeviceService } from '../services'; import { PermissionsGuard } from 'src/guards/permissions.guard'; import { Permissions } from 'src/decorators/permissions.decorator'; import { GetDevicesBySpaceDto } from '../dtos/device.space.dto'; @ApiTags('Space Module') @Controller({ version: '1', path: ControllerRoute.SPACE_DEVICES.ROUTE, }) export class SpaceDeviceController { constructor(private readonly spaceDeviceService: SpaceDeviceService) {} @ApiBearerAuth() @UseGuards(PermissionsGuard) @Permissions('SPACE_DEVICE_VIEW_DEVICE_IN_SPACE') @ApiOperation({ summary: ControllerRoute.SPACE_DEVICES.ACTIONS.LIST_SPACE_DEVICE_SUMMARY, description: ControllerRoute.SPACE_DEVICES.ACTIONS.LIST_SPACE_DEVICE_DESCRIPTION, }) @Get() async listDevicesInSpace( @Param() params: GetSpaceParam, @Query() query: GetDevicesBySpaceDto, ): Promise { return await this.spaceDeviceService.listDevicesInSpace(params, query); } }