class KSequencing::FaradayMiddleware::RaiseHttpException
Public Instance Methods
call(request_env)
click to toggle source
# File lib/k_sequencing/faraday/raise_http_exception.rb, line 6 def call(request_env) @app.call(request_env).on_complete do |response| case response[:status].to_i when 200, 201 # nothing to do here when 400 error_message = error_message(response[:body]) raise BadRequest, "#{response[:status]}: #{error_message}" when 403 error_message = error_message(response[:body]) raise NotPermitted, "#{response[:status]}: #{error_message}" when 404 error_message = error_message(response[:body]) raise NotFound, "#{response[:status]}: #{error_message}" else request_method = response[:method].to_s.upcase request_url = response[:url].to_s response_status = response[:status] error_message = error_message(response[:body]) raise Error, "#{response_status}: #{request_method} #{request_url} #{error_message}" end end end
Private Instance Methods
error_message(response_body)
click to toggle source
# File lib/k_sequencing/faraday/raise_http_exception.rb, line 32 def error_message(response_body) if !response_body.nil? && response_body.is_a?(String) response_body = JSON.parse(response_body) response_body['message'] end end