Module: ApRubySdk

Defined in:
lib/ap_ruby_sdk.rb,
lib/ap_ruby_sdk/plan.rb,
lib/ap_ruby_sdk/util.rb,
lib/ap_ruby_sdk/void.rb,
lib/ap_ruby_sdk/period.rb,
lib/ap_ruby_sdk/refund.rb,
lib/ap_ruby_sdk/payment.rb,
lib/ap_ruby_sdk/version.rb,
lib/ap_ruby_sdk/customer.rb,
lib/ap_ruby_sdk/base_model.rb,
lib/ap_ruby_sdk/collection.rb,
lib/ap_ruby_sdk/pagination.rb,
lib/ap_ruby_sdk/transaction.rb,
lib/ap_ruby_sdk/api_resource.rb,
lib/ap_ruby_sdk/subscription.rb,
lib/ap_ruby_sdk/redirect_urls.rb,
lib/ap_ruby_sdk/refund_reason.rb,
lib/ap_ruby_sdk/errors/ap_error.rb,
lib/ap_ruby_sdk/errors/api_error.rb,
lib/ap_ruby_sdk/preauthorization.rb,
lib/ap_ruby_sdk/phone_verification.rb,
lib/ap_ruby_sdk/api_operations/list.rb,
lib/ap_ruby_sdk/errors/payment_error.rb,
lib/ap_ruby_sdk/api_operations/create.rb,
lib/ap_ruby_sdk/api_operations/retrieve.rb,
lib/ap_ruby_sdk/errors/authentication_error.rb,
lib/ap_ruby_sdk/errors/invalid_parameter_error.rb

Defined Under Namespace

Modules: ApiOperations, Period, RefundReason, Util Classes: APIError, ApError, ApiResource, AuthenticationError, BaseModel, Collection, Customer, InvalidParameterError, Pagination, Payment, PaymentError, PhoneVerification, Plan, Preauthorization, RedirectUrls, Refund, Subscription, Transaction, Void

Constant Summary collapse

VERSION =
'0.1.0'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.api_baseObject

Returns the value of attribute api_base.



44
45
46
# File 'lib/ap_ruby_sdk.rb', line 44

def api_base
  @api_base
end

.api_keyObject

Returns the value of attribute api_key.



44
45
46
# File 'lib/ap_ruby_sdk.rb', line 44

def api_key
  @api_key
end

Class Method Details

.api_url(url = '') ⇒ Object



88
89
90
# File 'lib/ap_ruby_sdk.rb', line 88

def self.api_url(url='')
  @api_base + url
end

.request(method, url, api_key, params = {}, headers = {}) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/ap_ruby_sdk.rb', line 47

def self.request(method, url, api_key, params={}, headers={})
  unless api_key ||= @api_key
    raise AuthenticationError.new('No API key provided.')
  end

  url = api_url(url)

  if method.to_s.downcase.to_sym == :get
    # Make params into GET params
    url += "#{URI.parse(url).query ? '&' : '?'}#{uri_encode(params)}" if params && params.any?
    payload = nil
  elsif method.to_s.downcase.to_sym == :delete
    # Make params into expected DELETE params
  elsif method.to_s.downcase.to_sym == :put
    # Make params into expected PUT params
  else
    # Make params into POST params
    payload = MultiJson.dump(params, mode: :compat)
  end

  request_opts = {
      :headers => request_headers(api_key).update(headers),
      :open_timeout => 30,
      :timeout => 80,
      :method => method,
      :payload => payload,
      :url => url
  }
  begin
    response = execute_request(request_opts)
  rescue RestClient::ExceptionWithResponse => e
    if e.http_code and e.http_body
      parse_api_error(e.http_code, e.http_body)
    else
      raise APIError.new(message + "\n\n(Network error: #{e.message})")
    end
  end

  parse(response)
end