class Transbank::Webpay::Request

Attributes

action[RW]
client[RW]
document[RW]
params[RW]

Public Class Methods

new(wsdl_url, action, params = {}) click to toggle source
# File lib/transbank/webpay/request.rb, line 6
def initialize(wsdl_url, action, params = {})
  @params = params
  @action = action
  @document = Document.new(action, params)
  @client = Client.new wsdl_url
end

Public Instance Methods

response() click to toggle source
# File lib/transbank/webpay/request.rb, line 13
def response
  rescue_exceptions = Transbank::Webpay.configuration.rescue_exceptions

  @response ||= begin
    Response.new client.post(document.to_xml), action, params
  rescue match_class(rescue_exceptions) => error
    ExceptionResponse.new error, action, params
  end
end

Private Instance Methods

match_class(exceptions) click to toggle source
# File lib/transbank/webpay/request.rb, line 25
def match_class(exceptions)
  m = Module.new
  (class << m; self; end).instance_eval do
    define_method(:===) do |error|
      (exceptions || []).include? error.class
    end
  end
  m
end