Class: Faraday::ErrorHandler

Inherits:
Middleware
  • Object
show all
Defined in:
lib/faraday/error_handler.rb

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/faraday/error_handler.rb', line 8

def call(env)

  begin
    response = @app.call(env)
  rescue Net::ReadTimeout, Errno::ETIMEDOUT, Timeout::Error, Faraday::Error::TimeoutError => e # Timeout Errors
    raise UTApi::ConnectionError.new(e, response_values(env))
  end

  response.on_complete do |env|
    handle_return_errors(env)
  end

end

#handle_return_errors(env) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# File 'lib/faraday/error_handler.rb', line 22

def handle_return_errors(env)
  case env[:status]
    when 302, 200, 461
      # Let them pass through
    when 401
      raise UTApi::NotLoggedInError, response_values(env)
    else
      raise UTApi::ServerError, response_values(env)
  end
end

#response_values(env) ⇒ Object



33
34
35
# File 'lib/faraday/error_handler.rb', line 33

def response_values(env)
  {:status => env.status, :headers => env.response_headers, :body => env.body}
end