Class: Lurker::Request

Inherits:
Hashie::Dash
  • Object
show all
Defined in:
lib/lurker/request.rb

Defined Under Namespace

Classes: NonroutableRequest

Constant Summary collapse

PREFIX =
'action_dispatch.request'

Class Method Summary collapse

Class Method Details

.build_from_action_dispatch(request) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/lurker/request.rb', line 18

def self.build_from_action_dispatch(request)
  new(
    verb: request.method,
    endpoint_path: route_name(request),
    path_info: request.path_info,
    path_params: request.env["#{PREFIX}.path_parameters"].stringify_keys.except('format'),
    query_params: request.env["#{PREFIX}.query_parameters"],
    payload: request.env["#{PREFIX}.request_parameters"].merge(
      request.env["#{PREFIX}.query_parameters"]
    ).stringify_keys.except('action', "controller", 'format', '_method')
  )
end

.reject_internal(hash) ⇒ Object



31
32
# File 'lib/lurker/request.rb', line 31

def self.reject_internal(hash)
end

.route_name(request) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/lurker/request.rb', line 34

def self.route_name(request)
  if defined? Rails
    Rails.application.routes.router.recognize(request) do |route, _|
      return route.path.spec.to_s.sub('(.:format)', '')
    end
    raise NonroutableRequest.new("Cannot find named route for: #{request.env['HTTP_HOST']}#{request.path_info}")
  end
end