class Protein::HTTPAdapter::Middleware

Public Class Methods

new(router, secret) click to toggle source
# File lib/protein/http_adapter.rb, line 9
def initialize(router, secret)
  @router = router
  @secret = secret
end

Public Instance Methods

call(env) click to toggle source
# File lib/protein/http_adapter.rb, line 14
def call(env)
  check_secret(env)

  request_payload = env["rack.input"].read
  response_payload = Processor.call(@router, request_payload)

  ["200", {}, [response_payload]]
end

Private Instance Methods

check_secret(env) click to toggle source
# File lib/protein/http_adapter.rb, line 25
def check_secret(env)
  return if @secret == env["HTTP_X_RPC_SECRET"]

  raise(TransportError, "invalid secret")
end