Class: FinAppsCore::Middleware::RaiseError

Inherits:
Faraday::Response::Middleware
  • Object
show all
Defined in:
lib/finapps_core/middleware/response/raise_error.rb

Overview

:nodoc:

Constant Summary collapse

SUCCESS_STATUSES =
200..299
CONNECTION_FAILED_STATUS =
407
API_SESSION_TIMEOUT =
419

Instance Method Summary collapse

Instance Method Details

#on_complete(env) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/finapps_core/middleware/response/raise_error.rb', line 12

def on_complete(env)
  return if SUCCESS_STATUSES.include?(env[:status])

  if env[:status] == API_SESSION_TIMEOUT
    raise(FinAppsCore::Error::ApiSessionTimeoutError, 'Api Session Timed out')
  elsif env[:status] == CONNECTION_FAILED_STATUS
    raise(Faraday::Error::ConnectionFailed, '407 "Proxy Authentication Required"')
  else
    raise(Faraday::Error::ClientError, response_values(env))
  end
end

#response_values(env) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/finapps_core/middleware/response/raise_error.rb', line 24

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