Skip to content

Player

PlayerRequest

Bases: RequestModel, Player

Get information about a single player by player tag. Player tags can be found either in game or from clan member lists.

Source code in pyclasher/api/requests/player.py
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
class PlayerRequest(RequestModel, Player):
    """
    Get information about a single player by player tag. Player tags can be
    found either in game or from clan member lists.
    """

    def __init__(self, player_tag):
        self.player_tag = player_tag
        super().__init__("players/{player_tag}", player_tag=self.player_tag)
        return

    async def verify_token(self, player_token):
        self.client = Client.get_instance()

        if not self.client.is_running:
            raise ClientIsNotRunning

        body = VerifyTokenRequest(player_token).to_dict()
        url = "/".join((self.client.endpoint,
                        quote(f"players/{self.player_tag}/verifytoken")))

        future, status, error = Future(), Future(), Future()

        self.client.logger.debug(f"posting {self._request_id}")

        await self.client.queue.put(future,
                                    url,
                                    RequestMethods.POST.value,
                                    body,
                                    status,
                                    error)

        data, req_status, req_error = (await future,
                                       await status,
                                       await error)

        if req_status != 200:
            raise req_error.value

        self.client.logger.debug(f"post {self._request_id} done")
        return VerifyTokenResponse(data)