Class: EngagingNetworksRest::Response::RaiseError

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

Instance Method Summary collapse

Instance Method Details

#error_message(response) ⇒ Object



28
29
30
# File 'lib/engaging_networks_rest/response/raise_error.rb', line 28

def error_message(response)
  "#{response[:method].to_s.upcase} #{response[:url]}: #{response[:status]} \n\n #{response[:body]}"
end

#on_complete(response) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/engaging_networks_rest/response/raise_error.rb', line 12

def on_complete(response)
  status_code = response[:status].to_i
  if (400...600).include? status_code
    case status_code
    when 401
      raise Unauthorized, error_message(response)
    when 404
      raise NotFound, error_message(response)
    when 500
      raise InternalError, error_message(response)
    else
      raise StandardError, error_message(response)
    end
  end
end