Aller au contenu

Investor Document

Contrôleur HTTP des documents financiers de l'investisseur (formulaires fiscaux, contrats d'obligation, Cerfa). Source : investor-document.controller.ts.

Les endpoints /investor/document/* requièrent un JWT investisseur valide (JwtAuthGuard) et le rôle CUSTOMER (UserRoleGuard). L'endpoint debug requiert une session admin valide (AdminAuthGuard).

GET /investor/document/

Retourne la liste des documents financiers de l'investisseur connecté, avec leur statut (not_requested, requested, error, stored_at_azure) et un approximateTimeInMinutes lorsque la génération est en cours. Source : investor-document.controller.ts#L30.

Response

{
  "documents": [
    {
      "id": "uuid",
      "type": "taxForm",
      "year": 2024,
      "state": { "status": "stored_at_azure" },
      "createdAt": "...",
      "updatedAt": "...",
      "investorId": "uuid"
    }
  ]
}

Type partagé : GetInvestorFinancialDocumentsResponse (getInvestorFinancialDocuments.endpoint.ts). Discriminated union sur type : taxForm, taxFormRoyalties, taxFormObligations, taxFormLoans, taxFormBoostedBalance, cerfa-2561-2024, cerfa-2561-2025, primaryPurchaseObligationContract.

Erreurs

À documenter (pas de cas d'erreur métier explicite côté contrôleur).

POST /investor/document/:docId/request

Déclenche la génération asynchrone d'un document. Met le document en état requested (avec attemptNumber incrémenté en cas de retry après erreur). Retourne le document mis à jour, enrichi de approximateTimeInMinutes. Source : investor-document.controller.ts#L46.

Path param

  • docId — UUID v4 (validé par ParseUUIDPipe)

Response

Un InvestorFinancialDocumentView (le document demandé après mise à jour).

Erreurs

Code Statut Cause
investor-document.document-not-found 404 Document inexistant ou n'appartenant pas à l'investisseur
investor-document.too-many-attempt-blocking-error 422 3 tentatives en erreur ou plus — blocage

GET /investor/document/:docId/download

Télécharge le PDF d'un document financier déjà stocké dans Azure Storage. Le PDF est récupéré, déchiffré, post-traité (concaténation contrat de propriété pour primaryPurchaseObligationContract) puis renvoyé en streaming binaire. Source : investor-document.controller.ts#L81.

Path param

  • docId — UUID v4

Response

Réponse binaire (application/pdf) avec headers :

  • Content-Type: application/pdf
  • Content-Disposition: attachment; filename="<nom>"
  • Content-Length

Erreurs

Code Statut Cause
investor-document.document-not-found 404 Document inexistant, n'appartenant pas à l'investisseur ou non encore stocké chez Azure
investor-document.post-process-error 500 Erreur de post-traitement du PDF (ex. fusion contrat)

GET /investor/document/debug-tax-form/:docId/preview-pdf

Endpoint de debug pour les admins. Régénère un PDF à partir du templateInput stocké en base et le renvoie en téléchargement, sans passer par Azure. Permet de tester rapidement un changement de template. Source : investor-document.controller.ts#L115.

Pré-conditions

  • Session admin valide (AdminAuthGuard — session better-auth avec rôle admin)

Path param

  • docId — UUID v4

Response

Réponse binaire (application/pdf), filename debug-<docId>.pdf.

Erreurs

Code Statut Cause
(vide) 404 Document inexistant
(vide) 400 Échec de génération côté pdfgenerator

Liens