mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-17 03:05:13 +00:00
72 lines
2.2 KiB
TypeScript
72 lines
2.2 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 { OccupancyService } from '../services/occupancy.service';
|
|
import {
|
|
GetOccupancyDurationBySpaceDto,
|
|
GetOccupancyHeatMapBySpaceDto,
|
|
} from '../dto/get-occupancy.dto';
|
|
import { BaseResponseDto } from '@app/common/dto/base.response.dto';
|
|
import { SpaceParamsDto } from '../dto/occupancy-params.dto';
|
|
|
|
@ApiTags('Occupancy Module')
|
|
@Controller({
|
|
version: EnableDisableStatusEnum.ENABLED,
|
|
path: ControllerRoute.Occupancy.ROUTE,
|
|
})
|
|
export class OccupancyController {
|
|
constructor(private readonly occupancyService: OccupancyService) {}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Get('heat-map/space/:spaceUuid')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.Occupancy.ACTIONS.GET_OCCUPANCY_HEAT_MAP_SUMMARY,
|
|
description:
|
|
ControllerRoute.Occupancy.ACTIONS.GET_OCCUPANCY_HEAT_MAP_DESCRIPTION,
|
|
})
|
|
@ApiParam({
|
|
name: 'spaceUuid',
|
|
description: 'UUID of the Space',
|
|
required: true,
|
|
})
|
|
async getOccupancyHeatMapDataBySpace(
|
|
@Param() params: SpaceParamsDto,
|
|
@Query() query: GetOccupancyHeatMapBySpaceDto,
|
|
): Promise<BaseResponseDto> {
|
|
return await this.occupancyService.getOccupancyHeatMapDataBySpace(
|
|
params,
|
|
query,
|
|
);
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Get('duration/space/:spaceUuid')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.Occupancy.ACTIONS.GET_OCCUPANCY_HEAT_MAP_SUMMARY,
|
|
description:
|
|
ControllerRoute.Occupancy.ACTIONS.GET_OCCUPANCY_HEAT_MAP_DESCRIPTION,
|
|
})
|
|
@ApiParam({
|
|
name: 'spaceUuid',
|
|
description: 'UUID of the Space',
|
|
required: true,
|
|
})
|
|
async getOccupancyDurationDataBySpace(
|
|
@Param() params: SpaceParamsDto,
|
|
@Query() query: GetOccupancyDurationBySpaceDto,
|
|
): Promise<BaseResponseDto> {
|
|
return await this.occupancyService.getOccupancyDurationDataBySpace(
|
|
params,
|
|
query,
|
|
);
|
|
}
|
|
}
|