Sha256: ebb7b134a4c1af661d9e1a3e338733b32b59074a917fa32bfb1504e8e99d99de
Contents?: true
Size: 654 Bytes
Versions: 2
Compression:
Stored size: 654 Bytes
Contents
# frozen_string_literal: true module ApiProxy class Middleware def initialize(app, namespace = :default) @app = app @config = ApiProxy.configuration(namespace) end def call(env) return @app.call(env) unless allow_request?(env) builder = RequestOptionsBuilder.new(env, @config) request = ApiProxy::Request.new(builder) response = request.result Rack::Response.new(response.to_s, response.code, request.headers) end def allow_request?(env) return false unless env['REQUEST_PATH'].start_with?(@config.request_starts_with) @config.request_allowed.call(env) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
api_proxy-0.1.3 | lib/api_proxy/middleware.rb |
api_proxy-0.1.2 | lib/api_proxy/middleware.rb |