27 lines
1.3 KiB
TypeScript
27 lines
1.3 KiB
TypeScript
import { Controller, Get, Param, UseGuards } from '@nestjs/common';
|
||
import { ApiOperation, ApiParam, ApiResponse, ApiTags } from '@nestjs/swagger';
|
||
import { Roles } from 'src/common/decorators/roles.decorator';
|
||
import { RoleType } from 'src/entities/users.entity';
|
||
import { AuthGuard } from 'src/common/guards/auth.guard';
|
||
import { RolesGuard } from 'src/common/guards/roles.guard';
|
||
import { DossiersService } from './dossiers.service';
|
||
import { DossierUnifieDto } from './dto/dossier-unifie.dto';
|
||
|
||
@ApiTags('Dossiers')
|
||
@Controller('dossiers')
|
||
@UseGuards(AuthGuard, RolesGuard)
|
||
export class DossiersController {
|
||
constructor(private readonly dossiersService: DossiersService) {}
|
||
|
||
@Get(':numeroDossier')
|
||
@Roles(RoleType.SUPER_ADMIN, RoleType.ADMINISTRATEUR, RoleType.GESTIONNAIRE)
|
||
@ApiOperation({ summary: 'Dossier complet par numéro (AM ou famille) – Ticket #119' })
|
||
@ApiParam({ name: 'numeroDossier', description: 'Numéro de dossier (ex: 2026-000001)' })
|
||
@ApiResponse({ status: 200, description: 'Dossier famille ou AM', type: DossierUnifieDto })
|
||
@ApiResponse({ status: 404, description: 'Aucun dossier pour ce numéro' })
|
||
@ApiResponse({ status: 403, description: 'Accès refusé' })
|
||
getDossier(@Param('numeroDossier') numeroDossier: string): Promise<DossierUnifieDto> {
|
||
return this.dossiersService.getDossierByNumero(numeroDossier);
|
||
}
|
||
}
|