Sha256: edd2c0104b18be8f0daad251945552b0c47d23573ec43d59fb067775308add43

Contents?: true

Size: 689 Bytes

Versions: 2

Compression:

Stored size: 689 Bytes

Contents

module CurrencyCloud
  class UnexpectedError < StandardError
    include ErrorUtils

    attr_reader :inner_error

    def initialize(verb, route, params, e)
      @verb = verb
      @route = route
      @params = redacted_params(params)
      @inner_error = e
    end

    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
        },
        'inner_error' => inner_error.to_s
      }
      "#{class_name}#{$/}#{YAML.dump(error_details)}"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
currency_cloud-0.9.0 lib/currency_cloud/errors/unexpected_error.rb
currency_cloud-0.8.2 lib/currency_cloud/errors/unexpected_error.rb