Sha256: 66e5dc0a5c065feee9185d73076013697cc6dba0138f0a0760a44dfaaa141917

Contents?: true

Size: 1.46 KB

Versions: 18

Compression:

Stored size: 1.46 KB

Contents

# Somewhat based off of: https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/http/request.rb
class Jets::Controller
  class Request
    def initialize(event)
      @event = event
    end

    # lambda integration proxy headers
    HEADER_METHODS = %w[
      Accept
      Accept-Encoding
      Accept-Language
      cache-control
      CloudFront-Forwarded-Proto
      CloudFront-Is-Desktop-Viewer
      CloudFront-Is-Mobile-Viewer
      CloudFront-Is-SmartTV-Viewer
      CloudFront-Is-Tablet-Viewer
      CloudFront-Viewer-Country
      content-type
      Host
      origin
      Referer
      upgrade-insecure-requests
      User-Agent
      Via
      X-Amz-Cf-Id
      X-Amzn-Trace-Id
      X-Forwarded-For
      X-Forwarded-Port
      X-Forwarded-Proto
    ].freeze

    HEADER_METHODS.each do |meth|
      class_eval <<-METHOD, __FILE__, __LINE__ + 1
        def #{meth.downcase.underscore}       # def content_type
          headers["#{meth.downcase}"].freeze  #   headers["content-type"]
        end                                   # end
      METHOD
    end

    # API Gateway is inconsistent about how it cases it keys.
    # Sometimes it is "x-requested-with" vs "X-Requested-With"
    # Normalize it with downcase.
    def headers
      headers = @event["headers"] || {}
      headers.transform_keys { |key| key.downcase }
    end

    def xhr?
      headers["x-requested-with"] == "XMLHttpRequest"
    end

    def path
      @event["path"]
    end

  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
jets-1.0.18 lib/jets/controller/request.rb
jets-1.0.17 lib/jets/controller/request.rb
jets-1.0.16 lib/jets/controller/request.rb
jets-1.0.15 lib/jets/controller/request.rb
jets-1.0.13 lib/jets/controller/request.rb
jets-1.0.12 lib/jets/controller/request.rb
jets-1.0.11 lib/jets/controller/request.rb
jets-1.0.10 lib/jets/controller/request.rb
jets-1.0.9 lib/jets/controller/request.rb
jets-1.0.8 lib/jets/controller/request.rb
jets-1.0.7 lib/jets/controller/request.rb
jets-1.0.6 lib/jets/controller/request.rb
jets-1.0.5 lib/jets/controller/request.rb
jets-1.0.4 lib/jets/controller/request.rb
jets-1.0.3 lib/jets/controller/request.rb
jets-1.0.2 lib/jets/controller/request.rb
jets-1.0.1 lib/jets/controller/request.rb
jets-1.0.0 lib/jets/controller/request.rb