Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Modifier l’API permettant d’accepter les CGU afin de fonctionner avec le nouveau modèle (PIX-15588) #10894

Open
wants to merge 4 commits into
base: dev
Choose a base branch
from

Conversation

lego-technix
Copy link
Contributor

@lego-technix lego-technix commented Dec 23, 2024

🎄 Problème

Afin de mettre en place le versionement des CGU de Pix Orga, il est nécessaire de modifier l’API permettant d’accepter les CGU afin de fonctionner avec le nouveau modèle.

🎁 Proposition

Pour la route PATCH /api/users/{id}/pix-orga-terms-of-service-acceptance, modifier le use case api/src/identity-access-management/domain/usecases/accept-pix-orga-terms-of-service.usecase.js pour modifier les informations de CGU en se basant sur la nouvelle API acceptLegalDocumentByUserId du contexte legal-document.

Pour simplifier le code on propose également de changer la valeur et le status code HTTP de retour de userController.acceptPixOrgaTermsOfService pour qu'il n'y ait pas de valeur de retour et que le status code HTTP soit 204. Cela est compatible avec la manière dont le code Ember du Front Pix Orga est réalisé, mais c'est un point qu'il faudra bien vérifier avec des tests de non-régression.

🧦 Remarques

  • ⚠️ Le usecase api/src/legal-documents/domain/usecases/accept-legal-document-by-user-id.usecase.js ne tire pas parti du feature flag isLegalDocumentsVersioningEnabled comme le fait le usecase api/src/legal-documents/domain/usecases/get-legal-document-status-by-user-id.usecase.js. Mais il nous semble que tirer parti du feature flag aussi bien à la récupération qu'à la modification assurerait la non-interférence complète du nouveau code en production. Ce qui correspond à ce qu'on attend de l'utilisation d'un tel feature flag. Cette PR ne contient pas encore cette modification car cela n'avait pas été décidé ainsi au craquage. Point à discuter donc avant de finaliser cette PR.
  • Un dernier commit a été ajouté pour rendre les usecases du context « legal documents » transactionnels.

🎅 Pour tester

Tester d'abord avec des CGU non-existantes dans le nouveau modèle

  1. Faire une invitation à Pix Orga (par exemple depuis Pix Admin avec le compte [email protected]) à un utilisateur non-existant (par exemple [email protected])
  2. Accepter cette invitation en créant un nouveau compte (Je m’inscris) et en acceptant les CGU
  3. Vérifier que la route /api/users/{id}/pix-orga-terms-of-service-acceptance est appelée sans erreur
  4. Vérifier que la table users a bien été modifiée et que le nouvel utilisateur a été créé avec les valeurs suivantes :
    • pixOrgaTermsOfServiceAccepted true
    • lastPixOrgaTermsOfServiceValidatedAt avec la bonne date de création
select "id", "email", "username", "createdAt", "updatedAt", "pixOrgaTermsOfServiceAccepted", "lastPixOrgaTermsOfServiceValidatedAt" from "users" order by "updatedAt" desc limit 1;

Tester ensuite avec des CGU existantes dans le nouveau modèle

  1. Créer au préalable les CGU de Pix Orga avec le nouveau modèle avec la commande suivante :
node src/legal-documents/scripts/add-new-legal-document-version.js --type 'TOS' --service 'pix-orga' --versionAt '2024-01-02'
  1. Faire une invitation à Pix Orga (par exemple depuis Pix Admin avec le compte [email protected]) à un utilisateur non-existant (par exemple [email protected])
  2. Accepter cette invitation en créant un nouveau compte (Je m’inscris) et en acceptant les CGU
  3. Vérifier que la route /api/users/{id}/pix-orga-terms-of-service-acceptance est appelée sans erreur
  4. Vérifier que la table users et aussi la table legal-document-version-user-acceptances ont bien été modifiées.

Vérifier que le nouvel utilisateur a été avec les valeurs suivantes :

  • pixOrgaTermsOfServiceAccepted true
  • lastPixOrgaTermsOfServiceValidatedAt avec la bonne date de création
select "id", "email", "username", "createdAt", "updatedAt", "pixOrgaTermsOfServiceAccepted", "lastPixOrgaTermsOfServiceValidatedAt" from "users" order by "updatedAt" desc limit 1;

Vérifier que l'acceptation des CGU a bien été enregistrée pour cet utilisateur avec l'acceptation avec la bonne valeur acceptedAt :

select * from "legal-document-version-user-acceptances";

@lego-technix lego-technix self-assigned this Dec 23, 2024
@lego-technix lego-technix requested a review from a team as a code owner December 23, 2024 16:56
@pix-bot-github
Copy link

Une fois les applications déployées, elles seront accessibles via les liens suivants :

Les variables d'environnement seront accessibles via les liens suivants :

@lego-technix lego-technix force-pushed the pix-15588-update-pix-orga-call-to-accept-TOS branch from e59f8d1 to b3f4598 Compare December 27, 2024 10:23
@lego-technix lego-technix changed the title [FEATURE] PIX-15588 Modifier l'appel Pix Orga qui accepte les CGU (PIX-15588) [FEATURE] Modifier l’API permettant d’accepter les CGU afin de fonctionner avec le nouveau modèle (PIX-15588) Dec 27, 2024
Copy link
Contributor

@EmmanuelleBonnemay EmmanuelleBonnemay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lu et testé avec succès

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants