Skip to content

Commit a0e8539

Browse files
committed
Updated middleware syntax
1 parent cfeaa39 commit a0e8539

File tree

4 files changed

+17
-35
lines changed

4 files changed

+17
-35
lines changed

graphql/execution/base.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ class ExecutionContext(object):
1919
and the fragments defined in the query document"""
2020

2121
__slots__ = 'schema', 'fragments', 'root_value', 'operation', 'variable_values', 'errors', 'context_value', \
22-
'argument_values_cache', 'executor', 'middleware_manager', '_subfields_cache'
22+
'argument_values_cache', 'executor', 'middleware', '_subfields_cache'
2323

24-
def __init__(self, schema, document_ast, root_value, context_value, variable_values, operation_name, executor, middleware_manager):
24+
def __init__(self, schema, document_ast, root_value, context_value, variable_values, operation_name, executor, middleware):
2525
"""Constructs a ExecutionContext object from the arguments passed
2626
to execute, which we will pass throughout the other execution
2727
methods."""
@@ -64,13 +64,13 @@ def __init__(self, schema, document_ast, root_value, context_value, variable_val
6464
self.context_value = context_value
6565
self.argument_values_cache = {}
6666
self.executor = executor
67-
self.middleware_manager = middleware_manager
67+
self.middleware = middleware
6868
self._subfields_cache = {}
6969

7070
def get_field_resolver(self, field_resolver):
71-
if not self.middleware_manager:
71+
if not self.middleware:
7272
return field_resolver
73-
return self.middleware_manager.get_field_resolver(field_resolver)
73+
return self.middleware.get_field_resolver(field_resolver)
7474

7575
def get_argument_values(self, field_def, field_ast):
7676
k = field_def, field_ast

graphql/execution/executor.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,17 @@ def is_promise(obj):
2626

2727
def execute(schema, document_ast, root_value=None, context_value=None,
2828
variable_values=None, operation_name=None, executor=None,
29-
return_promise=False, middlewares=None):
29+
return_promise=False, middleware=None):
3030
assert schema, 'Must provide schema'
3131
assert isinstance(schema, GraphQLSchema), (
3232
'Schema must be an instance of GraphQLSchema. Also ensure that there are ' +
3333
'not multiple versions of GraphQL installed in your node_modules directory.'
3434
)
35-
if middlewares:
36-
assert isinstance(middlewares, MiddlewareManager), (
35+
if middleware:
36+
if not isinstance(middleware, MiddlewareManager):
37+
middleware = MiddlewareManager(*middleware)
38+
39+
assert isinstance(middleware, MiddlewareManager), (
3740
'middlewares have to be an instance'
3841
' of MiddlewareManager. Received "{}".'.format(middlewares)
3942
)
@@ -49,7 +52,7 @@ def execute(schema, document_ast, root_value=None, context_value=None,
4952
variable_values,
5053
operation_name,
5154
executor,
52-
middlewares
55+
middleware
5356
)
5457

5558
def executor(resolve, reject):
@@ -249,6 +252,7 @@ def complete_value(exe_context, return_type, field_asts, info, result):
249252
lambda error: Promise.rejected(GraphQLLocatedError(field_asts, original_error=error))
250253
)
251254

255+
# print return_type, type(result)
252256
if isinstance(result, Exception):
253257
raise GraphQLLocatedError(field_asts, original_error=result)
254258

graphql/execution/tests/test_executor.py

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -574,7 +574,7 @@ def reversed_middleware(next, *args, **kwargs):
574574
return p.then(lambda x: x[::-1])
575575

576576
middlewares = MiddlewareManager(reversed_middleware)
577-
result = execute(GraphQLSchema(Type), doc_ast, Data(), middlewares=middlewares)
577+
result = execute(GraphQLSchema(Type), doc_ast, Data(), middleware=middlewares)
578578
assert result.data == {'ok': 'ko', 'not_ok': 'ko_ton'}
579579

580580

@@ -605,27 +605,5 @@ def resolve(self, next, *args, **kwargs):
605605
return p.then(lambda x: x[::-1])
606606

607607
middlewares = MiddlewareManager(MyMiddleware())
608-
result = execute(GraphQLSchema(Type), doc_ast, Data(), middlewares=middlewares)
608+
result = execute(GraphQLSchema(Type), doc_ast, Data(), middleware=middlewares)
609609
assert result.data == {'ok': 'ko', 'not_ok': 'ko_ton'}
610-
611-
612-
def test_middleware_wrong():
613-
doc = '''{
614-
ok
615-
}'''
616-
617-
class Data(object):
618-
619-
def ok(self):
620-
return 'ok'
621-
622-
doc_ast = parse(doc)
623-
624-
Type = GraphQLObjectType('Type', {
625-
'ok': GraphQLField(GraphQLString),
626-
})
627-
middlewares = [None]
628-
with raises(AssertionError) as excinfo:
629-
execute(GraphQLSchema(Type), doc_ast, Data(), middlewares=middlewares)
630-
631-
assert 'middlewares have to be an instance of MiddlewareManager. Received "[None]".' == str(excinfo.value)

graphql/graphql.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
# one operation.
2929
def graphql(schema, request_string='', root_value=None, context_value=None,
3030
variable_values=None, operation_name=None, executor=None,
31-
return_promise=False, middlewares=None):
31+
return_promise=False, middleware=None):
3232
try:
3333
source = Source(request_string, 'GraphQL request')
3434
ast = parse(source)
@@ -47,7 +47,7 @@ def graphql(schema, request_string='', root_value=None, context_value=None,
4747
variable_values=variable_values or {},
4848
executor=executor,
4949
return_promise=return_promise,
50-
middlewares=middlewares,
50+
middleware=middleware,
5151
)
5252
except Exception as e:
5353
return ExecutionResult(

0 commit comments

Comments
 (0)