mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-15 18:27:05 +00:00

- Introduced AqiModule with AqiService and AqiController for handling AQI data. - Added DTOs for AQI requests: GetAqiDailyBySpaceDto and GetAqiPollutantBySpaceDto. - Implemented AqiDataService for managing AQI sensor historical data. - Updated existing modules to include AqiDataService where necessary. - Defined new routes for AQI data retrieval in ControllerRoute.
65 lines
2.0 KiB
TypeScript
65 lines
2.0 KiB
TypeScript
import { Controller, Get, Param, Query, UseGuards } from '@nestjs/common';
|
|
import {
|
|
ApiTags,
|
|
ApiBearerAuth,
|
|
ApiOperation,
|
|
ApiParam,
|
|
} from '@nestjs/swagger';
|
|
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
|
|
import { ControllerRoute } from '@app/common/constants/controller-route';
|
|
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
|
|
import { AqiService } from '../services/aqi.service';
|
|
import {
|
|
GetAqiDailyBySpaceDto,
|
|
GetAqiPollutantBySpaceDto,
|
|
} from '../dto/get-aqi.dto';
|
|
import { BaseResponseDto } from '@app/common/dto/base.response.dto';
|
|
import { SpaceParamsDto } from '../dto/aqi-params.dto';
|
|
|
|
@ApiTags('AQI Module')
|
|
@Controller({
|
|
version: EnableDisableStatusEnum.ENABLED,
|
|
path: ControllerRoute.AQI.ROUTE,
|
|
})
|
|
export class AqiController {
|
|
constructor(private readonly aqiService: AqiService) {}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Get('range/space/:spaceUuid')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.AQI.ACTIONS.GET_AQI_RANGE_DATA_SUMMARY,
|
|
description: ControllerRoute.AQI.ACTIONS.GET_AQI_RANGE_DATA_DESCRIPTION,
|
|
})
|
|
@ApiParam({
|
|
name: 'spaceUuid',
|
|
description: 'UUID of the Space',
|
|
required: true,
|
|
})
|
|
async getAQIRangeDataBySpace(
|
|
@Param() params: SpaceParamsDto,
|
|
@Query() query: GetAqiDailyBySpaceDto,
|
|
): Promise<BaseResponseDto> {
|
|
return await this.aqiService.getAQIRangeDataBySpace(params, query);
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Get('distribution/space/:spaceUuid')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.AQI.ACTIONS.GET_AQI_DISTRIBUTION_DATA_SUMMARY,
|
|
description:
|
|
ControllerRoute.AQI.ACTIONS.GET_AQI_DISTRIBUTION_DATA_DESCRIPTION,
|
|
})
|
|
@ApiParam({
|
|
name: 'spaceUuid',
|
|
description: 'UUID of the Space',
|
|
required: true,
|
|
})
|
|
async getAQIDistributionDataBySpace(
|
|
@Param() params: SpaceParamsDto,
|
|
@Query() query: GetAqiPollutantBySpaceDto,
|
|
): Promise<BaseResponseDto> {
|
|
return await this.aqiService.getAQIDistributionDataBySpace(params, query);
|
|
}
|
|
}
|