Sha256: 08952c3696735a0bbec9b69bc1377d0a83f655922522922994740ab55afe8f2c

Contents?: true

Size: 587 Bytes

Versions: 2

Compression:

Stored size: 587 Bytes

Contents

require 'faraday'
require 'json'


module Terminal
  module ResponseExt
    class RaiseErrorFromJson < Faraday::Response::Middleware
      def on_complete(response)
        # Terminal.com always returns 200
        code = response.status.to_i

        if code == 200 && response.body['success'] == false || !response.body['error'].nil?
          fail(Terminal::APIResponseError.new(response))
        else
           # How did we get here?
        end
      end

    end
  end
end

Faraday::Response.register_middleware :raise_error_from_json => Terminal::ResponseExt::RaiseErrorFromJson

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cc-terminal-0.1.1 lib/terminal/response/raise_error_from_json.rb
cc-terminal-0.1.0 lib/terminal/response/raise_error_from_json.rb