Sha256: 92ccc612048eb0e968c1cc999116e013ccfc50333053b1c2daa11160345cf1d0

Contents?: true

Size: 827 Bytes

Versions: 7

Compression:

Stored size: 827 Bytes

Contents

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

    def initialize(socket_error)
      @socket_error = socket_error
    end

    def pretty_print
      case socket_error
      when Excon::Errors::ServiceUnavailable
        error "Api currently unavailable"
      when Excon::Errors::Error
        parse_http_error(socket_error)
      else
        error "ERROR: #{socket_error}"
      end
    end

    def parse_http_error(e)
      if e.respond_to?(:response) and e.response.respond_to?(:body)
        json_response = JSON.parse(e.response.body) rescue {}
        if json_error = json_response['errors']
          error "ERROR: #{json_error.join(" ")}"
        else
          error "ERROR: #{e}"
        end
      else
        error "ERROR: #{e}"
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
brightbox-cli-0.15.0 lib/brightbox-cli/error_parser.rb
brightbox-cli-0.14.1 lib/brightbox-cli/error_parser.rb
brightbox-cli-0.14.0 lib/brightbox-cli/error_parser.rb
brightbox-cli-0.13.1 lib/brightbox-cli/error_parser.rb
bbcloud-0.13.0 lib/bbcloud/error_parser.rb
brightbox-cli-0.13.0 lib/brightbox-cli/error_parser.rb
bbcloud-0.12.0 lib/bbcloud/error_parser.rb