add subspace controller

This commit is contained in:
hannathkadher
2024-10-28 09:53:47 +04:00
parent 6d6560b3e0
commit 74428b408e
15 changed files with 401 additions and 18 deletions

View File

@ -1,2 +1,3 @@
export * from './space.controller';
export * from './space-user.controller';
export * from './subspace.controller';

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);
}
}