class Esplanade::SafeMiddleware

Public Class Methods

new(app, **params) click to toggle source
# File lib/esplanade/middlewares/safe_middleware.rb, line 7
def initialize(app, **params)
  @app = app
  @documentation = Tomograph::Tomogram.new(Esplanade.configuration.params.merge(params))
end

Public Instance Methods

call(env) click to toggle source
# File lib/esplanade/middlewares/safe_middleware.rb, line 12
def call(env)
  request = Esplanade::Request.new(@documentation, env)
  check_request(request)

  status, headers, body = @app.call(env)

  response = Esplanade::Response.new(request, status, body)
  check_response(response)

  [status, headers, body]
end
check_request(request) click to toggle source
# File lib/esplanade/middlewares/safe_middleware.rb, line 24
def check_request(request)
  request.validation.valid!
  Rails.logger.debug 'ESPLANADE SAYS THAT THE REQUEST IS VALID'
rescue Esplanade::Request::Error => e
  Rails.logger.debug "ESPLANADE SKIP: #{e.inspect}"
end
check_response(response) click to toggle source
# File lib/esplanade/middlewares/safe_middleware.rb, line 31
def check_response(response)
  response.validation.valid!
  Rails.logger.debug 'ESPLANADE SAYS THAT THE RESPONSE IS VALID'
rescue Esplanade::Response::Error => e
  Rails.logger.debug "ESPLANADE SKIP: #{e.inspect}"
end