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
|
# File 'lib/exchangerate_api_ruby/api.rb', line 8
def fetch currency
raise ArgumentError, "missing currency argument" if currency.nil?
raise ArgumentError, "invalid currency argument" unless EXCHANGERATE_API_CURRENCY_CODES.keys.include?(currency)
uri = URI.parse("https://v6.exchangerate-api.com/v6/#{ExchangeRate.config.api_key}/latest/#{currency.upcase}")
response = nil
result = nil
Net::HTTP.start(uri.host, uri.port, use_ssl: ExchangeRate.config.use_ssl) do |http|
req = Net::HTTP::Get.new(uri)
req['Content-Type'] = 'application/json'
response = http.request(req)
result = response&.body
end
{
success: response.instance_of?(Net::HTTPOK),
response: response,
result: JSON.parse(result)
}
rescue
{
success: false,
response: nil
}
end
|