Skip to content

Commit d28b617

Browse files
committed
Capture parsing error and wrap in ExecutionResult (fix #53)
1 parent 3ce124c commit d28b617

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

graphql/core/__init__.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,24 @@
55

66

77
def graphql(schema, request='', root=None, vars=None, operation_name=None):
8-
source = Source(request, 'GraphQL request')
9-
ast = parse(source)
10-
validation_errors = validate(schema, ast)
11-
if validation_errors:
8+
try:
9+
source = Source(request, 'GraphQL request')
10+
ast = parse(source)
11+
validation_errors = validate(schema, ast)
12+
if validation_errors:
13+
return ExecutionResult(
14+
errors=validation_errors,
15+
invalid=True,
16+
)
17+
return execute(
18+
schema,
19+
root or object(),
20+
ast,
21+
operation_name,
22+
vars or {},
23+
)
24+
except Exception as e:
1225
return ExecutionResult(
13-
errors=validation_errors,
26+
errors=[e],
1427
invalid=True,
1528
)
16-
return execute(
17-
schema,
18-
root or object(),
19-
ast,
20-
operation_name,
21-
vars or {},
22-
)

0 commit comments

Comments
 (0)