Exception: StraddlePay::Error

Inherits:
StandardError
  • Object
show all
Defined in:
lib/straddle_pay/errors.rb

Overview

Base error for all Straddle API errors.

Examples:

rescue StraddlePay::Error => e
  e.status      # => 422
  e.error_type  # => "validation_error"
  e.error_items # => [{"reference" => "email", "detail" => "is invalid"}]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message = nil, status: nil, body: nil) ⇒ Error

Returns a new instance of Error.

Parameters:

  • message (String, nil) (defaults to: nil)

    error message

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

    HTTP status code

  • body (Hash, nil) (defaults to: nil)

    parsed response body



24
25
26
27
28
29
30
31
# File 'lib/straddle_pay/errors.rb', line 24

def initialize(message = nil, status: nil, body: nil)
  error_hash = body.is_a?(Hash) ? (body["error"] || {}) : {}
  @error_type = error_hash["type"] if error_hash.is_a?(Hash)
  @error_items = (error_hash.is_a?(Hash) ? error_hash["items"] : nil) || []
  super(message)
  @status = status
  @body = body
end

Instance Attribute Details

#bodyHash? (readonly)

Returns full response body.

Returns:

  • (Hash, nil)

    full response body



15
16
17
# File 'lib/straddle_pay/errors.rb', line 15

def body
  @body
end

#error_itemsArray<Hash> (readonly)

Returns Straddle error items with reference and detail.

Returns:

  • (Array<Hash>)

    Straddle error items with reference and detail



19
20
21
# File 'lib/straddle_pay/errors.rb', line 19

def error_items
  @error_items
end

#error_typeString? (readonly)

Returns Straddle error type (e.g. "validation_error").

Returns:

  • (String, nil)

    Straddle error type (e.g. "validation_error")



17
18
19
# File 'lib/straddle_pay/errors.rb', line 17

def error_type
  @error_type
end

#statusInteger? (readonly)

Returns HTTP status code.

Returns:

  • (Integer, nil)

    HTTP status code



13
14
15
# File 'lib/straddle_pay/errors.rb', line 13

def status
  @status
end