Repository navigation
fix(server-nestjs): return the refreshed admin role list on create - #2834
Conversation
Legacy apps/server and the client store both expect POST /api/v1/admin/roles to answer the full role array; server-nestjs answered the created entity alone, crashing the roles screen on next .filter. Align the contract (201 + array) and the NestJS handler with the legacy behavior. Co-authored-by: Automata <automata@shikanime.studio> Signed-off-by: William Phetsinorath <william.phetsinorath-open@interieur.gouv.fr> Change-Id: Ib088d8558aea8c0d73e6104a889a08ca6a6a6964
StephaneTrebel
left a comment
There was a problem hiding this comment.
Verdict : changements demandés. Le contrat NestJS, le service et le contrôleur sont alignés sur le tableau rafraîchi attendu par le client. Cependant, cette modification du contrat commun fait échouer le test du serveur legacy (apps/server), qui renvoie encore un objet et reçoit maintenant une 500 de validation ; la CI obligatoire est rouge et il faut résoudre cette incompatibilité sans altérer le backend gelé avant approbation.
StephaneTrebel
left a comment
There was a problem hiding this comment.
Constat de CI attaché au changement de contrat.
Signed-off-by: William Phetsinorath <william.phetsinorath-open@interieur.gouv.fr> Change-Id: Ic50fb8d7e128232ac65cf051ada30a7e6a6a6964
|
StephaneTrebel
left a comment
There was a problem hiding this comment.
Verdict : approuvée. La mise à jour corrige l’incompatibilité de test : le handler legacy renvoie bien , et sa fixture de spec reflète maintenant ce tableau sans modifier son implémentation. Le test unitaire, lint, builds, Sonar et les autres checks requis sont verts sur le head .
StephaneTrebel
left a comment
There was a problem hiding this comment.
Verdict : approuvée. La mise à jour corrige l’incompatibilité de test : le handler legacy createRole renvoie bien listRoles(), et sa fixture de spec reflète maintenant ce tableau sans modifier son implémentation. Le test unitaire, lint, builds, Sonar et les autres checks requis sont verts sur le head bd69cbdf.

0 New Issues
0 Fixed Issues
0 Accepted Issues
Pourquoi
Refs #2833
La création d'un rôle admin sur une stack où
POST /api/v1/admin/rolesest servie parserver-nestjs(bascule nginx-strangler, cf. #2782) casse l'écran Rôles :TypeError: e.roles.filter is not a function.Le handler NestJS répondait l'entité créée seule, alors que le legacy
apps/server(createRole) répond la liste complète rafraîchie en 201 et que le client (apps/client/src/stores/admin-role.ts) affecte cette réponse àroles.valueviaextractData(res, 201). Le contrat ts-rest déclarait200: AdminRoleSchema(entité seule) — en désaccord avec ses deux parties, il est la source de l'écart.Quoi
createAdminRolerépond désormais201: AdminRoleSchema.array()(packages/shared/src/contracts/admin-role.ts)AdminRoleService.create(apps/server-nestjs) renvoie la liste rafraîchie des rôles après création (mappingtoAdminRolesexistant réutilisé)La position (max + 1) et l'émission
adminRole.upsertsont inchangées.Références
Related: #2833