Sha256: 21377abe75d3a09a8daa766df8c1659b7fcd8f646aa1c9411d56af56f36a1b32
Contents?: true
Size: 1.43 KB
Versions: 8
Compression:
Stored size: 1.43 KB
Contents
module MpApi class Client < Ac::Base BASE_URL = "https://api.mercadopago.com/v1/" MAX_RETRIES = 1 attr_reader :access_token def initialize(access_token = MpApi.configuration.access_token) @headers = { "Content-Type" => "application/json", "x-idempotency-key" => SecureRandom.uuid } super(access_token) end def create_payment(body) post("/payments", body: body, headers: @headers) { |response| validate_response(response, "id") } end def get_payment(payment_id) get("/payments/#{payment_id}") { |response| validate_response(response, "id") } end def update_payment(payment_id, body) put("/payments/#{payment_id}", body: body, headers: @headers) { |response| validate_response(response, "id") } end def create_token(card_token_data) post("/card_tokens", body: card_token_data, headers: @headers) { |response| validate_response(response, "id") } end def search_payment_methods(query) get("/payment_methods/search", params: query) { |response| validate_response(response, ["results", 0]) } end def get_payment_methods get("/payment_methods") { |response| validate_response(response, "id") } end private def validate_response(response, required_response_key) puts response.json unless response.success? ![500, 429].include?(response.code) || response.json.dig(*required_response_key) end end end
Version data entries
8 entries across 8 versions & 1 rubygems