class Geocodable::Request
Public Class Methods
api_key()
click to toggle source
# File lib/geocodable/request.rb, line 30 def api_key Geocodable.api_key end
conn()
click to toggle source
# File lib/geocodable/request.rb, line 18 def conn Faraday::Response.register_middleware json_parser: JSONParser conn = Faraday.new(Geocodable.api_base, ssl: ssl) do |faraday| faraday.adapter :excon faraday.response :json_parser end end
get(url, params={})
click to toggle source
# File lib/geocodable/request.rb, line 6 def get(url, params={}) response = conn.get url, params, headers handle_api_error(response) unless response.success? response.body end
handle_api_error(response)
click to toggle source
# File lib/geocodable/request.rb, line 34 def handle_api_error(response) code, body = response.status, response.body begin error = body[:errors] || body[:error] error = error.first if error.kind_of? Array rescue raise APIError.new( "Invalid response object from API: #{body.inspect}", code, body) end case code when 400, 404 then raise InvalidRequestError.new(error, code, body) when 401 then raise AuthenticationError.new(error, code, body) when 403 then raise AccessDisabledError.new(error, code, body) when 429 then raise OverRequestLimitError.new(error, code, body) else raise APIError.new(error, code, body) end end
headers()
click to toggle source
# File lib/geocodable/request.rb, line 12 def headers hash = { user_agent: "geocodable-ruby/#{Geocodable::VERSION}" } hash[:authorization] = "Bearer #{api_key}" unless api_key.nil? hash end
ssl()
click to toggle source
# File lib/geocodable/request.rb, line 26 def ssl { verify: Geocodable.ssl_verify_certs, ca_file: @ssl_bundle_path } end