Class: PaypalAPI::FailedRequestErrorBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/paypal-api/failed_request_error_builder.rb

Overview

Builds PaypalAPI::FailedRequest error

Constant Summary collapse

RESPONSE_ERROR_MAP =

Matchings for Net::HTTP response class to PaypalAPI::Error class

{
  Net::HTTPBadRequest => Errors::BadRequest,                     # 400
  Net::HTTPUnauthorized => Errors::Unauthorized,                 # 401
  Net::HTTPForbidden => Errors::Forbidden,                       # 403
  Net::HTTPNotFound => Errors::NotFound,                         # 404
  Net::HTTPMethodNotAllowed => Errors::MethodNotAllowed,         # 405
  Net::HTTPNotAcceptable => Errors::NotAcceptable,               # 406
  Net::HTTPConflict => Errors::Conflict,                         # 409
  Net::HTTPUnsupportedMediaType => Errors::UnsupportedMediaType, # 415
  Net::HTTPUnprocessableEntity => Errors::UnprocessableEntity,   # 422
  Net::HTTPTooManyRequests => Errors::TooManyRequests,           # 429
  Net::HTTPInternalServerError => Errors::InternalServerError,   # 500
  Net::HTTPServiceUnavailable => Errors::ServiceUnavailable      # 503
}.freeze

Class Method Summary collapse

Class Method Details

.call(request:, response:) ⇒ Errors::FailedRequestError

Builds FailedRequestError instance

Parameters:

  • request (Request)

    Original request

  • response (Response)

    Original response

Returns:

  • (Errors::FailedRequestError)

    error object



34
35
36
37
38
39
# File 'lib/paypal-api/failed_request_error_builder.rb', line 34

def call(request:, response:)
  http_response = response.http_response
  error_message = "#{http_response.code} #{http_response.message}"
  error_class = RESPONSE_ERROR_MAP.fetch(http_response.class, Errors::FailedRequest)
  error_class.new(error_message, response: response, request: request)
end