"""GraphQL client.""" from gql.transport.requests import RequestsHTTPTransport from gql import Client from gql import gql import config class GqlClient: """GraphQL client.""" def __init__(self, grass_token, query): """Initialize GqlClient.""" headers = {'Authorization': f'Bearer {grass_token}', 'orchard-Identity-Id': config.IDENTITY_ID, 'apollographql-client-name': config.CLIENT_NAME, 'orchard-profile-id': config.PROFILE_ID, 'orchard-profile-type': config.PROFILE_TYPE, } self.transport = RequestsHTTPTransport(url=config.GRASS_URI, use_json=True, headers=headers, ) self.client = Client( transport=self.transport, fetch_schema_from_transport=False) self.query = gql(query) def execute_query(self, variables): """Execute query.""" return self.client.execute(self.query, variable_values=variables)