class Paypal::NVP::Request

Constants

ENDPOINT

Attributes

version[RW]

Public Class Methods

endpoint() click to toggle source
# File lib/paypal/nvp/request.rb, line 13
def self.endpoint
  if Paypal.sandbox?
    ENDPOINT[:sandbox]
  else
    ENDPOINT[:production]
  end
end
new(attributes = {}) click to toggle source
Calls superclass method Paypal::Base::new
# File lib/paypal/nvp/request.rb, line 21
def initialize(attributes = {})
  @version = Paypal.api_version
  super
  self.subject ||= ''
end

Public Instance Methods

common_params() click to toggle source
# File lib/paypal/nvp/request.rb, line 27
def common_params
  {
    :USER => self.username,
    :PWD => self.password,
    :SIGNATURE => self.signature,
    :SUBJECT => self.subject,
    :VERSION => self.version,
    version: self.version
  }
end
request(method, params = {}) click to toggle source
# File lib/paypal/nvp/request.rb, line 38
def request(method, params = {})
  handle_response do
    post(method, params)
  end
end

Private Instance Methods

handle_response() { || ... } click to toggle source
# File lib/paypal/nvp/request.rb, line 50
def handle_response
  response = yield
  response = CGI.parse(response).inject({}) do |res, (k, v)|
    res.merge!(k.to_sym => v.first.to_s)
  end
  case response[:ACK]
  when 'Success', 'SuccessWithWarning'
    response
  else
    raise Exception::APIError.new(response)
  end
rescue RestClient::Exception => e
  raise Exception::HttpError.new(e.http_code, e.message, e.http_body)
end
post(method, params) click to toggle source
# File lib/paypal/nvp/request.rb, line 46
def post(method, params)
  RestClient.post(self.class.endpoint, common_params.merge(params).merge(:METHOD => method))
end