-
Notifications
You must be signed in to change notification settings - Fork 3
Communication (fiche établissement entreprise)
-
src/containers/Enterprise/Enterprise.js
: déclenche une action Redux grâce à unuseEffect
(loadEntreprise
ouloadEstablishment
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
-
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.
-
src/frentreprise.js
: c'est le point d'entrée de frentreprise, on appelle la méthodegetEntreprise
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
- charger l'entreprise
-
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.