demarches-normaliennes/lib/siade/entreprise_adapter.rb
2016-10-30 22:59:57 +01:00

55 lines
1.2 KiB
Ruby

class SIADE::EntrepriseAdapter
def initialize(siren)
@siren = siren
end
def data_source
@data_source ||= JSON.parse(SIADE::API.entreprise(@siren), symbolize_names: true).merge(http_code: 200)
rescue RestClient::ServiceUnavailable
@data_source = {http_code: 503}
rescue RestClient::ResourceNotFound
@data_source = {http_code: 404}
rescue RestClient::InternalServerError
@data_source = {http_code: 500}
rescue => e
if e.http_code == 400
@data_source = {http_code: 400}
else
@data_source = nil
end
end
def to_params
params = {}
data_source[:entreprise].each do |k, v|
params[k] = v if attr_to_fetch.include?(k)
end
params[:date_creation] = Time.at(params[:date_creation]).to_datetime
params
rescue
data_source
end
def attr_to_fetch
[:siren,
:capital_social,
:numero_tva_intracommunautaire,
:forme_juridique,
:forme_juridique_code,
:nom_commercial,
:raison_sociale,
:siret_siege_social,
:code_effectif_entreprise,
:date_creation,
:nom,
:prenom]
end
def mandataires_sociaux
data_source[:entreprise][:mandataires_sociaux]
rescue
nil
end
end