Class: Rivulet::Steps::BuildContext

Inherits:
Rivulet::Step show all
Defined in:
lib/rivulet/steps/build_context.rb

Instance Method Summary collapse

Methods inherited from Rivulet::Step

container_class_path, inherited

Instance Method Details

#call(input) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/rivulet/steps/build_context.rb', line 4

def call(input)
  input => { env:, resource: }

  request = Rivulet::Request.new(env)
  routes = resource.routes

  route, path_match = find_route(routes, request)
  return Failure[:route_not_found] unless route

  input.merge!(
    route: route,
    params: build_params(route, request, path_match),
    context: {
      headers: extract_headers(request),
      cookies: request.cookies,
      session: request.session
    }
  )

  resource.logger.info(
    "Request #{request.http_method.upcase} #{request.path} #{input[:params]}"
  )

  Success(input)
end