mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-10 07:07:21 +00:00

* task: add getCommunitiesV2 * task: update getOneSpace API to match revamp structure * refactor: implement modifications to pace management APIs * refactor: remove space link
122 lines
3.9 KiB
TypeScript
122 lines
3.9 KiB
TypeScript
import {
|
|
Body,
|
|
Controller,
|
|
Delete,
|
|
Get,
|
|
Param,
|
|
Post,
|
|
Put,
|
|
Query,
|
|
UseGuards,
|
|
} from '@nestjs/common';
|
|
import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
|
|
import { AddCommunityDto } from '../dtos/add.community.dto';
|
|
import { GetCommunityParams } from '../dtos/get.community.dto';
|
|
import { UpdateCommunityNameDto } from '../dtos/update.community.dto';
|
|
import { CommunityService } from '../services/community.service';
|
|
// import { CheckUserCommunityGuard } from 'src/guards/user.community.guard';
|
|
import { ControllerRoute } from '@app/common/constants/controller-route';
|
|
import { BaseResponseDto } from '@app/common/dto/base.response.dto';
|
|
import { PaginationRequestWithSearchGetListDto } from '@app/common/dto/pagination-with-search.request.dto';
|
|
import { Permissions } from 'src/decorators/permissions.decorator';
|
|
import { PermissionsGuard } from 'src/guards/permissions.guard';
|
|
import { ProjectParam } from '../dtos';
|
|
|
|
@ApiTags('Community Module')
|
|
@Controller({
|
|
version: '1',
|
|
path: ControllerRoute.COMMUNITY.ROUTE,
|
|
})
|
|
export class CommunityController {
|
|
constructor(private readonly communityService: CommunityService) {}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('COMMUNITY_ADD')
|
|
@Post()
|
|
@ApiOperation({
|
|
summary: ControllerRoute.COMMUNITY.ACTIONS.CREATE_COMMUNITY_SUMMARY,
|
|
description: ControllerRoute.COMMUNITY.ACTIONS.CREATE_COMMUNITY_DESCRIPTION,
|
|
})
|
|
async createCommunity(
|
|
@Param() param: ProjectParam,
|
|
@Body() addCommunityDto: AddCommunityDto,
|
|
): Promise<BaseResponseDto> {
|
|
return await this.communityService.createCommunity(param, addCommunityDto);
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('COMMUNITY_VIEW')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.COMMUNITY.ACTIONS.LIST_COMMUNITY_SUMMARY,
|
|
description: ControllerRoute.COMMUNITY.ACTIONS.LIST_COMMUNITY_DESCRIPTION,
|
|
})
|
|
@Get('v2')
|
|
async getCommunitiesV2(
|
|
@Param() param: ProjectParam,
|
|
@Query() query: PaginationRequestWithSearchGetListDto,
|
|
): Promise<any> {
|
|
return this.communityService.getCommunitiesV2(param, query);
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('COMMUNITY_VIEW')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.COMMUNITY.ACTIONS.GET_COMMUNITY_BY_ID_SUMMARY,
|
|
description:
|
|
ControllerRoute.COMMUNITY.ACTIONS.GET_COMMUNITY_BY_ID_DESCRIPTION,
|
|
})
|
|
@Get('/:communityUuid')
|
|
async getCommunityByUuid(
|
|
@Param() params: GetCommunityParams,
|
|
): Promise<BaseResponseDto> {
|
|
return await this.communityService.getCommunityById(params);
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('COMMUNITY_VIEW')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.COMMUNITY.ACTIONS.LIST_COMMUNITY_SUMMARY,
|
|
description: ControllerRoute.COMMUNITY.ACTIONS.LIST_COMMUNITY_DESCRIPTION,
|
|
})
|
|
@Get()
|
|
async getCommunities(
|
|
@Param() param: ProjectParam,
|
|
@Query() query: PaginationRequestWithSearchGetListDto,
|
|
): Promise<BaseResponseDto> {
|
|
return this.communityService.getCommunities(param, query);
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('COMMUNITY_UPDATE')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.COMMUNITY.ACTIONS.UPDATE_COMMUNITY_SUMMARY,
|
|
description: ControllerRoute.COMMUNITY.ACTIONS.UPDATE_COMMUNITY_DESCRIPTION,
|
|
})
|
|
@Put('/:communityUuid')
|
|
async updateCommunity(
|
|
@Param() params: GetCommunityParams,
|
|
@Body() updateCommunityDto: UpdateCommunityNameDto,
|
|
) {
|
|
return this.communityService.updateCommunity(params, updateCommunityDto);
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('COMMUNITY_DELETE')
|
|
@Delete('/:communityUuid')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.COMMUNITY.ACTIONS.DELETE_COMMUNITY_SUMMARY,
|
|
description: ControllerRoute.COMMUNITY.ACTIONS.DELETE_COMMUNITY_DESCRIPTION,
|
|
})
|
|
async deleteCommunity(
|
|
@Param() params: GetCommunityParams,
|
|
): Promise<BaseResponseDto> {
|
|
return this.communityService.deleteCommunity(params);
|
|
}
|
|
}
|