commit
8c2622e9ff
15 changed files with 66 additions and 49 deletions
|
@ -6,24 +6,24 @@ class SIADE::API
|
||||||
def initialize
|
def initialize
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.entreprise(siren)
|
def self.entreprise(siren, procedure_id)
|
||||||
endpoint = "/v2/entreprises/#{siren}"
|
endpoint = "/v2/entreprises/#{siren}"
|
||||||
call(base_url + endpoint)
|
call(base_url + endpoint, mandatory_params(siren, procedure_id))
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.etablissement(siret)
|
def self.etablissement(siret, procedure_id)
|
||||||
endpoint = "/v2/etablissements/#{siret}"
|
endpoint = "/v2/etablissements/#{siret}"
|
||||||
call(base_url + endpoint)
|
call(base_url + endpoint, mandatory_params(siret, procedure_id))
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.exercices(siret)
|
def self.exercices(siret, procedure_id)
|
||||||
endpoint = "/v2/exercices/#{siret}"
|
endpoint = "/v2/exercices/#{siret}"
|
||||||
call(base_url + endpoint)
|
call(base_url + endpoint, mandatory_params(siret, procedure_id))
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.rna(siret)
|
def self.rna(siret, procedure_id)
|
||||||
endpoint = "/v2/associations/#{siret}"
|
endpoint = "/v2/associations/#{siret}"
|
||||||
call(base_url + endpoint)
|
call(base_url + endpoint, mandatory_params(siret, procedure_id))
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.call(url, params = {})
|
def self.call(url, params = {})
|
||||||
|
@ -37,6 +37,14 @@ class SIADE::API
|
||||||
).get(params: params)
|
).get(params: params)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.mandatory_params(siret_or_siren, procedure_id)
|
||||||
|
{
|
||||||
|
context: "demarches-simplifiees.fr",
|
||||||
|
recipient: siret_or_siren,
|
||||||
|
object: "procedure_id: #{procedure_id}"
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
def self.base_url
|
def self.base_url
|
||||||
SIADEURL
|
SIADEURL
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
class SIADE::EntrepriseAdapter
|
class SIADE::EntrepriseAdapter
|
||||||
def initialize(siren)
|
def initialize(siren, procedure_id)
|
||||||
@siren = siren
|
@siren = siren
|
||||||
|
@procedure_id = procedure_id
|
||||||
end
|
end
|
||||||
|
|
||||||
def data_source
|
def data_source
|
||||||
@data_source ||= JSON.parse(SIADE::API.entreprise(@siren), symbolize_names: true)
|
@data_source ||= JSON.parse(SIADE::API.entreprise(@siren, @procedure_id), symbolize_names: true)
|
||||||
rescue
|
rescue
|
||||||
@data_source = nil
|
@data_source = nil
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
class SIADE::EtablissementAdapter
|
class SIADE::EtablissementAdapter
|
||||||
def initialize(siret)
|
def initialize(siret, procedure_id)
|
||||||
@siret = siret
|
@siret = siret
|
||||||
|
@procedure_id = procedure_id
|
||||||
end
|
end
|
||||||
|
|
||||||
def data_source
|
def data_source
|
||||||
@data_source ||= JSON.parse(SIADE::API.etablissement(@siret), symbolize_names: true)
|
@data_source ||= JSON.parse(SIADE::API.etablissement(@siret, @procedure_id), symbolize_names: true)
|
||||||
end
|
end
|
||||||
|
|
||||||
def success?
|
def success?
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
class SIADE::ExercicesAdapter
|
class SIADE::ExercicesAdapter
|
||||||
def initialize(siret)
|
def initialize(siret, procedure_id)
|
||||||
@siret = siret
|
@siret = siret
|
||||||
|
@procedure_id = procedure_id
|
||||||
end
|
end
|
||||||
|
|
||||||
def data_source
|
def data_source
|
||||||
@data_source ||= JSON.parse(SIADE::API.exercices(@siret), symbolize_names: true)
|
@data_source ||= JSON.parse(SIADE::API.exercices(@siret, @procedure_id), symbolize_names: true)
|
||||||
rescue
|
rescue
|
||||||
@data_source = nil
|
@data_source = nil
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
class SIADE::RNAAdapter
|
class SIADE::RNAAdapter
|
||||||
def initialize(siret)
|
def initialize(siret, procedure_id)
|
||||||
@siret = siret
|
@siret = siret
|
||||||
|
@procedure_id = procedure_id
|
||||||
end
|
end
|
||||||
|
|
||||||
def data_source
|
def data_source
|
||||||
@data_source ||= JSON.parse(SIADE::API.rna(@siret), symbolize_names: true)
|
@data_source ||= JSON.parse(SIADE::API.rna(@siret, @procedure_id), symbolize_names: true)
|
||||||
end
|
end
|
||||||
|
|
||||||
def to_params
|
def to_params
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
class SIRETService
|
class SIRETService
|
||||||
def self.fetch(siret, dossier = nil)
|
def self.fetch(siret, dossier = nil)
|
||||||
etablissement = SIADE::EtablissementAdapter.new(siret)
|
etablissement = SIADE::EtablissementAdapter.new(siret, dossier&.procedure_id)
|
||||||
entreprise = SIADE::EntrepriseAdapter.new(siren(siret))
|
entreprise = SIADE::EntrepriseAdapter.new(siren(siret), dossier&.procedure_id)
|
||||||
|
|
||||||
if etablissement.success? && entreprise.success?
|
if etablissement.success? && entreprise.success?
|
||||||
association = SIADE::RNAAdapter.new(siret)
|
association = SIADE::RNAAdapter.new(siret, dossier&.procedure_id)
|
||||||
exercices = SIADE::ExercicesAdapter.new(siret)
|
exercices = SIADE::ExercicesAdapter.new(siret, dossier&.procedure_id)
|
||||||
|
|
||||||
params = etablissement.to_params
|
params = etablissement.to_params
|
||||||
.merge(entreprise.to_params.map { |k,v| ["entreprise_#{k}", v] }.to_h)
|
.merge(entreprise.to_params.map { |k,v| ["entreprise_#{k}", v] }.to_h)
|
||||||
|
|
|
@ -61,7 +61,6 @@ set :shared_paths, [
|
||||||
'config/initializers/features.yml',
|
'config/initializers/features.yml',
|
||||||
"config/environments/#{rails_env}.rb",
|
"config/environments/#{rails_env}.rb",
|
||||||
"config/initializers/token.rb",
|
"config/initializers/token.rb",
|
||||||
"config/initializers/urls.rb",
|
|
||||||
"config/initializers/super_admin.rb",
|
"config/initializers/super_admin.rb",
|
||||||
"config/unicorn.rb",
|
"config/unicorn.rb",
|
||||||
"config/initializers/raven.rb",
|
"config/initializers/raven.rb",
|
||||||
|
|
|
@ -30,14 +30,14 @@ feature 'user path for dossier creation' do
|
||||||
end
|
end
|
||||||
context 'sets siret' do
|
context 'sets siret' do
|
||||||
before do
|
before do
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/etablissements\/#{siret}?.*token=/)
|
||||||
.to_return(body: File.read('spec/support/files/etablissement.json', status: 200))
|
.to_return(body: File.read('spec/support/files/etablissement.json', status: 200))
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/entreprises/#{siren}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/entreprises\/#{siren}?.*token=/)
|
||||||
.to_return(status: 200, body: File.read('spec/support/files/entreprise.json'))
|
.to_return(status: 200, body: File.read('spec/support/files/entreprise.json'))
|
||||||
|
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/exercices/#{siret}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/exercices\/#{siret}?.*token=/)
|
||||||
.to_return(status: 200, body: File.read('spec/support/files/exercices.json'))
|
.to_return(status: 200, body: File.read('spec/support/files/exercices.json'))
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/associations/#{siret}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/associations\/#{siret}?.*token=/)
|
||||||
.to_return(status: 404, body: '')
|
.to_return(status: 404, body: '')
|
||||||
|
|
||||||
page.find_by_id('dossier-siret').set siret
|
page.find_by_id('dossier-siret').set siret
|
||||||
|
|
|
@ -67,13 +67,13 @@ feature 'As a User I wanna create a dossier' do
|
||||||
visit commencer_path(procedure_path: procedure_with_siret.path)
|
visit commencer_path(procedure_path: procedure_with_siret.path)
|
||||||
expect(page).to have_current_path(users_dossier_path(procedure_with_siret.dossiers.last.id.to_s))
|
expect(page).to have_current_path(users_dossier_path(procedure_with_siret.dossiers.last.id.to_s))
|
||||||
fill_in 'dossier-siret', with: siret
|
fill_in 'dossier-siret', with: siret
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/etablissements\/#{siret}?.*token=/)
|
||||||
.to_return(status: 200, body: File.read('spec/support/files/etablissement.json'))
|
.to_return(status: 200, body: File.read('spec/support/files/etablissement.json'))
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/entreprises/#{siren}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/entreprises\/#{siren}?.*token=/)
|
||||||
.to_return(status: 200, body: File.read('spec/support/files/entreprise.json'))
|
.to_return(status: 200, body: File.read('spec/support/files/entreprise.json'))
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/exercices/#{siret}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/exercices\/#{siret}?.*token=/)
|
||||||
.to_return(status: 200, body: File.read('spec/support/files/exercices.json'))
|
.to_return(status: 200, body: File.read('spec/support/files/exercices.json'))
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/associations/#{siret}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/associations\/#{siret}?.*token=/)
|
||||||
.to_return(status: 404, body: '')
|
.to_return(status: 404, body: '')
|
||||||
page.find_by_id('dossier-siret').set siret
|
page.find_by_id('dossier-siret').set siret
|
||||||
page.find_by_id('submit-siret').click
|
page.find_by_id('submit-siret').click
|
||||||
|
|
|
@ -26,13 +26,13 @@ feature 'user arrive on siret page' do
|
||||||
end
|
end
|
||||||
context 'when enter a siret', js: true do
|
context 'when enter a siret', js: true do
|
||||||
before do
|
before do
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/etablissements\/#{siret}?.*token=/)
|
||||||
.to_return(status: 200, body: File.read('spec/support/files/etablissement.json'))
|
.to_return(status: 200, body: File.read('spec/support/files/etablissement.json'))
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/entreprises/#{siren}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/entreprises\/#{siren}?.*token=/)
|
||||||
.to_return(status: 200, body: File.read('spec/support/files/entreprise.json'))
|
.to_return(status: 200, body: File.read('spec/support/files/entreprise.json'))
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/exercices/#{siret}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/exercices\/#{siret}?.*token=/)
|
||||||
.to_return(status: 200, body: File.read('spec/support/files/exercices.json'))
|
.to_return(status: 200, body: File.read('spec/support/files/exercices.json'))
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/associations/#{siret}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/associations\/#{siret}?.*token=/)
|
||||||
.to_return(status: 404, body: '')
|
.to_return(status: 404, body: '')
|
||||||
|
|
||||||
page.find_by_id('dossier-siret').set siret
|
page.find_by_id('dossier-siret').set siret
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe SIADE::API do
|
describe SIADE::API do
|
||||||
|
let(:procedure_id) { 12 }
|
||||||
describe '.entreprise' do
|
describe '.entreprise' do
|
||||||
subject { described_class.entreprise(siren) }
|
subject { described_class.entreprise(siren, procedure_id) }
|
||||||
before do
|
before do
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/entreprises/#{siren}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/entreprises\/#{siren}?.*token=/)
|
||||||
.to_return(status: status, body: body)
|
.to_return(status: status, body: body)
|
||||||
end
|
end
|
||||||
context 'when siren does not exist' do
|
context 'when siren does not exist' do
|
||||||
|
@ -28,9 +29,9 @@ describe SIADE::API do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '.etablissement' do
|
describe '.etablissement' do
|
||||||
subject { described_class.etablissement(siret) }
|
subject { described_class.etablissement(siret, procedure_id) }
|
||||||
before do
|
before do
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/etablissements\/#{siret}?.*token=/)
|
||||||
.to_return(status: status, body: body)
|
.to_return(status: status, body: body)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -62,7 +63,7 @@ describe SIADE::API do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when siret does not exist' do
|
context 'when siret does not exist' do
|
||||||
subject { described_class.exercices(siret) }
|
subject { described_class.exercices(siret, procedure_id) }
|
||||||
|
|
||||||
let(:siret) { '11111111111111' }
|
let(:siret) { '11111111111111' }
|
||||||
let(:status) { 404 }
|
let(:status) { 404 }
|
||||||
|
@ -74,7 +75,7 @@ describe SIADE::API do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when siret exists' do
|
context 'when siret exists' do
|
||||||
subject { described_class.exercices(siret) }
|
subject { described_class.exercices(siret, procedure_id) }
|
||||||
|
|
||||||
let(:siret) { '41816609600051' }
|
let(:siret) { '41816609600051' }
|
||||||
let(:status) { 200 }
|
let(:status) { 200 }
|
||||||
|
@ -92,7 +93,7 @@ describe SIADE::API do
|
||||||
.to_return(status: status, body: body)
|
.to_return(status: status, body: body)
|
||||||
end
|
end
|
||||||
|
|
||||||
subject { described_class.rna(siren) }
|
subject { described_class.rna(siren, procedure_id) }
|
||||||
|
|
||||||
context 'when siren does not exist' do
|
context 'when siren does not exist' do
|
||||||
let(:siren) { '111111111' }
|
let(:siren) { '111111111' }
|
||||||
|
|
|
@ -2,11 +2,12 @@ require 'spec_helper'
|
||||||
|
|
||||||
describe SIADE::EntrepriseAdapter do
|
describe SIADE::EntrepriseAdapter do
|
||||||
let(:siren) { '418166096' }
|
let(:siren) { '418166096' }
|
||||||
let(:adapter) { described_class.new(siren) }
|
let(:procedure_id) { 22 }
|
||||||
|
let(:adapter) { described_class.new(siren, procedure_id) }
|
||||||
subject { adapter.to_params }
|
subject { adapter.to_params }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/entreprises/#{siren}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/entreprises\/#{siren}?.*token=/)
|
||||||
.to_return(body: File.read('spec/support/files/entreprise.json', status: 200))
|
.to_return(body: File.read('spec/support/files/entreprise.json', status: 200))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -69,7 +70,7 @@ describe SIADE::EntrepriseAdapter do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'Mandataire sociaux' do
|
context 'Mandataire sociaux' do
|
||||||
subject { described_class.new(siren).to_params[:mandataires_sociaux] }
|
subject { described_class.new(siren, procedure_id).to_params[:mandataires_sociaux] }
|
||||||
|
|
||||||
it '#to_params class est une Hash ?' do
|
it '#to_params class est une Hash ?' do
|
||||||
expect(subject).to be_an_instance_of(Array)
|
expect(subject).to be_an_instance_of(Array)
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe SIADE::EtablissementAdapter do
|
describe SIADE::EtablissementAdapter do
|
||||||
|
let(:procedure_id) { 33 }
|
||||||
|
|
||||||
context 'SIRET valide' do
|
context 'SIRET valide' do
|
||||||
let(:siret) { '41816609600051' }
|
let(:siret) { '41816609600051' }
|
||||||
subject { described_class.new(siret).to_params }
|
subject { described_class.new(siret, procedure_id).to_params }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/etablissements\/#{siret}?.*token=/)
|
||||||
.to_return(body: File.read('spec/support/files/etablissement.json', status: 200))
|
.to_return(body: File.read('spec/support/files/etablissement.json', status: 200))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -70,10 +72,10 @@ describe SIADE::EtablissementAdapter do
|
||||||
|
|
||||||
context 'when siret is not found' do
|
context 'when siret is not found' do
|
||||||
let(:bad_siret) { 11_111_111_111_111 }
|
let(:bad_siret) { 11_111_111_111_111 }
|
||||||
subject { described_class.new(bad_siret).to_params }
|
subject { described_class.new(bad_siret, 12).to_params }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{bad_siret}?token=#{SIADETOKEN}")
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/etablissements\/#{bad_siret}?.*token=/)
|
||||||
.to_return(body: 'Fake body', status: 404)
|
.to_return(body: 'Fake body', status: 404)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,8 @@ require 'spec_helper'
|
||||||
|
|
||||||
describe SIADE::ExercicesAdapter do
|
describe SIADE::ExercicesAdapter do
|
||||||
let(:siret) { '41816609600051' }
|
let(:siret) { '41816609600051' }
|
||||||
subject { described_class.new(siret).to_params }
|
let(:procedure_id) { 11 }
|
||||||
|
subject { described_class.new(siret, procedure_id).to_params }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/exercices\/.*token=/)
|
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/exercices\/.*token=/)
|
||||||
|
|
|
@ -2,9 +2,10 @@ require 'spec_helper'
|
||||||
|
|
||||||
describe SIADE::RNAAdapter do
|
describe SIADE::RNAAdapter do
|
||||||
let(:siret) { '50480511000013' }
|
let(:siret) { '50480511000013' }
|
||||||
|
let(:procedure_id) { 22 }
|
||||||
let(:body) { File.read('spec/support/files/rna.json') }
|
let(:body) { File.read('spec/support/files/rna.json') }
|
||||||
let(:status) { 200 }
|
let(:status) { 200 }
|
||||||
let(:adapter) { described_class.new(siret) }
|
let(:adapter) { described_class.new(siret, procedure_id) }
|
||||||
|
|
||||||
subject { adapter.to_params }
|
subject { adapter.to_params }
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue