feat: implement privacy-aware profile visibility and activity status filtering using optional authentication guard
This commit is contained in:
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user