Class: BlueStateDigital::ErrorMiddleware

Inherits:
Faraday::Response::RaiseError
  • Object
show all
Defined in:
lib/blue_state_digital/error_middleware.rb

Instance Method Summary collapse

Instance Method Details

#on_complete(env) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/blue_state_digital/error_middleware.rb', line 7

def on_complete(env)
  case env[:status]
  when 404
    raise Faraday::Error::ResourceNotFound, response_values(env).to_s
  when 403
    raise BlueStateDigital::Unauthorized, response_values(env).to_s
  when 409
    if env.body =~ /does not exist/
      raise BlueStateDigital::ResourceDoesNotExist, response_values(env).to_s
    elsif env.body =~ /Email not found/
      raise BlueStateDigital::EmailNotFound, response_values(env).to_s
    else
      raise Faraday::Error::ClientError, response_values(env).to_s
    end
  when 407
    # mimic the behavior that we get with proxy requests with HTTPS
    raise Faraday::Error::ConnectionFailed, %{407 "Proxy Authentication Required "}
  when ClientErrorStatuses
    raise Faraday::Error::ClientError, response_values(env).to_s
  end
end