class IIJ::Sakagura::Core::Middleware::RaiseError

Public Class Methods

new(app) click to toggle source
Calls superclass method
# File lib/iij/sakagura/core/middleware/iij_sakagura_raise_error.rb, line 9
def initialize(app)
  super(app)
end

Public Instance Methods

on_complete(env) click to toggle source
# File lib/iij/sakagura/core/middleware/iij_sakagura_raise_error.rb, line 13
def on_complete(env)
  case env[:status]
  when 200...300
    nil
  when 400
    raise IIJ::Sakagura::Core::Error::BadRequest, response_values(env)
  when 401
    raise IIJ::Sakagura::Core::Error::Unauthorized, response_values(env)
  when 403
    raise IIJ::Sakagura::Core::Error::Forbidden, response_values(env)
  when 404
    raise IIJ::Sakagura::Core::Error::NotFound, response_values(env)
  when 400...500
    raise IIJ::Sakagura::Core::Error::ClientError, response_values(env)
  when 500
    raise IIJ::Sakagura::Core::Error::SystemError, response_values(env)
  when 502
    raise IIJ::Sakagura::Core::Error::BadGateway, response_values(env)
  when 503
    raise IIJ::Sakagura::Core::Error::ServiceUnavailable, response_values(env)
  when 500...600
    raise IIJ::Sakagura::Core::Error::ServerError, response_values(env)
  end

  parse_body(env)
end
parse_body(env) click to toggle source
# File lib/iij/sakagura/core/middleware/iij_sakagura_raise_error.rb, line 44
def parse_body(env)
  if env[:body].has_key? "ErrorResponse"
    raise IIJ::Sakagura::Core::Error::BackendError, response_values(env)
  end
end
response_values(env) click to toggle source
# File lib/iij/sakagura/core/middleware/iij_sakagura_raise_error.rb, line 40
def response_values(env)
  {:status => env[:status], :headers => env[:response_headers], :body => env[:body]}
end