mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-15 10:25:23 +00:00
111 lines
3.3 KiB
TypeScript
111 lines
3.3 KiB
TypeScript
import { ControllerRoute } from '@app/common/constants/controller-route';
|
|
import {
|
|
Body,
|
|
Controller,
|
|
Delete,
|
|
Get,
|
|
Param,
|
|
Post,
|
|
Put,
|
|
Query,
|
|
UseGuards,
|
|
} from '@nestjs/common';
|
|
import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
|
|
import { SpaceModelService } from '../services';
|
|
import {
|
|
CreateSpaceModelDto,
|
|
SpaceModelParam,
|
|
UpdateSpaceModelDto,
|
|
} from '../dtos';
|
|
import { ProjectParam } from 'src/community/dtos';
|
|
import { BaseResponseDto } from '@app/common/dto/base.response.dto';
|
|
import { PermissionsGuard } from 'src/guards/permissions.guard';
|
|
import { Permissions } from 'src/decorators/permissions.decorator';
|
|
import { PaginationRequestGetListDto } from '@app/common/dto/pagination.request.dto';
|
|
|
|
@ApiTags('Space Model Module')
|
|
@Controller({
|
|
version: '1',
|
|
path: ControllerRoute.SPACE_MODEL.ROUTE,
|
|
})
|
|
export class SpaceModelController {
|
|
constructor(private readonly spaceModelService: SpaceModelService) {}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('SPACE_MODEL_ADD')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.SPACE_MODEL.ACTIONS.CREATE_SPACE_MODEL_SUMMARY,
|
|
description:
|
|
ControllerRoute.SPACE_MODEL.ACTIONS.CREATE_SPACE_MODEL_DESCRIPTION,
|
|
})
|
|
@Post()
|
|
async createSpaceModel(
|
|
@Body() createSpaceModelDto: CreateSpaceModelDto,
|
|
@Param() projectParam: ProjectParam,
|
|
): Promise<BaseResponseDto> {
|
|
return await this.spaceModelService.createSpaceModel(
|
|
createSpaceModelDto,
|
|
projectParam,
|
|
);
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('SPACE_MODEL_VIEW')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.SPACE_MODEL.ACTIONS.LIST_SPACE_MODEL_SUMMARY,
|
|
description:
|
|
ControllerRoute.SPACE_MODEL.ACTIONS.LIST_SPACE_MODEL_DESCRIPTION,
|
|
})
|
|
@Get()
|
|
async listSpaceModel(
|
|
@Param() projectParam: ProjectParam,
|
|
@Query() query: PaginationRequestGetListDto,
|
|
): Promise<BaseResponseDto> {
|
|
return await this.spaceModelService.list(projectParam, query);
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('SPACE_MODEL_VIEW')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.SPACE_MODEL.ACTIONS.LIST_SPACE_MODEL_SUMMARY,
|
|
description:
|
|
ControllerRoute.SPACE_MODEL.ACTIONS.LIST_SPACE_MODEL_DESCRIPTION,
|
|
})
|
|
@Get(':spaceModelUuid')
|
|
async get(@Param() param: SpaceModelParam): Promise<BaseResponseDto> {
|
|
return await this.spaceModelService.findOne(param);
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('SPACE_MODEL_UPDATE')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.SPACE_MODEL.ACTIONS.UPDATE_SPACE_MODEL_SUMMARY,
|
|
description:
|
|
ControllerRoute.SPACE_MODEL.ACTIONS.UPDATE_SPACE_MODEL_DESCRIPTION,
|
|
})
|
|
@Put(':spaceModelUuid')
|
|
async update(
|
|
@Body() dto: UpdateSpaceModelDto,
|
|
@Param() param: SpaceModelParam,
|
|
): Promise<BaseResponseDto> {
|
|
return await this.spaceModelService.update(dto, param);
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('SPACE_MODEL_DELETE')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.SPACE_MODEL.ACTIONS.DELETE_SPACE_MODEL_SUMMARY,
|
|
description:
|
|
ControllerRoute.SPACE_MODEL.ACTIONS.DELETE_SPACE_MODEL_DESCRIPTION,
|
|
})
|
|
@Delete(':spaceModelUuid')
|
|
async delete(@Param() param: SpaceModelParam): Promise<BaseResponseDto> {
|
|
return await this.spaceModelService.deleteSpaceModel(param);
|
|
}
|
|
}
|