Exception: CurrencyCloud::ApiError
- Inherits:
-
StandardError
- Object
- StandardError
- CurrencyCloud::ApiError
- Includes:
- ErrorUtils
- Defined in:
- lib/currency_cloud/errors/api_error.rb
Direct Known Subclasses
AuthenticationError, BadRequestError, ForbiddenError, InternalApplicationError, NotFoundError, TooManyRequestsError
Constant Summary
Constants included from ErrorUtils
ErrorUtils::REDACTED_PARAMS, ErrorUtils::REDACTED_STRING
Instance Attribute Summary collapse
-
#code ⇒ Object
readonly
Returns the value of attribute code.
-
#messages ⇒ Object
readonly
Returns the value of attribute messages.
-
#raw_response ⇒ Object
readonly
Returns the value of attribute raw_response.
-
#status_code ⇒ Object
readonly
Returns the value of attribute status_code.
Instance Method Summary collapse
-
#initialize(verb, route, params, raw_response) ⇒ ApiError
constructor
A new instance of ApiError.
- #to_s ⇒ Object
Methods included from ErrorUtils
Constructor Details
#initialize(verb, route, params, raw_response) ⇒ ApiError
Returns a new instance of ApiError.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/currency_cloud/errors/api_error.rb', line 27 def initialize(verb, route, params, raw_response) @verb = verb @route = route @params = redacted_params(params) @raw_response = raw_response @status_code = raw_response.code errors = raw_response.parsed_response @code = errors['error_code'] @messages = [] return unless errors['error_messages'] errors['error_messages'].each do |field, | if .is_a?(Array) .each do || @messages << ApiErrorMessage.new(field, ) end else @messages << ApiErrorMessage.new(field, ) end end end |
Instance Attribute Details
#code ⇒ Object (readonly)
Returns the value of attribute code.
25 26 27 |
# File 'lib/currency_cloud/errors/api_error.rb', line 25 def code @code end |
#messages ⇒ Object (readonly)
Returns the value of attribute messages.
25 26 27 |
# File 'lib/currency_cloud/errors/api_error.rb', line 25 def @messages end |
#raw_response ⇒ Object (readonly)
Returns the value of attribute raw_response.
25 26 27 |
# File 'lib/currency_cloud/errors/api_error.rb', line 25 def raw_response @raw_response end |
#status_code ⇒ Object (readonly)
Returns the value of attribute status_code.
25 26 27 |
# File 'lib/currency_cloud/errors/api_error.rb', line 25 def status_code @status_code end |
Instance Method Details
#to_s ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/currency_cloud/errors/api_error.rb', line 50 def to_s class_name = super string_params = Hash[@params.map { |k, v| [k.to_s, v.to_s] }] error_details = { 'platform' => platform, 'request' => { 'parameters' => string_params, 'verb' => @verb.to_s, 'url' => @route }, 'response' => { 'status_code' => status_code, 'date' => raw_response.headers['Date'], 'request_id' => (raw_response.headers['x-request-id'] || 0).to_i }, 'errors' => .map(&:to_h) } "#{class_name}#{$INPUT_RECORD_SEPARATOR}#{YAML.dump(error_details)}" end |