Class: Esplanade::SafeMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/esplanade/middlewares/safe_middleware.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, **params) ⇒ SafeMiddleware

Returns a new instance of SafeMiddleware.



7
8
9
10
# 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

Instance Method Details

#call(env) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# 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) ⇒ Object



24
25
26
27
28
29
# 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) ⇒ Object



31
32
33
34
35
36
# 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