module MercadoPago::Core::Gateway
Constants
- MERCADOPAGO_API_URL
- MERCADOPAGO_RUBY_SDK_VERSION
- MIME_JSON
Private Instance Methods
connection(method)
click to toggle source
# File lib/mercadopago/core/gateway.rb, line 76 def connection(method) Faraday.new(MERCADOPAGO_API_URL, ssl: { verify: true }) do |faraday| faraday.request(:url_encoded) if method == :get faraday.adapter(Faraday.default_adapter) end end
delete(path, payload)
click to toggle source
# File lib/mercadopago/core/gateway.rb, line 30 def delete(path, payload) make_request(:delete, path) end
get(path, payload)
click to toggle source
# File lib/mercadopago/core/gateway.rb, line 20 def get(path, payload) make_request(:get, path, payload) end
headers(idempotency_key = nil)
click to toggle source
# File lib/mercadopago/core/gateway.rb, line 34 def headers(idempotency_key = nil) { 'User-Agent' => "MercadoPago Ruby SDK v#{MERCADOPAGO_RUBY_SDK_VERSION}", content_type: MIME_JSON, accept: MIME_JSON }.tap do |_hash| _hash['X-Idempotency-Key'] = idempotency_key if idempotency_key end end
make_request(method, path, payload = {})
click to toggle source
Makes a HTTP request to the MercadoPago
API.
-
type: the HTTP request type (:get, :post, :put, :delete).
-
path: the path of the API to be called.
-
json: the data to be trasmitted to the API.
# File lib/mercadopago/core/gateway.rb, line 49 def make_request(method, path, payload = {}) idempotency_key = payload.delete(:idempotency_key) || payload.delete('idempotency_key') unless payload.empty? payload = MultiJson.dump(payload) unless method == :get end response = connection(method).send(method) do |call| call.url path call.headers = headers( idempotency_key ) unless payload.empty? if method == :get call.params = call.params.merge(payload) else call.body = payload end 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
post(path, payload)
click to toggle source
# File lib/mercadopago/core/gateway.rb, line 14 def post(path, payload) raise Error.new('No data given') if payload.nil? || payload.empty? make_request(:post, path, payload) end
put(path, payload)
click to toggle source
# File lib/mercadopago/core/gateway.rb, line 24 def put(path, payload) raise Error.new('No data given') if payload.nil? || payload.empty? make_request(:put, path, payload) end