feat: implement privacy-aware profile visibility and activity status filtering using optional authentication guard

This commit is contained in:
pradeepkumar
2026-03-28 18:46:49 +05:30
parent ba931c350b
commit a71145f6a6
8 changed files with 235 additions and 38 deletions

View File

@@ -7,6 +7,7 @@ import {
Body,
Param,
Query,
Req,
UseGuards,
ParseUUIDPipe,
} from '@nestjs/common';
@@ -25,6 +26,7 @@ import {
} from './dto';
import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard';
import { RolesGuard } from '../auth/guards/roles.guard';
import { OptionalAuthGuard } from '../auth/guards/optional-auth.guard';
import { Roles } from '../auth/decorators/roles.decorator';
import { Public } from '../auth/decorators/public.decorator';
import { CurrentUser } from '../auth/decorators/current-user.decorator';
@@ -243,11 +245,13 @@ export class AgentsController {
// Public parameterized routes - MUST come after specific routes like profile/*
@Get(':id')
@Public()
@UseGuards(OptionalAuthGuard)
@ApiOperation({ summary: 'Get agent profile by ID' })
@ApiResponse({ status: 200, description: 'Agent profile retrieved successfully' })
@ApiResponse({ status: 404, description: 'Agent profile not found' })
async getAgentById(@Param('id', ParseUUIDPipe) id: string) {
return this.agentsService.getProfileById(id);
async getAgentById(@Param('id', ParseUUIDPipe) id: string, @Req() req: any) {
const requestingUserId = req.user?.id || null;
return this.agentsService.getProfileById(id, requestingUserId);
}
@Get(':id/field-values')