subspace endpoints

This commit is contained in:
hannathkadher
2024-10-29 13:13:44 +04:00
parent 74428b408e
commit eb77f8ab99
13 changed files with 275 additions and 26 deletions

View File

@ -0,0 +1,91 @@
import { ControllerRoute } from '@app/common/constants/controller-route';
import {
Body,
Controller,
Delete,
Get,
Param,
Post,
Put,
Query,
UseGuards,
} from '@nestjs/common';
import { SubSpaceService } from '../../services';
import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
import { AddSubspaceDto, GetSpaceParam, GetSubSpaceParam } from '../../dtos';
import { BaseResponseDto } from '@app/common/dto/base.response.dto';
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
import { PaginationRequestGetListDto } from '@app/common/dto/pagination.request.dto';
@ApiTags('Space Module')
@Controller({
version: '1',
path: ControllerRoute.SUBSPACE.ROUTE,
})
export class SubSpaceController {
constructor(private readonly subSpaceService: SubSpaceService) {}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Post()
@ApiOperation({
summary: ControllerRoute.SUBSPACE.ACTIONS.CREATE_SUBSPACE_SUMMARY,
description: ControllerRoute.SUBSPACE.ACTIONS.CREATE_SUBSPACE_DESCRIPTION,
})
async createSubspace(
@Param() params: GetSpaceParam,
@Body() addSubspaceDto: AddSubspaceDto,
): Promise<BaseResponseDto> {
return this.subSpaceService.createSubspace(addSubspaceDto, params);
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@ApiOperation({
summary: ControllerRoute.SUBSPACE.ACTIONS.LIST_SUBSPACES_SUMMARY,
description: ControllerRoute.SUBSPACE.ACTIONS.LIST_SUBSPACES_DESCRIPTION,
})
@Get()
async list(
@Param() params: GetSpaceParam,
@Query() query: PaginationRequestGetListDto,
): Promise<BaseResponseDto> {
return this.subSpaceService.list(params, query);
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@ApiOperation({
summary: ControllerRoute.SUBSPACE.ACTIONS.GET_SUBSPACE_SUMMARY,
description: ControllerRoute.SUBSPACE.ACTIONS.GET_SUBSPACE_DESCRIPTION,
})
@Get(':subSpaceUuid')
async findOne(@Param() params: GetSubSpaceParam): Promise<BaseResponseDto> {
return this.subSpaceService.findOne(params);
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@ApiOperation({
summary: ControllerRoute.SUBSPACE.ACTIONS.UPDATE_SUBSPACE_SUMMARY,
description: ControllerRoute.SUBSPACE.ACTIONS.UPDATE_SUBSPACE_DESCRIPTION,
})
@Put(':subSpaceUuid')
async updateSubspace(
@Param() params: GetSubSpaceParam,
@Body() updateSubSpaceDto: AddSubspaceDto,
): Promise<BaseResponseDto> {
return this.subSpaceService.updateSubSpace(params, updateSubSpaceDto);
}
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@ApiOperation({
summary: ControllerRoute.SUBSPACE.ACTIONS.DELETE_SUBSPACE_SUMMARY,
description: ControllerRoute.SUBSPACE.ACTIONS.DELETE_SUBSPACE_DESCRIPTION,
})
@Delete(':subSpaceUuid')
async delete(@Param() params: GetSubSpaceParam): Promise<BaseResponseDto> {
return this.subSpaceService.delete(params);
}
}