api_entreprise: use v3 in etablissement endpoint (#70610)

This commit is contained in:
Emmanuel Cazenave 2022-12-14 13:06:18 +01:00
parent f710e0b198
commit fc52f572f3
2 changed files with 38 additions and 17 deletions

View File

@ -355,7 +355,24 @@ class APIEntreprise(BaseResource):
},
)
def etablissements(self, request, siret, **kwargs):
return self.get('v2/etablissements/%s/' % siret, **kwargs)
raw_data = self.get('v3/insee/sirene/etablissements/diffusibles/%s' % siret, raw=True, **kwargs)
res = {}
data = raw_data.get('data')
naf = data.get('activite_principale', {}).get('code', '')
libelle_naf = data.get('activite_principale', {}).get('libelle', '')
data['naf'] = naf
data['libelle_naf'] = libelle_naf
data['date_creation_etablissement'] = data['date_creation']
localite = data.get('adresse', {}).get('libelle_commune', '')
code_insee_localite = data.get('adresse', {}).get('code_commune', '')
data['adresse']['localite'] = localite
data['adresse']['code_insee_localite'] = code_insee_localite
data['commune_implantation'] = {'code': code_insee_localite, 'value': localite}
data['tranche_effectif_salarie_etablissement'] = data.get('tranche_effectif_salarie', {})
for i in range(1, 8):
data['adresse']['l%s' % i] = data['adresse'].get('acheminement_postal', {}).get('l%s' % i)
res['etablissement'] = data
return {'data': res}
@endpoint(
perm='can_access',

View File

@ -25,38 +25,41 @@ from passerelle.apps.api_entreprise.models import APIEntreprise
from tests.utils import FakedResponse, make_resource
ETABLISSEMENTS_RESPONSE = {
"etablissement": {
"data": {
"siege_social": True,
"siret": "41816609600051",
"naf": "6202A",
"libelle_naf": "Conseil en systèmes et logiciels informatiques",
"date_mise_a_jour": 1449183600,
"tranche_effectif_salarie_etablissement": {
"tranche_effectif_salarie": {
"de": 200,
"a": 249,
"code": "31",
"date_reference": "2014",
"intitule": "200 à 249 salariés",
},
"date_creation_etablissement": 1108594800,
"date_creation": 1108594800,
"region_implantation": {"code": "11", "value": "Île-de-France"},
"commune_implantation": {"code": "75108", "value": "PARIS 8"},
"adresse": {
"l1": "OCTO TECHNOLOGY",
"l2": None,
"l3": None,
"l4": "50 AVENUE DES CHAMPS ELYSEES",
"l5": None,
"l6": "75008 PARIS",
"l7": "FRANCE",
"acheminement_postal": {
"l1": "OCTO TECHNOLOGY",
"l2": None,
"l3": None,
"l4": "50 AVENUE DES CHAMPS ELYSEES",
"l5": None,
"l6": "75008 PARIS",
"l7": "FRANCE",
},
"numero_voie": "50",
"type_voie": "AV",
"nom_voie": "DES CHAMPS ELYSEES",
"code_postal": "75008",
"localite": "PARIS 8",
"code_insee_localite": "75108",
"libelle_commune": "PARIS 8",
"code_commune": "75108",
},
"etat_administratif": {"value": "F", "date_fermeture": 1315173600},
"activite_principale": {
"code": "6202A",
"libelle": "Conseil en systèmes et logiciels informatiques",
},
},
"gateway_error": False,
}
@ -412,7 +415,8 @@ def test_entreprises_endpoint_include_private(app, resource):
def test_etablissements_endpoint(app, resource):
with responses.RequestsMock() as rsps:
rsps.get(
'https://entreprise.api.gouv.fr/v2/etablissements/44317013900036/', json=ETABLISSEMENTS_RESPONSE
'https://entreprise.api.gouv.fr/v3/insee/sirene/etablissements/diffusibles/44317013900036',
json=ETABLISSEMENTS_RESPONSE,
)
response = app.get('/api-entreprise/test/etablissements/44317013900036/', params=REQUEST_PARAMS)
assert 'data' in response.json