Method: GraphQL::Schema::TimeoutMiddleware#call

Defined in:
lib/graphql/schema/timeout_middleware.rb

#call(parent_type, parent_object, field_definition, field_args, query_context) ⇒ Object



36
37
38
39
40
41
42
43
44
45
# File 'lib/graphql/schema/timeout_middleware.rb', line 36

def call(parent_type, parent_object, field_definition, field_args, query_context)
  ns = query_context.namespace(TimeoutMiddleware)
  timeout_at = ns[:timeout_at] ||= Time.now + @max_seconds

  if timeout_at < Time.now
    on_timeout(parent_type, parent_object, field_definition, field_args, query_context)
  else
    yield
  end
end