class Afterpay::HTTPService::Request

Attributes

middleware[R]

@attribute middleware @return [Proc] A proc containing Faraday configuration

server[R]

@attribute server @return [String] an API endpoint

Public Class Methods

new(params = {}) click to toggle source

Creates Afterpay::HTTPService::Request instance @param [Hash] params hash of parameters @return [Afterpay::HTTPService::Request] Request instance

# File lib/afterpay/http_service/request.rb, line 19
def initialize(params = {})
  @middleware = params[:middleware]
  @server     = params[:server]
end

Public Instance Methods

perform(params = {}) click to toggle source

Performs an HTTP request to the specified endpoint with given body @param [Hash] params hash of parameters. @return [Farday::Response] Faraday::Response instance

# File lib/afterpay/http_service/request.rb, line 27
def perform(params = {})
  adapter.send(*params.values_at(:action, :endpoint, :body))
end

Private Instance Methods

adapter() click to toggle source

Creates memoized Faraday::Connection instance @return [Faraday::Connection] Faraday::Connection instance

# File lib/afterpay/http_service/request.rb, line 35
def adapter
  @adapter ||= Faraday.new(server, faraday_options, &middleware)
end
faraday_options() click to toggle source
# File lib/afterpay/http_service/request.rb, line 39
def faraday_options
  return {} unless ::Afterpay.user_agent

  { "headers" => { "User-Agent" => ::Afterpay.user_agent } }
end