Exception: ECMBlockchain::Error

Inherits:
StandardError
  • Object
show all
Defined in:
lib/ecm-blockchain-api/errors.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message: "", code: nil, details: nil, name: nil) ⇒ ECMBlockchain::Error

Initializes a new Error object

Parameters:

  • message (Exception, String) (defaults to: "")
  • code (Integer) (defaults to: nil)


23
24
25
26
27
28
29
# File 'lib/ecm-blockchain-api/errors.rb', line 23

def initialize(message: "", code: nil, details: nil, name: nil)
  super(message)

  @code = code
  @details = details
  @name = name
end

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code.



3
4
5
# File 'lib/ecm-blockchain-api/errors.rb', line 3

def code
  @code
end

#detailsObject (readonly)

Returns the value of attribute details.



3
4
5
# File 'lib/ecm-blockchain-api/errors.rb', line 3

def details
  @details
end

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'lib/ecm-blockchain-api/errors.rb', line 3

def name
  @name
end

Class Method Details

.raise_error(response) ⇒ Object

Raises:

  • (klass)


5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/ecm-blockchain-api/errors.rb', line 5

def self.raise_error(response)
  klass = ERROR_CLASS_MAP[response.code] || self
  res = response.body
  res = '{}' if res == ''
  err = JSON.parse(res).deep_symbolize_keys[:error]
  raise klass.new(
    message: err[:message] || response.headers["status"], 
    code: err[:statusCode] || response.code, 
    details: err[:details], 
    name: klass.to_s
  )
end