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

[OILHI - Interfaçage] Socle technique envoi de données #1969

Merged
merged 6 commits into from
Nov 28, 2023

Conversation

sfinx13
Copy link
Collaborator

@sfinx13 sfinx13 commented Nov 27, 2023

Ticket

#1810

Description

Environnement technique Oilhi

Oilhi est développé par une stack no-code

  • Glide : Plateforme de développement d'applications web et mobiles no-code.
  • Airtable : Base de données en ligne avec une interface de type feuille de calcul.
  • Zapier : Plateforme d'automatisation qui permet de connecter différentes applications et de créer des workflows automatisés (appelés "Zaps").

Architecture d'échange

Et sur ce dernier outil (Zapier) qu'Histologe va s'appuyer pour s'interconnecter avec Oilhi en exposant un endpoint via ce qu'on appelle un zap, qui est une étape du workflow.

Requête
POST https://hooks.zapier.com/hooks/catch/{{zapier_user_id}}/{{zapier_zap_id}}/

Payload

{
    "signalementUrl": "{{$randomUrl}}",
    "signalementId": "{{$randomUUID}}",
    "partnerId": "{{$randomUUID}}",
    "token": "{{oilhi_token}}"
}

L'objectif de cette automatisation est de pousser des données de manière sécurisé vers la base de données de Oilhi qui est Airtable.

Note

Pour des raisons de simplicité, Zapier Table, intégré de base, sera utilisé comme base de données afin de tester le workflow. Il sera remplacé par Airtable des les premiers tests d'intégrations

Etape du workflow (zap)

image

  1. Webhooks by Zapier : Recevoir des données externes et les intégrer dans le workflow zapier

  2. Filter : Filtrer les données reçues par le webhook pour s'assurer que seules les informations pertinentes sont traitées, ici il sera utilisé afin de vérifier que le token échangé est valide

  3. Zapier Table (Tests) : Stocker et visualiser les résultats du workflow à des fins de test et de débogage.

Changements apportés

  • Ajout de nouvelles variables d'environnements
ZAPIER_OILHI_TOKEN=
ZAPIER_OILHI_USER_ID=
ZAPIER_OILHI_CREATE_AIRTABLE_RECORD_ZAP_ID=
  • Mise à jour des namespace Esabora dans les services Messenger et Factory afin de faire la distinction entre les différents partenaires (Oilhi et Esabora).

    • App\Factory devient App\Factory\Esabora
    • App\Messenger\Message devient App\Messenger\Message\Esabora
    • App\Messenger\MessageHandler devient App\Messenger\MessageHandler\Esabora
  • Implémentation du Service HookZapierService afin de communiquer avec les webhooks zapier

  • Initialisation du message et du handler afin d'envoyer les données en asynchrone lors de l'affectation d'un partenaire SCHS du 62

  • Mise à jour disposition d'un endpoint webhook de test qui pousse des données dans Zapier table

Pré-requis

  • Récupérer les valeurs des variables d'environnements
  • Importer la collection histologe POSTMAN mise à jour
  • Ouvrir un onglet zapier table
  • Pour les tests de regression.
    • make worker-start
    • make mock-start

Pour les tests de régression

Tests

  • (Régression) J'affecte un partenaire SCHS (affection OK et log de l'appel dans job_event en succès )
  • (Régression) J'affecte un partenaire SISH (affection OK et log de l'appel dans job_event en succès)
  • (Régression) J’exécute la commande app:sync-esabora-schs
  • (Régression) J’exécute la commande app:sync-esabora-sish
  • (Régression) J’exécute la commande app:sync-esabora-sish-intervention

Test workflow

Envoi des données
image

Affichage des données dans Zapier table
image

Copy link

sonarcloud bot commented Nov 27, 2023

SonarCloud Quality Gate failed.    Quality Gate failed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 2 Code Smells

No Coverage information No Coverage information
6.7% 6.7% Duplication

idea Catch issues before they fail your Quality Gate with our IDE extension sonarlint SonarLint

@sfinx13 sfinx13 changed the title [OILHI - Interfaçage] Socle technique des échanges [OILHI - Interfaçage] Socle technique envoi de données Nov 27, 2023
@sfinx13 sfinx13 marked this pull request as ready for review November 27, 2023 10:23
Copy link
Collaborator

@emilschn emilschn left a comment

Choose a reason for hiding this comment

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

Ok lecture et tests

@numew
Copy link
Collaborator

numew commented Nov 27, 2023

Ok mais je n'ai pas compris ou on pouvait retrouver les données envoyés dans zapier ?

@numew numew merged commit 5e0788e into develop Nov 28, 2023
3 of 4 checks passed
@sfinx13 sfinx13 deleted the feature/1810-socle-oilhi branch December 6, 2023 06:06
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.

3 participants