Class: Brightbox::ErrorParser

Inherits:
Object
  • Object
show all
Includes:
Logging
Defined in:
lib/brightbox-cli/error_parser.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Logging

included

Constructor Details

#initialize(socket_error) ⇒ ErrorParser

Returns a new instance of ErrorParser.



6
7
8
# File 'lib/brightbox-cli/error_parser.rb', line 6

def initialize(socket_error)
  @socket_error = socket_error
end

Instance Attribute Details

#socket_errorObject

Returns the value of attribute socket_error.



4
5
6
# File 'lib/brightbox-cli/error_parser.rb', line 4

def socket_error
  @socket_error
end

#token_errorObject

Returns the value of attribute token_error.



4
5
6
# File 'lib/brightbox-cli/error_parser.rb', line 4

def token_error
  @token_error
end

Instance Method Details

#extract_response_from_json(error_json, err) ⇒ Object



32
33
34
35
36
37
38
39
40
# File 'lib/brightbox-cli/error_parser.rb', line 32

def extract_response_from_json(error_json, err)
  json_error = error_json["errors"] || error_json["error"]
  if json_error && !json_error.empty?
    error_string = Array(json_error).join(" ")
    error "ERROR: #{error_string}"
  else
    error "ERROR: #{err}"
  end
end

#parse_http_error(err) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/brightbox-cli/error_parser.rb', line 19

def parse_http_error(err)
  if err.respond_to?(:response) && err.response.respond_to?(:body)
    begin
      json_response = MultiJson.load(err.response.body)
      extract_response_from_json(json_response, err)
    rescue StandardError
      {}
    end
  else
    error "ERROR: #{err}"
  end
end

#pretty_printObject



10
11
12
13
14
15
16
17
# File 'lib/brightbox-cli/error_parser.rb', line 10

def pretty_print
  case socket_error
  when Excon::Errors::ServiceUnavailable
    error "Api currently unavailable"
  else
    parse_http_error(socket_error)
  end
end