Sha256: 2071b7e725d8390fdb28584bfa027c1fb46d1a248c2faf8ea77e4a4f982e049e

Contents?: true

Size: 793 Bytes

Versions: 3

Compression:

Stored size: 793 Bytes

Contents

require 'tomograph'
require 'esplanade/request'
require 'esplanade/response'

module Esplanade
  class CheckCustomResponseMiddleware
    def initialize(
      app,
        prefix: Esplanade.configuration.prefix,
        apib_path: Esplanade.configuration.apib_path,
        drafter_yaml_path: Esplanade.configuration.drafter_yaml_path
    )
      @app = app
      @documentation = Tomograph::Tomogram.new(
        prefix: prefix,
        apib_path: apib_path,
        drafter_yaml_path: drafter_yaml_path
      )
    end

    def call(env)
      request = Esplanade::Request.new(@documentation, env)

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

      response = Esplanade::Response.new(request, status, body)
      response.validation.valid!

      [status, headers, body]
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
esplanade-1.3.0 lib/esplanade/middlewares/check_custom_response_middleware.rb
esplanade-1.2.1 lib/esplanade/middlewares/check_custom_response_middleware.rb
esplanade-1.2.0 lib/esplanade/middlewares/check_custom_response_middleware.rb