feat(auth): add profile and QR card identification endpoints

This commit is contained in:
SaidSoighiri94
2026-06-22 10:13:45 +02:00
parent 20490a05c5
commit b5a7577e8d
7 changed files with 106 additions and 5 deletions
+10 -2
View File
@@ -131,6 +131,12 @@ En terminal interactif (VS Code), `migrate dev` fonctionne normalement (taper `y
- Réutilise l'architecture en couches et l'auth simulée déjà en place.
- Vérifié au runtime : Marie 1 (`EN_COURS`, son `CLOTURE` exclu), Lucas 1 (`EN_RETARD`), Sofia 0 (son `RETOUR_NON_CONFORME` exclu), 401 sans en-tête.
### Étape 16 — Block 4 : profil et identification
- `GET /api/auth/me` (protégé) : renvoie le profil complet de l'utilisateur courant (role + campus).
- `GET /api/auth/carte/:qr` (public) : identification par QR code (RG02/RG03) ; contrôles carte active, non expirée et compte actif ; renvoie le profil.
- Refactor du routage : `currentUser` appliqué par sous-routeur (au lieu d'un middleware global) pour laisser la route d'identification publique.
- Vérifié au runtime : `/me` 200 (profil Marie) et 401 sans en-tête ; `/carte` QR valide 200 sans en-tête (route publique), QR inconnu 404.
---
## Dette technique en attente
@@ -141,8 +147,10 @@ En terminal interactif (VS Code), `migrate dev` fonctionne normalement (taper `y
2. `MaterielAccessoire` -> `@@unique([materielId, accessoireId])` (un accessoire une seule fois par matériel)
3. `Materiel.statut` -> `@default("DISPONIBLE")` (un matériel neuf est disponible, RG07)
4. Tailles de colonnes `@db.NVarChar(n)` (actuellement `NVARCHAR(1000)` partout)
5. Block 1 : middleware d'erreurs global, logs, ESLint + Prettier, Swagger/OpenAPI
5. Swagger/OpenAPI (Block 1, reporté après les endpoints)
6. Auth réelle Azure AD (Block 3) — remplacera l'auth simulée par en-tête
7. DTO de sortie : les endpoints renvoient l'entité Prisma brute (`microsoftId`, timestamps exposés) — à filtrer avant la prod
---
*Dernière mise à jour : 2026-06-18Endpoint "mes emprunts en cours" en place.*
*Dernière mise à jour : 2026-06-22Profil et identification par QR en place (3/6 du Block 4).*