From a88fe2f13de4925b967ed7c450e95b8e5139c546 Mon Sep 17 00:00:00 2001 From: Christopher Maio Date: Wed, 31 May 2017 14:07:39 -0400 Subject: [PATCH 1/2] Added json dump if passing in a dict, added operation_name --- gql/transport/requests.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gql/transport/requests.py b/gql/transport/requests.py index 71399a55..764ecbc6 100644 --- a/gql/transport/requests.py +++ b/gql/transport/requests.py @@ -1,5 +1,6 @@ from __future__ import absolute_import +import json import requests from graphql.execution import ExecutionResult from graphql.language.printer import print_ast @@ -20,12 +21,14 @@ def __init__(self, url, auth=None, use_json=False, timeout=None, **kwargs): self.default_timeout = timeout self.use_json = use_json - def execute(self, document, variable_values=None, timeout=None): - query_str = print_ast(document) + def execute(self, document, variable_values=None, operation_name=None, timeout=None): + query = print_ast(document) payload = { - 'query': query_str, + 'query': json.dumps(query) if isinstance(query, dict) else query, 'variables': variable_values or {} } + if operation_name: + payload.operationName = operation_name data_key = 'json' if self.use_json else 'data' post_args = { From 3b811aa127b18b656fe9dcf51e8f564747675026 Mon Sep 17 00:00:00 2001 From: Christopher Maio Date: Thu, 30 Nov 2017 16:00:32 -0500 Subject: [PATCH 2/2] Update based on code review to use trick instead of checking for operation_name --- gql/transport/requests.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gql/transport/requests.py b/gql/transport/requests.py index 764ecbc6..3879949b 100644 --- a/gql/transport/requests.py +++ b/gql/transport/requests.py @@ -25,10 +25,9 @@ def execute(self, document, variable_values=None, operation_name=None, timeout=N query = print_ast(document) payload = { 'query': json.dumps(query) if isinstance(query, dict) else query, - 'variables': variable_values or {} + 'variables': variable_values or {}, + 'operationName': operation_name or '' } - if operation_name: - payload.operationName = operation_name data_key = 'json' if self.use_json else 'data' post_args = {