Class: FriendlyShipping::ApiErrorHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/friendly_shipping/api_error_handler.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_error_class: FriendlyShipping::ApiError) ⇒ ApiErrorHandler

Returns a new instance of ApiErrorHandler.

Parameters:

  • api_error_class (Class) (defaults to: FriendlyShipping::ApiError)


12
13
14
# File 'lib/friendly_shipping/api_error_handler.rb', line 12

def initialize(api_error_class: FriendlyShipping::ApiError)
  @api_error_class = api_error_class
end

Instance Attribute Details

#api_error_classObject (readonly)

Returns the value of attribute api_error_class.



9
10
11
# File 'lib/friendly_shipping/api_error_handler.rb', line 9

def api_error_class
  @api_error_class
end

Instance Method Details

#call(error, original_request: nil, original_response: nil) ⇒ Dry::Monads::Failure<FriendlyShipping::ApiFailure>

Parameters:

  • error (StandardError)
  • original_request (FriendlyShipping::Request) (defaults to: nil)
  • original_response (RestClient::Response) (defaults to: nil)

Returns:



20
21
22
23
24
25
26
27
28
# File 'lib/friendly_shipping/api_error_handler.rb', line 20

def call(error, original_request: nil, original_response: nil)
  Failure(
    ApiFailure.new(
      api_error_class.new(error),
      original_request: original_request,
      original_response: Response.new_from_rest_client_response(original_response)
    )
  )
end