Sha256: 792218ff9e6ebda7fab0566fd3cf0c9269e71bb506cff038e2eb2df633f17b7d

Contents?: true

Size: 1 KB

Versions: 43

Compression:

Stored size: 1 KB

Contents

module Brightbox
  class ErrorParser
    include Brightbox::Logging
    attr_accessor :socket_error, :token_error

    def initialize(socket_error)
      @socket_error = socket_error
    end

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

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

    def extract_response_from_json(error_json, e)
      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: #{e}"
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
brightbox-cli-3.3.0 lib/brightbox-cli/error_parser.rb
brightbox-cli-3.2.0 lib/brightbox-cli/error_parser.rb
brightbox-cli-3.1.0 lib/brightbox-cli/error_parser.rb
brightbox-cli-3.0.1 lib/brightbox-cli/error_parser.rb
brightbox-cli-3.0.0 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.12.0 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.11.2 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.11.1 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.11.0 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.10.0 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.9.3 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.9.2 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.9.1 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.9.0 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.8.2 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.8.1 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.8.0 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.7.1 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.7.0 lib/brightbox-cli/error_parser.rb
brightbox-cli-2.6.0 lib/brightbox-cli/error_parser.rb