[FEATURE] Récupérer les CGU de l'utilisateur de Pix Certif en passant par le nouveau modèle (PIX-22441) - #17404
Conversation
|
Choisir les applications à déployer :
Important N'oubliez pas de déployer l'API pour pouvoir accéder aux fronts et/ou à l’API MaDDo. |
9843676 to
ce45934
Compare
8c71f02 to
0cfd9b5
Compare
65c1f11 to
9877f5a
Compare
5cfc35a to
8eab17f
Compare
8eab17f to
73249e1
Compare
…e status logic Co-authored-by: Widy Martial <widy.martial@pix.fr>
Co-authored-by: Widy Martial <widy.martial@pix.fr>
…lled by repository and domain builder
Co-authored-by: Widy Martial <widy.martial@pix.fr>
…orizedCenterIds method Co-authored-by: Widy Martial <widy.martial@pix.fr>
73249e1 to
e7dad94
Compare
There was a problem hiding this comment.
L’API interne legal documents laisse sortir des instances des models de son domain, est-ce qu’elle ne devrait pas les mapper vers des models propres à son API tel que défini ici ?
Dans cette PR, on voit que le fait de faire sortir les models du domain a déjà posé un peu problème (on a du ajouter le getter LegalDocumentStatus.isAccepted), et encore cela a beaucoup été minimisé car on a travaillé essentiellement dans le dossier deprecated qui n’est pas soumi à l’interdiction de cross contexte.
Oui tout à fait d'accord ! Je propose d'en faire un ticket dédié qui couvre les 4 consommateurs de cette api d'un coup, plutôt que de patcher uniquement le cas ajouté ici. |
# [5.499.0](v5.498.1...v5.499.0) (2026-09-10) ### 🚀 Amélioration - [#17418](#17418) Ajouter l'ID de la catégorie à la modification d'organisations en masse (PIX-23565) - [#17452](#17452) Ajouter un sélecteur de catégorie sur la fiche d'édition d'une organisation (PIX-23563) - [#17429](#17429) migration pour remettre des contraintes "not nullable" supprimés par inadvertance (PIX-24132) - [#17404](#17404) Récupérer les CGU de l'utilisateur de Pix Certif en passant par le nouveau modèle (PIX-22441) ### 🐛 Correction - [#17460](#17460) Ne pas jeter d'erreur 500 lors de la concurrence de création d'invitation à un CDC (PIX-24219) ### 🏗️ Tech - [#17410](#17410) Créer un script permettant l'ajout des ids de contenus formatifs pour la mise en avant en fin de parcours (PIX-24009). - [#17070](#17070) Déplacer le pré-handler d'Assessment dans shared - [#17394](#17394) Ne pas stocker de timestamp pour la révocation de session (PIX-24133) ### ⬆️ Montée de version - [#17419](#17419) Update dependency @1024pix/pix-ui to ^68.1.1 (mon-pix) - [#17462](#17462) Update dependency @1024pix/pix-ui to ^68.1.3 (junior) - [#17428](#17428) Update dependency @testing-library/user-event to ^14.6.6 (mon-pix) - [#17449](#17449) Update dependency @testing-library/user-event to ^14.6.7 (mon-pix) - [#17445](#17445) Update dependency @xmldom/xmldom to >=0.9.12 (admin) [SECURITY] - [#17446](#17446) Update dependency @xmldom/xmldom to >=0.9.12 (certif) [SECURITY] - [#17369](#17369) Update dependency js-yaml to v5.2.2 [SECURITY] - [#17442](#17442) Update dependency nodemailer to v9.1.1 [SECURITY] - [#17447](#17447) Update dependency protobufjs to >=8.6.6 (api) [SECURITY] - [#17440](#17440) Update dependency vitest to v4.1.11 [SECURITY]
|
🎉 This PR is included in version 5.499.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
☀️ Problème
Afin de mettre en place le versionnement des CGU de Pix Certif, il est nécessaire de modifier la route /.../me permettant de récupérer leur valeur afin de se baser sur le nouveau modèle.
⛱️ Proposition
Sur l’appel GET /api/certif.../me, récupérer les informations de CGU en appelant la nouvelle API interne getLegalDocumentStatusByUserId du contexte legal-document
🧴 Remarques
Nous n'avons pas pu importer la constante "STATUS" du modèle LegalDocumentStatus(Domain : Legal Documents) dans le modèle CertificationPointOfContact (Domain : Organizational entitie) .
Solution : Création d'un getter pour rendre la propriété 'isAccepted' accessible depuis l'extérieure.
🏊 Pour tester (plus facile en local)
api/certification-point-of-contacts/me:-- pix-certif-terms-of-service-accepted
-- last-pix-certif-terms-of-service-validated-at
-- pix-certif-terms-of-service-status
-- pix-certif-terms-of-service-document-path
-- Deux versions de
legal-documentdu legal-document "Pix Certif" ont été rajoutées dans les seeds, il faut récupérer leurs versions.[ACCEPTED]-- l'utilisateur a accepté les CGU actuelles
Connectez-vous avec un utilisateur (certacces@example.net) ayant accepté les cgu (ancien modèle) et RECUPEREZ L'ID DE L'UTILISATEUR
Constatez que l'utilisateur est redirigé vers sa homepage, avec
pix-certif-terms-of-service-accepted=true,pix-certif-terms-of-service-status = "accepted",last-pix-certif-terms-of-service-validated-at=<date de validation>,pix-certif-terms-of-service-document-path=nullsur la routeapi/certification-point-of-contacts/meDéconnectez-vous.
[REQUESTED]-- l'utilisateur n'a jamais accepté les CGU.
Faites un update sur la table users :
UPDATE "users"
SET ("pixCertifTermsOfServiceAccepted", "lastPixCertifTermsOfServiceValidatedAt") = (false, null) WHERE id = <id de l'utilisateur>;
Constatez qu'à la connexion, vous êtes redirigé vers la page de validation de CGU avec
avec
pix-certif-terms-of-service-accepted=false,pix-certif-terms-of-service-status = "requested",last-pix-certif-terms-of-service-validated-at=null,pix-certif-terms-of-service-document-path=nullsur la routeapi/certification-point-of-contacts/meAnnulez.
[REQUESTED]-- L'utilisateur n'a jamais accepté les CGU
Connectez-vous avec certacces@example.net
Constatez que vous êtes redirigés vers la page de signature des CGU et que la route
api/certification-point-of-contacts/merenvoiepix-certif-terms-of-service-accepted=false,pix-certif-terms-of-service-status = "requested",last-pix-certif-terms-of-service-validated-at=null,pix-certif-terms-of-service-document-path=pix-certif-tos-2021-01-01sur la routeapi/certification-point-of-contacts/meAnnulez.
[ACCEPTED]-- l'utilisateur a accepté les CGU actuelles
Ajoutez une acceptance dans la table legal-document-version-user-acceptances :
INSERT INTO "legal-document-version-user-acceptances" ("legalDocumentVersionId", "userId", "acceptedAt") VALUES (1005, < userId >, now());
Constatez que l'utilisateur est redirigé vers sa homepage, avec
pix-certif-terms-of-service-accepted=true,pix-certif-terms-of-service-status = "accepted",last-pix-certif-terms-of-service-validated-at=<date de validation>,pix-certif-terms-of-service-document-path=pix-certif-tos-2021-01-01sur la routeapi/certification-point-of-contacts/meDéconnectez-vous.
[UPDATE_REQUESTED]-- L'utilisateur n'a pas accepté la dernière version des CGU
Faire un update sur l'acceptance que vous venez d'insérer en base :
UPDATE "legal-document-version-user-acceptances" SET "legalDocumentVersionId" = 1004 WHERE "legalDocumentVersionId" = 1005;
Puis connectez-vous, constatez que l'utilisateur est redirigé vers la page d'acceptation des cgu, avec
pix-certif-terms-of-service-accepted=false,pix-certif-terms-of-service-status = "update-requested",last-pix-certif-terms-of-service-validated-at=null,pix-certif-terms-of-service-document-path=pix-certif-2021-01-01sur la routeapi/certification-point-of-contacts/me=> last-terms-of-service-validated-at est ramené à null dans ce cas car dans le modèle
CertificationPointOfContact, la valeur deacceptedAt(qui est nulle quand le statut est UPDATE_REQUESTED) est reportée sur lelast-PixCertifTerms-of-service-validated-at