class PayuAPI::Request

Constants

API_SANDBOX_URL
API_URL

Public Instance Methods

call() click to toggle source

rubocop:disable Metrics/AbcSize

# File lib/payu_api/request.rb, line 7
def call
  connection = Faraday.new(url: api_url) do |builder|
    builder.response(:detailed_logger, logger) if logger
    builder.adapter Faraday.default_adapter
  end

  connection.public_send(method.to_s.downcase) do |request|
    request.url url
    request.body = body if body
    headers.each do |key, value|
      request.headers[key] = value
    end
  end
rescue Faraday::Error => e
  raise RequestError, e.message
end

Private Instance Methods

api_url() click to toggle source
# File lib/payu_api/request.rb, line 26
def api_url
  sandbox? ? API_SANDBOX_URL : API_URL
end
body() click to toggle source
# File lib/payu_api/request.rb, line 46
def body
  nil
end
headers() click to toggle source
# File lib/payu_api/request.rb, line 42
def headers
  {}
end
logger() click to toggle source
# File lib/payu_api/request.rb, line 50
def logger
  nil
end
method() click to toggle source
# File lib/payu_api/request.rb, line 34
def method
  raise NotImplementedError
end
sandbox?() click to toggle source
# File lib/payu_api/request.rb, line 30
def sandbox?
  raise NotImplementedError
end
url() click to toggle source
# File lib/payu_api/request.rb, line 38
def url
  raise NotImplementedError
end