Add Mandataires Sociaux siade lib

This commit is contained in:
Xavier J 2016-01-06 10:55:27 +01:00
parent cf6b3e955a
commit 3f048d0709
2 changed files with 78 additions and 0 deletions

View file

@ -0,0 +1,35 @@
class SIADE::MandatairesSociauxAdapter
def initialize(siren)
@siren = siren
end
def data_source
@data_source ||= JSON.parse(SIADE::API.entreprise(@siren), symbolize_names: true)
rescue
@data_source = nil
end
def to_params
params = {}
data_source[:entreprise][:mandataires_sociaux].each_with_index do |mandataire, i|
params[i] = {}
mandataire.each do |k, v|
params[i][k] = v if attr_to_fetch.include?(k)
end
end
params
rescue
nil
end
def attr_to_fetch
[:nom,
:prenom,
:fonction,
:date_naissance,
:date_naissance_timestamp]
end
end

View file

@ -0,0 +1,43 @@
require 'spec_helper'
describe SIADE::MandatairesSociauxAdapter do
subject { described_class.new('418166096').to_params }
before do
stub_request(:get, "https://api-dev.apientreprise.fr/api/v1/entreprises/418166096?token=#{SIADETOKEN}")
.to_return(body: File.read('spec/support/files/entreprise.json', status: 200))
end
it '#to_params class est une Hash ?' do
expect(subject).to be_an_instance_of(Hash)
end
describe 'Mandataires Sociaux' do
it { expect(subject.size).to eq(8) }
describe 'Attributs' do
it 'Un mandataire social possède bien un nom' do
expect(subject[0][:nom]).to eq('HISQUIN')
end
it 'Un mandataire social possède bien un prenom' do
expect(subject[0][:prenom]).to eq('FRANCOIS')
end
it 'Un mandataire social possède bien une fonction' do
expect(subject[0][:fonction]).to eq('PRESIDENT DU DIRECTOIRE')
end
it 'Un mandataire social possède bien une date de naissance' do
expect(subject[0][:date_naissance]).to eq('1965-01-27')
end
it 'Un mandataire social possède bien une date de naissance au format timestamp' do
expect(subject[0][:date_naissance_timestamp]).to eq(-155523600)
end
end
end
end