Exception: Wave::Error
- Inherits:
-
StandardError
- Object
- StandardError
- Wave::Error
- Defined in:
- lib/wave/errors.rb
Overview
Canonical WAVE API error. The gateway emits a nested envelope “error”:{“code”,“message”}; code/message are lifted from it.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#code ⇒ Object
readonly
Returns the value of attribute code.
-
#details ⇒ Object
readonly
Returns the value of attribute details.
-
#request_id ⇒ Object
readonly
Returns the value of attribute request_id.
-
#retryable ⇒ Object
readonly
Returns the value of attribute retryable.
-
#status_code ⇒ Object
readonly
Returns the value of attribute status_code.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(message, code:, status_code:, request_id: nil, details: nil) ⇒ Error
constructor
A new instance of Error.
Constructor Details
#initialize(message, code:, status_code:, request_id: nil, details: nil) ⇒ Error
Returns a new instance of Error.
9 10 11 12 13 14 15 16 |
# File 'lib/wave/errors.rb', line 9 def initialize(, code:, status_code:, request_id: nil, details: nil) super() @code = code @status_code = status_code @request_id = request_id @details = details @retryable = self.class.retryable?(status_code, code) end |
Instance Attribute Details
#code ⇒ Object (readonly)
Returns the value of attribute code.
7 8 9 |
# File 'lib/wave/errors.rb', line 7 def code @code end |
#details ⇒ Object (readonly)
Returns the value of attribute details.
7 8 9 |
# File 'lib/wave/errors.rb', line 7 def details @details end |
#request_id ⇒ Object (readonly)
Returns the value of attribute request_id.
7 8 9 |
# File 'lib/wave/errors.rb', line 7 def request_id @request_id end |
#retryable ⇒ Object (readonly)
Returns the value of attribute retryable.
7 8 9 |
# File 'lib/wave/errors.rb', line 7 def retryable @retryable end |
#status_code ⇒ Object (readonly)
Returns the value of attribute status_code.
7 8 9 |
# File 'lib/wave/errors.rb', line 7 def status_code @status_code end |
Class Method Details
.retryable?(status_code, code) ⇒ Boolean
18 19 20 21 22 23 |
# File 'lib/wave/errors.rb', line 18 def self.retryable?(status_code, code) return true if status_code == 429 return true if status_code >= 500 && status_code < 600 %w[TIMEOUT NETWORK_ERROR SERVICE_UNAVAILABLE].include?(code) end |