Exception: K3cloud::K3cloudError

Inherits:
StandardError
  • Object
show all
Defined in:
lib/k3cloud/errors/k3cloud_error.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeK3cloudError

Returns a new instance of K3cloudError.



9
10
11
12
13
14
# File 'lib/k3cloud/errors/k3cloud_error.rb', line 9

def initialize
  @message = nil
  @inner_ex_wrapper = nil
  @inner_exception = nil
  super
end

Instance Attribute Details

#inner_ex_wrapperObject

Returns the value of attribute inner_ex_wrapper.



7
8
9
# File 'lib/k3cloud/errors/k3cloud_error.rb', line 7

def inner_ex_wrapper
  @inner_ex_wrapper
end

#inner_exceptionObject

Returns the value of attribute inner_exception.



7
8
9
# File 'lib/k3cloud/errors/k3cloud_error.rb', line 7

def inner_exception
  @inner_exception
end

#messageObject

Returns the value of attribute message.



7
8
9
# File 'lib/k3cloud/errors/k3cloud_error.rb', line 7

def message
  @message
end

Class Method Details

.parse(json) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/k3cloud/errors/k3cloud_error.rb', line 16

def self.parse(json)
  return nil if json.nil? || json.to_s.empty?

  json = json.to_s
  index = json.index("{")
  json = json[index..-1] if index

  parsed_json = JSON.parse(json)
  kd_error = K3cloudError.new
  kd_error.message = parsed_json["Message"]
  inner_wrapper = parsed_json["InnerExWrapper"]
  inner_exception = parsed_json["InnerException"]
  kd_error.inner_ex_wrapper = inner_wrapper ? K3cloudError.parse(inner_wrapper.to_json) : nil
  kd_error.inner_exception = inner_exception ? K3cloudError.parse(inner_exception.to_json) : nil
  kd_error
rescue StandardError => e
  K3cloud.logger.error("Failed to parse exception message: #{e.message}")
  nil
end