|
| 1 | +from playerdatapy.gqlauth import GraphqlAuth |
| 2 | +from playerdatapy.gqlclient import Client |
| 3 | +from playerdatapy.gqlauth import AuthenticationType |
| 4 | +import asyncio |
| 5 | +from playerdatapy.constants import API_BASE_URL |
| 6 | +import os |
| 7 | +from datetime import datetime, timedelta |
| 8 | + |
| 9 | +CLIENT_ID = os.environ.get("CLIENT_ID") |
| 10 | +CLIENT_SECRET = os.environ.get("CLIENT_SECRET") |
| 11 | +CLUB_ID = os.environ.get("CLUB_ID") |
| 12 | + |
| 13 | + |
| 14 | +# Build out the query string to get session details. |
| 15 | +# Our GraphiQL Playground at https://app.playerdata.co.uk/api/graphiql/ is useful for building out and testing the query. |
| 16 | +example_query = """ |
| 17 | +query($clubIdEq:ID!,$startTimeGteq:ISO8601DateTime,$endTimeLteq:ISO8601DateTime){ |
| 18 | + sessions(filter: {clubIdEq:$clubIdEq, startTimeGteq:$startTimeGteq, endTimeLteq:$endTimeLteq}){ |
| 19 | + id |
| 20 | + startTime |
| 21 | + endTime |
| 22 | + } |
| 23 | +} |
| 24 | +""" |
| 25 | + |
| 26 | + |
| 27 | +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"] |
| 47 | + |
| 48 | + |
| 49 | +if __name__ == "__main__": |
| 50 | + result = asyncio.run(main()) |
| 51 | + print(result) |
0 commit comments