Refus sans suppression #110

Closed
opened 2026-03-11 21:02:16 +00:00 by jmartin · 3 comments
Owner

Endpoint refuser (AM + famille) : enregistrer commentaire, passer en refuse, gén��rer token reprise, envoyer email (template refus + lien).

Labels : backend, api, email

Frontend (complément — câblage refus)

Le back #110 est livré ; il manque l'appel HTTP depuis l'admin lors du refus pour que le mail parte.

À faire (front)

  • Service / client HTTP : PATCH /api/v1/users/:id/refuser avec JSON { "comment": "…" } (Bearer : gestionnaire / admin), aligné sur user.controller.ts.
  • validation_am_wizard.dart : sur Envoyer du ValidationRefusForm, appeler l'endpoint avec l'UUID utilisateur du dossier AM + le commentaire, erreurs → SnackBar, succès → fermeture modale + onSuccess / rafraîchissement liste « À valider ».
  • validation_family_wizard.dart : idem avec l'id utilisateur attendu par le back pour ce dossier (ex. parent ouvert dans la modale — le même id que pour la validation).
  • Retirer les SnackBar placeholder « Refus (à brancher sur l'API refus) ».
  • Recette : refus AM + refus famille → statut refusé + e-mail reprise reçu (SMTP opérationnel).

Réf. : user.service.ts refuseUser, mail.service.ts sendRefusEmail.

Endpoint refuser (AM + famille) : enregistrer commentaire, passer en `refuse`, gén��rer token reprise, envoyer email (template refus + lien). **Labels** : backend, api, email ## Frontend (complément — câblage refus) Le back **#110** est livré ; il manque l'**appel HTTP** depuis l'admin lors du refus pour que le mail parte. ### À faire (front) - [ ] Service / client HTTP : **PATCH** `/api/v1/users/:id/refuser` avec JSON `{ "comment": "…" }` (Bearer : gestionnaire / admin), aligné sur `user.controller.ts`. - [ ] `validation_am_wizard.dart` : sur **Envoyer** du `ValidationRefusForm`, appeler l'endpoint avec l'**UUID utilisateur** du dossier AM + le commentaire, erreurs → SnackBar, succès → fermeture modale + `onSuccess` / rafraîchissement liste « À valider ». - [ ] `validation_family_wizard.dart` : idem avec l'**id utilisateur** attendu par le back pour ce dossier (ex. parent ouvert dans la modale — le même `id` que pour la validation). - [ ] Retirer les SnackBar placeholder *« Refus (à brancher sur l'API refus) »*. - [ ] Recette : refus AM + refus famille → statut refusé + e-mail **reprise** reçu (SMTP opérationnel). **Réf.** : `user.service.ts` `refuseUser`, `mail.service.ts` `sendRefusEmail`.
jmartin added the
backend
email
api
labels 2026-03-11 21:02:16 +00:00
Author
Owner

Livré : token reprise (token_reprise + token_reprise_expire_le, 7j), refuser enregistre commentaire + passe en refuse + génère token + envoie email (template refus + lien reprise). Échec email ne bloque pas le refus.

Livré : token reprise (token_reprise + token_reprise_expire_le, 7j), refuser enregistre commentaire + passe en refuse + génère token + envoie email (template refus + lien reprise). Échec email ne bloque pas le refus.
jmartin reopened this issue 2026-05-13 15:32:55 +00:00
Author
Owner

Ticket rouvert : perimetre front ajoute (PATCH users id refuser). Branche: feature/110-front-cablage-refus-api.

Ticket rouvert : perimetre front ajoute (PATCH users id refuser). Branche: feature/110-front-cablage-refus-api.
Author
Owner

Ticket #110 fermé — périmètre livré sur master (tip e168467).

Backend

  • PATCH /api/v1/users/:id/refuser : commentaire, statut refuse, token reprise (7 j), trace validation, e-mail reprise (/reprise?token=).
  • Refus dossier famille : propagation aux co-parents (même numero_dossier, même token), un mail par compte.
  • Mail refus : template aligné ; retry SMTP transitoire ; erreur API si envoi mail échoue (e168467).

Frontend

  • UserService.refuseUser + wizards validation AM / famille (formulaire refus, SnackBar succès/erreur, refresh « À valider »).
  • Famille : un seul appel API (back propage le dossier).
  • Onglet Parents : libellé Refusé + filtre statut refuse.

Recette / déploiement

  • Scripts test inscription : tests/scripts/register-*-test.mjs.
  • Suite utilisateur (correction dossier refusé) : #112.

Branche : feature/110-front-cablage-refus-api mergée dans master / develop.

Ticket **#110** fermé — périmètre livré sur **`master`** (tip `e168467`). ## Backend - `PATCH /api/v1/users/:id/refuser` : commentaire, statut `refuse`, token reprise (7 j), trace validation, e-mail reprise (`/reprise?token=`). - Refus **dossier famille** : propagation aux co-parents (même `numero_dossier`, même token), un mail par compte. - Mail refus : template aligné ; retry SMTP transitoire ; erreur API si envoi mail échoue (`e168467`). ## Frontend - `UserService.refuseUser` + wizards validation AM / famille (formulaire refus, SnackBar succès/erreur, refresh « À valider »). - Famille : un seul appel API (back propage le dossier). - Onglet Parents : libellé **Refusé** + filtre statut `refuse`. ## Recette / déploiement - Scripts test inscription : `tests/scripts/register-*-test.mjs`. - Suite utilisateur (correction dossier refusé) : **#112**. Branche : `feature/110-front-cablage-refus-api` mergée dans `master` / `develop`.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jmartin/petitspas#110
No description provided.