class Colppy::Core::Gateway
Constants
- API_PATH
- MIME_JSON
- MODES
- PRODUCTION_API_URL
- SANDBOX_API_URL
Public Class Methods
new(mode = "sandbox")
click to toggle source
# File lib/colppy/core/gateway.rb, line 10 def initialize(mode = "sandbox") @mode = mode end
Public Instance Methods
call(payload = {})
click to toggle source
# File lib/colppy/core/gateway.rb, line 22 def call(payload = {}) make_request(payload) end
Private Instance Methods
connection()
click to toggle source
# File lib/colppy/core/gateway.rb, line 57 def connection Faraday.new(endpoint_url) do |faraday| faraday.adapter(Faraday.default_adapter) end end
endpoint_url()
click to toggle source
# File lib/colppy/core/gateway.rb, line 63 def endpoint_url case @mode when "live" then PRODUCTION_API_URL when "sandbox" then SANDBOX_API_URL else SANDBOX_API_URL end end
headers()
click to toggle source
# File lib/colppy/core/gateway.rb, line 28 def headers { 'User-Agent' => "Colppy Ruby Gem v#{Colppy::VERSION}", content_type: MIME_JSON, accept: MIME_JSON } end
make_request(payload)
click to toggle source
# File lib/colppy/core/gateway.rb, line 36 def make_request(payload) unless payload.empty? payload = MultiJson.dump(payload) end response = connection.post do |call| call.url API_PATH call.headers = headers unless payload.empty? call.body = payload end end MultiJson.load(response.body, symbolize_keys: true) rescue Exception => e if e.respond_to?(:response) MultiJson.load(e.response, symbolize_keys: true) else raise e end end