Exception: Synapse::Error
- Inherits:
-
StandardError
- Object
- StandardError
- Synapse::Error
- Defined in:
- lib/synapse_api/error.rb
Overview
Custom class for handling HTTP and API errors.
Constant Summary collapse
- ClientError =
Raised on a 4xx HTTP status code
Class.new(self)
- Accepted =
Raised on the HTTP status code 202
Class.new(ClientError)
- BadRequest =
Raised on the HTTP status code 400
Class.new(ClientError)
Class.new(ClientError)
- RequestDeclined =
Raised on the HTTP status code 402
Class.new(ClientError)
- NotFound =
Raised on the HTTP status code 404
Class.new(ClientError)
- Conflict =
Raised on the HTTP status code 409
Class.new(ClientError)
- TooManyRequests =
Raised on the HTTP status code 429
Class.new(ClientError)
- ServerError =
Raised on a 5xx HTTP status code
Class.new(self)
- InternalServerError =
Raised on the HTTP status code 500
Class.new(ServerError)
Class.new(ServerError)
- Unknown =
Raised on unexpected HTTP status codes
Class.new(self)
- ERRORS =
HTTP status code to Error subclass mapping
{ '202' => Synapse::Error::Accepted, '400' => Synapse::Error::BadRequest, '401' => Synapse::Error::Unauthorized, '402' => Synapse::Error::RequestDeclined, '404' => Synapse::Error::NotFound, '409' => Synapse::Error::Conflict, '429' => Synapse::Error::TooManyRequests, '500' => Synapse::Error::InternalServerError, '503' => Synapse::Error::ServiceUnavailable, }.freeze
Instance Attribute Summary collapse
-
#code ⇒ Integer
readonly
The SynapsePay API Error Code.
-
#http_code ⇒ Integer
readonly
The SynapsePay API Error Code.
-
#message ⇒ Hash
readonly
The JSON HTTP response in Hash form.
-
#response ⇒ Hash
readonly
The JSON HTTP response in Hash form.
Class Method Summary collapse
-
.from_response(body) ⇒ Synapse::Error
Create a new error from an HTTP response.
Instance Method Summary collapse
-
#initialize(message: '', code: nil, response: {}, http_code:) ⇒ Synapse::Error
constructor
Initializes a new Error object.
Constructor Details
#initialize(message: '', code: nil, response: {}, http_code:) ⇒ Synapse::Error
Initializes a new Error object
106 107 108 109 110 111 112 |
# File 'lib/synapse_api/error.rb', line 106 def initialize(message: '', code: nil, response: {}, http_code:) super() @code = code @response = response @message = @http_code = http_code end |
Instance Attribute Details
#code ⇒ Integer (readonly)
The SynapsePay API Error Code
56 57 58 |
# File 'lib/synapse_api/error.rb', line 56 def code @code end |
#http_code ⇒ Integer (readonly)
The SynapsePay API Error Code
56 57 58 |
# File 'lib/synapse_api/error.rb', line 56 def http_code @http_code end |
#message ⇒ Hash (readonly)
The JSON HTTP response in Hash form
60 61 62 |
# File 'lib/synapse_api/error.rb', line 60 def @message end |
#response ⇒ Hash (readonly)
The JSON HTTP response in Hash form
60 61 62 |
# File 'lib/synapse_api/error.rb', line 60 def response @response end |
Class Method Details
.from_response(body) ⇒ Synapse::Error
Create a new error from an HTTP response
68 69 70 71 72 73 |
# File 'lib/synapse_api/error.rb', line 68 def from_response(body) , error_code, http_code = parse_error(body) http_code = http_code.to_s klass = ERRORS[http_code] || Synapse::Error::Unknown klass.new(message: , code: error_code, response: body, http_code: http_code) end |