From eea42ddf0d17fb7c32c0d763855a0684b97b5e3b Mon Sep 17 00:00:00 2001 From: Loris Zinsou Date: Fri, 5 Jan 2018 08:32:37 +0100 Subject: [PATCH 1/2] Add support for custom query parser --- graphql_server/__init__.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/graphql_server/__init__.py b/graphql_server/__init__.py index 8db8847..fe71a82 100644 --- a/graphql_server/__init__.py +++ b/graphql_server/__init__.py @@ -159,14 +159,19 @@ def format_execution_result(execution_result, format_error): return GraphQLResponse(response, status_code) -def execute_graphql_request(schema, params, allow_only_query=False, **kwargs): +def parse_query(query, schema): + source = Source(query, name='GraphQL request') + ast = parse(source) + validation_errors = validate(schema, ast) + return ast, validation_errors + + +def execute_graphql_request(schema, params, allow_only_query=False, parser=parse_query, **kwargs): if not params.query: raise HttpQueryError(400, 'Must provide query string.') try: - source = Source(params.query, name='GraphQL request') - ast = parse(source) - validation_errors = validate(schema, ast) + ast, validation_errors = parse_query(params.query, schema) if validation_errors: return ExecutionResult( errors=validation_errors, From c16f33cf2d1f3038144a8a16d0d19c8e89bb2ecd Mon Sep 17 00:00:00 2001 From: Loris Zinsou Date: Fri, 5 Jan 2018 08:35:46 +0100 Subject: [PATCH 2/2] Actually use custom query parser --- graphql_server/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graphql_server/__init__.py b/graphql_server/__init__.py index fe71a82..8a5b60e 100644 --- a/graphql_server/__init__.py +++ b/graphql_server/__init__.py @@ -171,7 +171,7 @@ def execute_graphql_request(schema, params, allow_only_query=False, parser=parse raise HttpQueryError(400, 'Must provide query string.') try: - ast, validation_errors = parse_query(params.query, schema) + ast, validation_errors = parser(params.query, schema) if validation_errors: return ExecutionResult( errors=validation_errors,