You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
🐛 [BUG] - Création de rôle admin : le crash client e.roles.filter suit la réponse NestJS (entité seule) au lieu de la liste legacy #2833
L'ouverture de la page Administration > Rôles et la création d'un rôle via POST /api/v1/admin/roles servie par server-nestjs (bascule nginx-strangler) provoquent un crash client : TypeError: e.roles.filter is not a function.
Déclencheur : le handler NestJS renvoie l'entité créée seule, alors que le legacy apps/server (createRole, apps/server/src/resources/admin-role/business.ts) renvoie la liste complète rafraîchie (return listRoles()) avec un statut 201. Le client (apps/client/src/stores/admin-role.ts, createRole) affecte la réponse à roles.value via extractData(res, 201) : l'objet unique atterrit dans le store et le prochain .filter échoue.
Impact : toute création de rôle casse l'écran Rôles jusqu'à un rechargement complet, tant que la route est servie par NestJS. Le contrat ts-rest déclare 200: AdminRoleSchema (entité seule), en désaccord avec le client et le legacy — le contrat est la source de l'écart.
Observer TypeError: e.roles.filter is not a function et l'écran cassé
Comportement attendu
Selon le comportement legacy de référence et le consommateur client, POST /api/v1/admin/roles devrait répondre 201 avec la liste complète des rôles (AdminRole[]), comme le fait apps/server : roles.value reçoit un tableau et l'écran reste fonctionnel.
Logs
TypeError: e.roles.filter is not a function
at createRole (apps/client/src/stores/admin-role.ts:33)
Observé également : réponse NestJS {"id":"…","name":"Nouveau rôle",…} (objet unique) vs réponse legacy : tableau complet incluant le rôle créé.
Environnement
Stack preview PR #2782 (routage nginx-strangler vers server-nestjs).
Définition du fini
Le contrat createAdminRole (packages/shared/src/contracts/admin-role.ts) déclare 201: AdminRoleSchema.array()
AdminRoleService.create (apps/server-nestjs) renvoie la liste rafraîchie des rôles après création
Des specs verrouillent la forme de réponse (liste complète, pas l'entité seule)
La création d'un rôle depuis l'écran Rôles ne provoque plus d'erreur client
La communication avec les autres équipes impliquées par ce correctif a été faite
Références
Handler legacy de référence : apps/server/src/resources/admin-role/business.ts — createRole (return listRoles())
Activity