class PromisePay::Request

Attributes

method[R]
password[R]
path[R]
payload[R]
request[R]
user[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/promise_pay/request.rb, line 6
def initialize(options = {})
  @path     = options.fetch(:path)
  @user     = options.fetch(:user)      { PromisePay.api_user }
  @password = options.fetch(:password)  { PromisePay.api_key }
  @method   = options.fetch(:method)    { :get }
  @payload  = options.fetch(:payload)   { nil }
  @request  = build_request
end

Public Instance Methods

execute() click to toggle source
# File lib/promise_pay/request.rb, line 15
def execute
  begin
    response = request.execute
  rescue RestClient::Unauthorized => e
    raise UnauthorizedRequestError, e.message
  rescue RestClient::BadRequest => e
    raise BadRequestError, e.message
  end

  response
end

Private Instance Methods

build_request() click to toggle source
# File lib/promise_pay/request.rb, line 29
def build_request
  RestClient::Request.new(request_params)
end
endpoint() click to toggle source
# File lib/promise_pay/request.rb, line 44
def endpoint
  host + path
end
host() click to toggle source
# File lib/promise_pay/request.rb, line 48
def host
  if PromisePay.env && PromisePay.env == :test
    TEST_HOST
  else
    API_HOST
  end
end
request_params() click to toggle source
# File lib/promise_pay/request.rb, line 33
def request_params
  {
    method:   method,
    url:      endpoint,
    user:     user,
    password: password,
    payload:  payload,
    headers:  { accept: :json, content_type: :json }
  }
end