Sha256: e326bcaef45a6ec93ddb56bd347d72f5d32a560b6a327fd02c1b1c63286c001f
Contents?: true
Size: 1.38 KB
Versions: 2
Compression:
Stored size: 1.38 KB
Contents
module Lamby class RackRest < Lamby::Rack class << self def handle?(event) event.key?('httpMethod') end end def response(handler) if handler.base64_encodeable? { isBase64Encoded: true, body: handler.body64 } else super end.tap do |r| if cookies = handler.set_cookies r[:multiValueHeaders] ||= {} r[:multiValueHeaders]['Set-Cookie'] = cookies end end end private def env_base rack_version = defined?(::Rack::VERSION) ? ::Rack::VERSION : ::Rack.release { ::Rack::REQUEST_METHOD => event['httpMethod'], ::Rack::SCRIPT_NAME => '', ::Rack::PATH_INFO => event['path'] || '', ::Rack::QUERY_STRING => query_string, ::Rack::SERVER_NAME => headers['Host'], ::Rack::SERVER_PORT => headers['X-Forwarded-Port'], ::Rack::SERVER_PROTOCOL => event.dig('requestContext', 'protocol') || 'HTTP/1.1', ::Rack::RACK_VERSION => rack_version, ::Rack::RACK_URL_SCHEME => 'https', ::Rack::RACK_INPUT => StringIO.new(body || ''), ::Rack::RACK_ERRORS => $stderr, LAMBDA_EVENT => event, LAMBDA_CONTEXT => context }.tap do |env| ct = content_type cl = content_length env['CONTENT_TYPE'] = ct if ct env['CONTENT_LENGTH'] = cl if cl end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lamby-6.0.1 | lib/lamby/rack_rest.rb |
lamby-6.0.0 | lib/lamby/rack_rest.rb |