Module: Mercadopago

Defined in:
lib/mercadopago.rb,
lib/mercadopago/sdk.rb,
lib/mercadopago/core/mp_base.rb,
lib/mercadopago/config/config.rb,
lib/mercadopago/resources/card.rb,
lib/mercadopago/resources/user.rb,
lib/mercadopago/errors/response.rb,
lib/mercadopago/resources/oauth.rb,
lib/mercadopago/resources/order.rb,
lib/mercadopago/resources/point.rb,
lib/mercadopago/http/http_client.rb,
lib/mercadopago/resources/refund.rb,
lib/mercadopago/errors/exceptions.rb,
lib/mercadopago/resources/invoice.rb,
lib/mercadopago/resources/payment.rb,
lib/mercadopago/webhook/validator.rb,
lib/mercadopago/resources/customer.rb,
lib/mercadopago/pagination/iterator.rb,
lib/mercadopago/resources/card_token.rb,
lib/mercadopago/resources/chargeback.rb,
lib/mercadopago/resources/preference.rb,
lib/mercadopago/resources/preapproval.rb,
lib/mercadopago/config/request_options.rb,
lib/mercadopago/resources/subscription.rb,
lib/mercadopago/resources/merchant_order.rb,
lib/mercadopago/resources/payment_methods.rb,
lib/mercadopago/resources/advanced_payment.rb,
lib/mercadopago/resources/preapproval_plan.rb,
lib/mercadopago/resources/order_transaction.rb,
lib/mercadopago/resources/disbursement_refund.rb,
lib/mercadopago/resources/identification_type.rb

Overview

typed: true frozen_string_literal: true

Defined Under Namespace

Modules: Pagination, Webhook Classes: AdvancedPayment, Card, CardToken, Chargeback, Config, Customer, DisbursementRefund, HttpClient, IdentificationType, Invoice, MPAuthenticationError, MPBadRequestError, MPBase, MPConnectionError, MPDependencyError, MPForbiddenError, MPIdempotencyError, MPNotFoundError, MPPaymentError, MPRateLimitError, MPResourceLockedError, MPResponse, MPServerError, MPValidationError, MercadoPagoError, MerchantOrder, OAuth, Order, OrderTransaction, Payment, PaymentMethods, Point, Preapproval, PreapprovalPlan, Preference, Refund, RequestOptions, SDK, Subscription, User

Class Method Summary collapse

Class Method Details

.build_error(status_code, response_body = nil, retry_after = nil) ⇒ MercadoPagoError

Factory: maps an HTTP status code to the most specific exception subtype.

Parameters:

  • status_code (Integer)

    HTTP status code from the API response

  • response_body (Hash) (defaults to: nil)

    parsed API error body

  • retry_after (Integer, nil) (defaults to: nil)

    seconds from Retry-After header (429 only)

Returns:



99
100
101
102
103
104
105
106
107
# File 'lib/mercadopago/errors/exceptions.rb', line 99

def self.build_error(status_code, response_body = nil, retry_after = nil)
  return MPRateLimitError.new(status_code, response_body, retry_after) if status_code == 429

  klass = STATUS_MAP[status_code]
  return klass.new(status_code, response_body) if klass
  return MPServerError.new(status_code, response_body) if status_code >= 500

  MercadoPagoError.new(status_code, response_body)
end