Class: FriendlyShipping::ApiErrorHandler
- Inherits:
-
Object
- Object
- FriendlyShipping::ApiErrorHandler
- Includes:
- Dry::Monads::Result::Mixin
- Defined in:
- lib/friendly_shipping/api_error_handler.rb
Overview
Handles API errors by wrapping them in an API error class (ApiError by default) which
is then wrapped in an ApiFailure (along with the original API request and response).
Finally, the ApiFailure is then wrapped in a Dry::Monads::Failure.
Instance Attribute Summary collapse
-
#api_error_class ⇒ Class
readonly
The class used to wrap the API error.
Instance Method Summary collapse
- #call(error, original_request: nil, original_response: nil) ⇒ Failure<ApiFailure>
-
#initialize(api_error_class: FriendlyShipping::ApiError) ⇒ ApiErrorHandler
constructor
A new instance of ApiErrorHandler.
Constructor Details
#initialize(api_error_class: FriendlyShipping::ApiError) ⇒ ApiErrorHandler
Returns a new instance of ApiErrorHandler.
16 17 18 |
# File 'lib/friendly_shipping/api_error_handler.rb', line 16 def initialize(api_error_class: FriendlyShipping::ApiError) @api_error_class = api_error_class end |
Instance Attribute Details
#api_error_class ⇒ Class (readonly)
Returns the class used to wrap the API error.
13 14 15 |
# File 'lib/friendly_shipping/api_error_handler.rb', line 13 def api_error_class @api_error_class end |
Instance Method Details
#call(error, original_request: nil, original_response: nil) ⇒ Failure<ApiFailure>
24 25 26 27 28 29 30 31 32 |
# File 'lib/friendly_shipping/api_error_handler.rb', line 24 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 |