Class: JSONAPI::Consumer::Middleware::RaiseError

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

Instance Method Summary collapse

Instance Method Details

#on_complete(env) ⇒ Object

Raises:



3
4
5
6
7
# File 'lib/jsonapi/consumer/middleware/raise_error.rb', line 3

def on_complete(env)
  return if (status = env[:status]) < 400
  message = "#{env[:status]} #{env[:method].upcase} #{env[:url]} #{env[:body]}"
  raise ::JSONAPI::Consumer::Errors.class_for_error_code(status).new(message, response_values(env))
end

#parse_body(body) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/jsonapi/consumer/middleware/raise_error.rb', line 13

def parse_body(body)
  if body.nil?
    nil
  else
    JSON.parse(body) rescue nil
  end
end

#response_values(env) ⇒ Object



9
10
11
# File 'lib/jsonapi/consumer/middleware/raise_error.rb', line 9

def response_values(env)
  {status: env[:status], headers: env[:response_headers], body: parse_body(env[:body])}
end