import { ControllerRoute } from '@app/common/constants/controller-route'; import { Body, Controller, Param, Post, UseGuards } from '@nestjs/common'; import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; import { BaseResponseDto } from '@app/common/dto/base.response.dto'; import { ValidationService } from '../services'; import { ValidateSpacesDto } from '../dtos/validation.space.dto'; import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard'; import { ProjectParam } from '../dtos'; @ApiTags('Space Module') @Controller({ version: '1', path: ControllerRoute.SPACE_VALIDATION.ROUTE, }) export class SpaceValidationController { constructor(private readonly validationService: ValidationService) {} @ApiBearerAuth() @UseGuards(JwtAuthGuard) @ApiOperation({ summary: ControllerRoute.SPACE_VALIDATION.ACTIONS .VALIDATE_SPACE_WITH_DEVICES_OR_SUBSPACES_SUMMARY, description: ControllerRoute.SPACE_VALIDATION.ACTIONS .VALIDATE_SPACE_WITH_DEVICES_OR_SUBSPACES_DESCRIPTION, }) @Post('validate') async validateSpaces( @Body() validateSpacesDto: ValidateSpacesDto, @Param() projectParam: ProjectParam, ): Promise { return this.validationService.validateSpacesWithDevicesOrSubspaces( validateSpacesDto, projectParam, ); } }