- docs/14_NOTE-BACKEND-CONFIG-SETUP.md : modifs à faire côté back (UUID system) - configuration_service : parsing défensif des réponses d'erreur (évite JSNull) Co-authored-by: Cursor <cursoragent@cursor.com>
1.7 KiB
1.7 KiB
Ticket #14 – Note pour modifications backend
Contexte : Première connexion admin → panneau Paramètres, déblocage après clic sur « Sauvegarder ». Le front appelle POST /api/v1/configuration/setup/complete au clic sur Sauvegarder.
Problème
Erreur renvoyée par le back :
invalid input syntax for type uuid: "system"
- Le controller fait
const userId = req.user?.id || 'system'puismarkSetupCompleted(userId). - Le service
set()faitconfig.modifiePar = { id: userId }; la colonnemodifie_parest une FK UUID versusers. - La chaîne
"system"n’est pas un UUID valide → erreur PostgreSQL.
Modifications à apporter au backend
Option A – Accepter l’absence d’utilisateur (recommandé si la route peut être appelée sans JWT)
-
config.controller.ts(routecompleteSetup)- Remplacer :
const userId = req.user?.id || 'system'; - Par :
const userId = req.user?.id ?? null;
- Remplacer :
-
config.service.ts(markSetupCompleted)- Changer la signature :
async markSetupCompleted(userId: string | null): Promise<void> - Et appeler :
await this.set('setup_completed', 'true', userId ?? undefined); - Dans
set(), ne pas remplirmodifieParquanduserIdest absent (déjà le cas siif (userId)).
- Changer la signature :
Option B – Imposer un utilisateur authentifié
- Activer le guard JWT (et éventuellement RolesGuard) sur
POST /configuration/setup/completepour quereq.usersoit toujours défini, et garderuserId = req.user.id(plus de fallback'system').
Une fois le back modifié, le flux « Sauvegarder » → déblocage des panneaux fonctionne sans erreur.