|
1 | 1 | from playerdatapy.gqlauth import GraphqlAuth |
2 | 2 | from playerdatapy.gqlclient import Client |
3 | 3 | from playerdatapy.gqlauth import AuthenticationType |
4 | | -import asyncio |
5 | 4 | from playerdatapy.constants import API_BASE_URL |
| 5 | + |
6 | 6 | import os |
| 7 | +import asyncio |
7 | 8 | from datetime import datetime, timedelta |
8 | 9 |
|
9 | 10 | CLIENT_ID = os.environ.get("CLIENT_ID") |
10 | 11 | CLIENT_SECRET = os.environ.get("CLIENT_SECRET") |
11 | 12 | CLUB_ID = os.environ.get("CLUB_ID") |
12 | 13 |
|
| 14 | +# Example usage of the GraphqlClient class. |
| 15 | +auth = GraphqlAuth( |
| 16 | + client_id=CLIENT_ID, |
| 17 | + client_secret=CLIENT_SECRET, |
| 18 | + type=AuthenticationType.CLIENT_CREDENTIALS_FLOW, |
| 19 | +) |
| 20 | + |
| 21 | +# Create a Client instance. |
| 22 | +client = Client( |
| 23 | + url=f"{API_BASE_URL}/api/graphql", |
| 24 | + headers={"Authorization": f"Bearer {auth._get_authentication_token()}"}, |
| 25 | +) |
13 | 26 |
|
14 | 27 | # Build out the query string to get session details. |
15 | 28 | # Our GraphiQL Playground at https://app.playerdata.co.uk/api/graphiql/ is useful for building out and testing the query. |
| 29 | +# This example query gets all sessions for a club in the last 30 days. |
16 | 30 | example_query = """ |
17 | 31 | query($clubIdEq:ID!,$startTimeGteq:ISO8601DateTime,$endTimeLteq:ISO8601DateTime){ |
18 | 32 | sessions(filter: {clubIdEq:$clubIdEq, startTimeGteq:$startTimeGteq, endTimeLteq:$endTimeLteq}){ |
|
22 | 36 | } |
23 | 37 | } |
24 | 38 | """ |
25 | | - |
| 39 | +startTimeGteq = (datetime.now() - timedelta(days=30)).isoformat() |
| 40 | +endTimeLteq = datetime.now().isoformat() |
| 41 | +variables = { |
| 42 | + "clubIdEq": CLUB_ID, |
| 43 | + "startTimeGteq": startTimeGteq, |
| 44 | + "endTimeLteq": endTimeLteq, |
| 45 | +} |
26 | 46 |
|
27 | 47 | async def main(): |
28 | | - auth = GraphqlAuth( |
29 | | - client_id=CLIENT_ID, |
30 | | - client_secret=CLIENT_SECRET, |
31 | | - type=AuthenticationType.CLIENT_CREDENTIALS_FLOW, |
32 | | - ) |
33 | | - client = Client( |
34 | | - url=f"{API_BASE_URL}/api/graphql", |
35 | | - headers={"Authorization": f"Bearer {auth._get_authentication_token()}"}, |
36 | | - ) |
37 | | - startTimeGteq = (datetime.now() - timedelta(days=30)).isoformat() |
38 | | - endTimeLteq = datetime.now().isoformat() |
39 | | - variables = { |
40 | | - "clubIdEq": CLUB_ID, |
41 | | - "startTimeGteq": startTimeGteq, |
42 | | - "endTimeLteq": endTimeLteq, |
43 | | - } |
44 | | - response = await client.execute(query=example_query, variables=variables) |
45 | | - result = client.get_data(response) |
46 | | - return result["sessions"] |
| 48 | + response = client.execute(query=example_query, variables=variables) |
| 49 | + result = await client.get_data(response) |
| 50 | + print(result["sessions"]) |
47 | 51 |
|
| 52 | +asyncio.run(main()) |
48 | 53 |
|
49 | | -if __name__ == "__main__": |
50 | | - result = asyncio.run(main()) |
51 | | - print(result) |
|
0 commit comments