from typing import Dict from gql import Client from gql.transport.requests import RequestsHTTPTransport from users import constants class GraphqlAuthClient: def __init__(self): self.graphql_url = 'https://qa-graphql-router.theorchard.io/graphql' def exec_mutation(self, mutation, variables, token) -> Dict: headers = { 'Authorization': f'Bearer {token}', 'Orchard-Identity-Id': 'b1ba2cf0-c191-48a4-b113-8af23ac4b617', 'Orchard-Profile-Type': constants.SETTINGS_PROFILE, 'Orchard-Profile-Id': '463642', 'Apollographql-Client-Name': 'graphql-user', } graphql_client = Client( transport=RequestsHTTPTransport(url=self.graphql_url, headers=headers, retries=3), fetch_schema_from_transport=False, ) try: result = graphql_client.execute(mutation, variable_values=variables) return result except Exception as e: raise Exception(f'GraphqlAuthClient: exec_mutation err: {str(e)}') from e