1212"""Regex to validate a JWT"""
1313
1414
15- def create_transport (url , auth_token = None ):
15+ def create_transport (url , auth_token , language ):
1616 """Create and return a gql transport object.
1717
1818 Users should rarely, if ever, need to call this.
1919
2020 :param str url: the Tracker GraphQL endpoint url.
2121 :param str auth_token: JWT auth token, omit when initially obtaining the token (default is none).
22+ :param str lang: value to set the http "accept-language" header to.
2223 :return: A gql transport for given url.
2324 :rtype: AIOHTTPTransport
2425 :raises ValueError: if auth_token is not a valid JWT.
@@ -37,24 +38,28 @@ def create_transport(url, auth_token=None):
3738 if not re .match (_JWT_RE , auth_token ):
3839 raise ValueError ("auth_token is not a valid JWT" )
3940
41+ if language .lower () != 'en' and language .lower () != 'fr' :
42+ raise ValueError ("Language must be 'en' or 'fr'" )
43+
4044 transport = AIOHTTPTransport (
4145 url = url ,
42- headers = {"authorization" : auth_token },
46+ headers = {"authorization" : auth_token , 'accept-language' : language . lower () },
4347 )
4448
4549 return transport
4650
4751
48- def create_client (url = "https://tracker.alpha.canada.ca/graphql" , auth_token = None ):
52+ def create_client (url = "https://tracker.alpha.canada.ca/graphql" , auth_token = None , language = 'en' ):
4953 """Create and return a gql client object
5054
5155 :param str url: the Tracker GraphQL endpoint url.
5256 :param str auth_token: JWT auth token, omit when initially obtaining the token (default is None).
57+ :param str lang: desired language to get data from Tracker in ('en' or 'fr').
5358 :return: A gql client with AIOHTTPTransport.
5459 :rtype: Client
5560 """
5661 client = Client (
57- transport = create_transport (url = url , auth_token = auth_token ),
62+ transport = create_transport (url , auth_token , language ),
5863 fetch_schema_from_transport = True ,
5964 )
6065 return client
0 commit comments