fix(addresse): lookup for city, departement and region name in local db

This commit is contained in:
Paul Chavard 2024-03-11 10:49:43 +01:00
parent 256d63e5f3
commit 9afe71529e
5 changed files with 36 additions and 3 deletions

View file

@ -25,5 +25,29 @@ module Types
field :region_code, String, "n° de region", null: true
field :geometry, Types::GeoJSON, "coordonnées géographique", null: true
def city_name
if object['department_code'].present? && object['city_code'].present?
APIGeoService.commune_name(object.fetch('department_code'), object.fetch('city_code'))
else
object['city_name']
end
end
def department_name
if object['department_code'].present?
APIGeoService.departement_name(object.fetch('department_code'))
else
object['department_name']
end
end
def region_name
if object['region_code'].present?
APIGeoService.region_name(object.fetch('region_code'))
else
object['region_name']
end
end
end
end

View file

@ -131,7 +131,7 @@ module Types
postal_code: object.code_postal.presence || '',
city_name: object.localite.presence || '',
city_code: object.code_insee_localite.presence || ''
}
}.with_indifferent_access
end
def entreprise

View file

@ -41,6 +41,6 @@ class Champs::RNAChamp < Champ
postal_code: address["code_postal"],
city_name: address["commune"],
city_code: address["code_insee"]
}
}.with_indifferent_access
end
end

View file

@ -106,7 +106,7 @@ class Champs::RNFChamp < Champ
department_code: address["departmentCode"],
region_name: address["regionName"],
region_code: address["regionCode"]
}
}.with_indifferent_access
end
end

View file

@ -83,10 +83,17 @@ RSpec.describe Types::DossierType, type: :graphql do
expect(data[:dossier][:champs][2][:etablissement][:siret]).to eq dossier.champs_public[2].etablissement.siret
expect(data[:dossier][:champs][0][:id]).to eq(data[:dossier][:revision][:champDescriptors][0][:id])
expect(data[:dossier][:champs][1][:address][:cityName]).to eq('Paris 19e Arrondissement')
expect(data[:dossier][:champs][1][:address][:departmentName]).to eq('Paris')
expect(data[:dossier][:champs][1][:address][:regionName]).to eq('Île-de-France')
expect(data[:dossier][:champs][3][:rna][:id]).to eq('W173847273')
expect(data[:dossier][:champs][3][:rna][:title]).to eq('CROIX ROUGE')
expect(data[:dossier][:champs][3][:rna][:address][:label]).to eq('12 RUE xyz 75512 Paris 14e')
expect(data[:dossier][:champs][3][:rna][:address][:streetNumber]).to eq('12')
expect(data[:dossier][:champs][3][:rna][:address][:cityName]).to eq('Paris 14e')
expect(data[:dossier][:champs][3][:rna][:address][:departmentName]).to eq(nil)
expect(data[:dossier][:champs][3][:rna][:address][:regionName]).to eq(nil)
end
context 'when etablissement is in degraded mode' do
@ -452,6 +459,8 @@ RSpec.describe Types::DossierType, type: :graphql do
cityCode
streetName
streetNumber
departmentName
regionName
}
fragment RNAChampFragment on RNAChamp {