diff --git a/app/lib/api_entreprise/entreprise_adapter.rb b/app/lib/api_entreprise/entreprise_adapter.rb index 8586caa50..3677c7ce5 100644 --- a/app/lib/api_entreprise/entreprise_adapter.rb +++ b/app/lib/api_entreprise/entreprise_adapter.rb @@ -7,6 +7,7 @@ class APIEntreprise::EntrepriseAdapter < APIEntreprise::Adapter def process_params params = data_source[:entreprise]&.slice(*attr_to_fetch) + params[:etat_administratif] = map_etat_administratif(data_source) if params.present? && valid_params?(params) params[:date_creation] = Time.zone.at(params[:date_creation]).to_datetime @@ -32,4 +33,13 @@ class APIEntreprise::EntrepriseAdapter < APIEntreprise::Adapter :prenom ] end + + def map_etat_administratif(data_source) + raw_value = data_source.dig(:entreprise, :etat_administratif, :value) # data structure will change in v3 + + case raw_value + when 'A' then 'actif' + when 'F' then 'fermé' + end + end end diff --git a/app/models/entreprise.rb b/app/models/entreprise.rb index 315a3da13..09a71053e 100644 --- a/app/models/entreprise.rb +++ b/app/models/entreprise.rb @@ -13,6 +13,7 @@ class Entreprise < Hashie::Dash property :raison_sociale property :siret_siege_social property :code_effectif_entreprise + property :etat_administratif property :effectif_mois property :effectif_annee property :effectif_mensuel diff --git a/spec/fixtures/files/api_entreprise/entreprises.json b/spec/fixtures/files/api_entreprise/entreprises.json index 55a1f4e8c..90512381c 100644 --- a/spec/fixtures/files/api_entreprise/entreprises.json +++ b/spec/fixtures/files/api_entreprise/entreprises.json @@ -22,6 +22,10 @@ "date_reference": "2014", "intitule": "200 à 249 salariés" }, + "etat_administratif": { + "value": "A", + "date_cessation": null + }, "exercices": [ { "chiffre_affaires": null, diff --git a/spec/jobs/api_entreprise/entreprise_job_spec.rb b/spec/jobs/api_entreprise/entreprise_job_spec.rb index 8ba5221d6..df8fdb796 100644 --- a/spec/jobs/api_entreprise/entreprise_job_spec.rb +++ b/spec/jobs/api_entreprise/entreprise_job_spec.rb @@ -1,7 +1,7 @@ RSpec.describe APIEntreprise::EntrepriseJob, type: :job do let(:siret) { '41816609600051' } let(:siren) { '418166096' } - let(:etablissement) { create(:etablissement, siret: siret) } + let(:etablissement) { create(:etablissement, siret: siret, entreprise_etat_administratif: nil) } let(:procedure) { create(:procedure) } let(:procedure_id) { procedure.id } let(:body) { File.read('spec/fixtures/files/api_entreprise/entreprises.json') } @@ -19,4 +19,12 @@ RSpec.describe APIEntreprise::EntrepriseJob, type: :job do subject expect(Etablissement.find(etablissement.id).entreprise_numero_tva_intracommunautaire).to eq('FR16418166096') end + + it 'convert entreprise etat_administratif source to an enum' do + subject + etablissement.reload + + expect(etablissement.entreprise_etat_administratif).to eq("actif") + expect(etablissement.entreprise_etat_administratif_actif?) + end end diff --git a/spec/lib/api_entreprise/entreprise_adapter_spec.rb b/spec/lib/api_entreprise/entreprise_adapter_spec.rb index cb26c6db9..f2dd7bc2f 100644 --- a/spec/lib/api_entreprise/entreprise_adapter_spec.rb +++ b/spec/lib/api_entreprise/entreprise_adapter_spec.rb @@ -67,6 +67,10 @@ describe APIEntreprise::EntrepriseAdapter do it 'L\'entreprise contient bien un prenom' do expect(subject[:entreprise_prenom]).to eq('test_prenom') end + + it 'L\'entreprise contient bien un etat administratif' do + expect(subject[:entreprise_etat_administratif]).to eq('actif') + end end end