import { ControllerRoute } from '@app/common/constants/controller-route'; import { Controller, Get, Param, UseGuards } from '@nestjs/common'; import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; import { BaseResponseDto } from '@app/common/dto/base.response.dto'; import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard'; import { GetProjectParam } from '../dto'; import { ProjectUserService } from '../services/project-user.service'; @ApiTags('Project Module') @Controller({ version: '1', path: ControllerRoute.PROJECT_USER.ROUTE, }) export class ProjectUserController { constructor(private readonly projectUserService: ProjectUserService) {} @ApiBearerAuth() @UseGuards(JwtAuthGuard) @ApiOperation({ summary: ControllerRoute.PROJECT.ACTIONS.GET_USER_BY_UUID_IN_PROJECT_SUMMARY, description: ControllerRoute.PROJECT.ACTIONS.GET_USER_BY_UUID_IN_PROJECT_DESCRIPTION, }) @Get() async findUsersByProject( @Param() params: GetProjectParam, ): Promise { return this.projectUserService.getUsersByProject(params.projectUuid); } @ApiBearerAuth() @UseGuards(JwtAuthGuard) @ApiOperation({ summary: ControllerRoute.PROJECT.ACTIONS.GET_USERS_BY_PROJECT_SUMMARY, description: ControllerRoute.PROJECT.ACTIONS.GET_USERS_BY_PROJECT_DESCRIPTION, }) @Get(':invitedUserUuid') async findUserByUuidInProject( @Param() params: GetProjectParam, @Param('invitedUserUuid') invitedUserUuid: string, ): Promise { return this.projectUserService.getUserByUuidInProject( params.projectUuid, invitedUserUuid, ); } }