Skip to content

Communication (fiche établissement entreprise)

Flavien Beninca edited this page Aug 5, 2020 · 5 revisions

Process

Etape 1 : demande de chargement de la fiche (FRONT)

  • src/containers/Enterprise/Enterprise.js : déclenche une action Redux grâce à un useEffect (loadEntreprise ou loadEstablishment en fonction de ce qu'on demande)

  • src/services/Store/actions/enterprise.js : les actions Redux se trouvent ici et appelle la méthode partagé getEnterprise qui permet de lancer les différents appels api pour l'ensemble des datasources (PG, ApiGouv...). Le fonctionnement est le suivant, dès qu'une datasource renvoie un succès on signale au container que le chargement a réussi pour afficher la page (à chaque réponses suivante on générera un nouveau render). Si toutes les sources ont échouées alors on signale au container que le chargement a échoué.

  • src/services/Store/reducers/enterprise.js : à chaque réponse positive d'une source on met à jour le réducer, on fait donc un merge des data grâce à src/services/Store/utils/updateEnterpriseAndEstablishments.js

Etape 2 : Appel API (SERVER)

  • src/api/search.js : l'entrypoint express se trouve ici, on appelle route /entity quelque soit la demande (entreprise ou établissement). Celui ci va demander à frentreprise (qui est une dépendence) de récupérer les informations de cette structure pour une source donnée (ex récupère moi les infos de cet établissement pour la datasource ApiGouv). Une fois la réponse de frentreprise reçu, on vérifie si c'est un succès. Si oui on retourne les données sinon on renvoie une 404.

Etape 3 : traitement de la datasource (FRENTREPRISE)

  • src/frentreprise.js : c'est le point d'entrée de frentreprise, on appelle la méthode getEntreprise qui va :
    • charger l'entreprise await this[_.askDataSource]("getSIREN" même si on demande un établissement
    • charge l'établissement ou plusieurs await Promise.all(etablissementsLookups.map car on charge au moins toujours le siège social

Informations diverses

  • Quand on charge un établissement, on charge également sa fiche associée, il n'est donc pas nécessaire de faire un nouvel appel API quand on souhaite basculer vers la fiche entreprise

  • frentreprise se base sur les modèles présent sur le serveur src/frentreprise/models/Entreprise.js, src/frentreprise/models/Etablissement.js. On ne peut pas fournir une donnée qui n'est pas présente dans ces modèles.