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

feat(webhooks): Retrieve user organisations when creating it from rdvsp #2369

Merged

Conversation

aminedhobb
Copy link
Collaborator

⚠️ Cette PR est liée et doit être mergée après la PR associée sur rdv-sp : betagouv/rdv-service-public#4674

closes #2244

Contexte

Dans certains cas, lorsqu'un usager créé depuis rdvsp a un rdv placé sur une organisation présente dans rdv-insertion, pour une catégorie de motif gérée par l'organisation dans rdv-insertion, nous importons le rdv ainsi que l'usager sur rdv-insertion.
Cependant, lorsque l'on crée l'usager sur rdv-i, on le lie uniquement à l'organisation du rdv en question.
Or cet usager peut potentiellement déjà appartenir à plusieurs organisations déjà présentes sur rdv-i. Ainsi il en résulte un problème de synchronisation:

  • on n'affiche pas toutes ses orgas sur rdvi
  • on laisse la possibilité de l'ajouter sur ces orgas depuis rdv-i ce qui engendrera des erreurs

Implémentation

Première tentative

Une première implémentation consistait à envoyer un webhook depuis rdvsp contenant les ids des organisations, mais cela a finalement été abandonné au profit d'un endpoint spécifique à rdv-i où l'on récupère l'usager avec toutes ses organisations rdv-insertion. Les détails de peuvent être retrouvées sur la PR associée sur rdv-service-public

Nouvelle tentative

Du coup nous appelons ce nouvel endpoint lorsque nous devrons créer un usager lors du process d'un webhook de rdv.
Pour cela j'introduis un nouveau service RdvSolidaritesApi::RetrieveUser chargé d'appeler et traiter la réponse de ce nouvel endpoint côté rdvsp.

Développement annexe

Pour appeler rdvsp depuis le job, il faut définir un Current.agent pour que Current.rdv_solidarites soit défini.
J'encapsule cette logique dans une méthode d'instance agent#with_rdv_solidarites_client et l'appelle dans les endroits du code où on settait manuellement un Current.agent.

Copy link
Collaborator

@Holist Holist left a comment

Choose a reason for hiding this comment

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

Vu ensemble en visio.
LGTM 👍

@aminedhobb aminedhobb merged commit eccd042 into staging Oct 7, 2024
7 checks passed
@aminedhobb aminedhobb deleted the feat/fetch-user-organisation-ids-from-rdv-webhook branch October 7, 2024 13:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[RDV-SP] Ajouter l'usager sur l'ensemble de ses organisations quand récupéré de rdv-sp
2 participants