Class: Jets::Controller::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/jets/controller/request.rb

Constant Summary collapse

HEADER_METHODS =

lambda integration proxy headers

%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

Instance Method Summary collapse

Constructor Details

#initialize(event) ⇒ Request

Returns a new instance of Request.



4
5
6
# File 'lib/jets/controller/request.rb', line 4

def initialize(event)
  @event = event
end

Instance Method Details

#headersObject

API Gateway is inconsistent about how it cases it keys. Sometimes it is “x-requested-with” vs “X-Requested-With” Normalize it with downcase.



45
46
47
48
# File 'lib/jets/controller/request.rb', line 45

def headers
  headers = @event["headers"] || {}
  headers.transform_keys { |key| key.downcase }
end

#xhr?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/jets/controller/request.rb', line 50

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