4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/ods_wrapper/data/siret.rb', line 4
def self.query(name, zipcode = '')
base_query = "etatadministratifetablissement:Actif AND (denominationunitelegale:#{name} OR nomunitelegale:#{name})"
if zipcode == ''
query = {
dataset: OdsWrapper::Siret::DATASET,
q: base_query,
rows: 25
}
else
if zipcode.size == 2
query = {
dataset: OdsWrapper::Siret::DATASET,
q: "#{base_query} AND codedepartementetablissement:#{zipcode}",
rows: 25
}
else
query = {
dataset: OdsWrapper::Siret::DATASET,
q: "#{base_query} AND codepostaletablissement:#{zipcode}",
rows: 25
}
end
end
response = HTTParty.get(OdsWrapper::ODS_URL, query:query)
return JSON.generate( { error: 'Server temporarily inaccessible' } ) if response.code >= 500 && response.code <= 599
result = response.body
hash = JSON.parse(result)
if (hash.dig('nhits') || 0) > 0
response = format_response(hash)
else
response = []
end
return JSON.generate({ siret: response })
end
|