Skip to content

BDD-15 — Consultation de la liste des fichiers deposes

📄 Ticket fonctionnel

Consulter les fichiers deja transmis

Le client externe voit directement la liste de ses depots depuis l espace upload. L objectif est de confirmer ce qui a ete transmis, quand, et avec quelle taille.

1. User Story

En tant que client externe,
Je veux consulter la liste de mes fichiers deposes,
Afin de savoir ce que j'ai transmis et quand.

2. Criteres d'acceptance

  1. La liste affiche le nom, la date de depot et la taille de chaque fichier.
  2. Les fichiers sont tries par date decroissante, du plus recent au plus ancien.
  3. La liste est accessible des la connexion.

3. Parcours utilisateur

mermaid
sequenceDiagram
    autonumber
    participant U as 👤 Client externe
    participant F as 🖥️ Front UploadPage
    participant API as 🧠 API NestJS
    participant DB as 🗄️ prisma.tool

    U->>F: Arrive sur /upload apres connexion
    F->>API: GET /documents
    API->>API: AuthGuard verifie le token et le user
    API->>DB: Recherche les documents lies a user_id
    DB-->>API: Documents tries par created_at desc
    API-->>F: uuid, name, size, created_at
    F-->>U: Affiche "Mes fichiers deposes"

4. Perimetre fonctionnel

  • Page front : front/src/pages/upload/UploadPage.vue
  • Composant d'affichage : front/src/components/documents/DocumentListItem.vue
  • Store Pinia : front/src/stores/files-store.js
  • Endpoint back : GET /documents
  • Controller back : back/src/api/documents/document.controller.ts
  • Service back : back/src/api/documents/document.service.ts
  • Modele Prisma tool : back/prisma/schema.prisma
  • Migration SQL : sql/tool_01_add_size_to_documents.sql

5. Contrat API

Requete

http
GET /documents
X-App-Access-Token: <app_access_token>

Reponse

json
[
  {
    "uuid": "11111111-1111-4111-8111-111111111111",
    "name": "export-client.csv",
    "size": 15432,
    "created_at": "2026-04-16T08:12:00.000Z"
  }
]

INFO

Le backend retourne uniquement les documents rattaches a l'utilisateur connecte via users_documents. La taille est convertie en number avant retour API, car Prisma expose le champ BigInt. L'API expose le uuid public du document. L'ID numerique interne reste reserve aux jointures base de donnees.

6. Points de verification

  • La section Mes fichiers deposes est visible sur /upload apres connexion.
  • Un chargement est affiche pendant l'appel GET /documents.
  • Un etat vide Aucun fichier depose. est affiche si l'utilisateur n'a encore transmis aucun fichier.
  • Chaque ligne affiche le nom du fichier, son extension, la date formatee et la taille.
  • Les fichiers sont affiches dans l'ordre created_at DESC.
  • Apres un upload reussi, la liste est rechargee pour inclure le nouveau fichier.
  • Un utilisateur ne voit que ses propres fichiers.

7. Tests associes

  • Tests unitaires front :
    • front/src/__tests__/pages/upload/UploadPage.spec.js
    • front/src/__tests__/components/documents/DocumentListItem.spec.js
    • front/src/__tests__/stores/files-store.spec.js
  • Tests unitaires back :
    • back/src/api/documents/document.service.spec.ts
  • Tests E2E recommandes :
    • connexion reelle -> acces /upload -> affichage de Mes fichiers deposes
    • liste non vide -> verification nom/date/taille
    • upload reussi -> rafraichissement de la liste
    • utilisateur sans document -> etat vide