|
2 | 2 | Tiny http server for introspecting state |
3 | 3 | """ |
4 | 4 |
|
| 5 | +import logging |
5 | 6 | import socket |
| 7 | +from typing import TYPE_CHECKING, ClassVar, Optional, cast |
6 | 8 |
|
7 | 9 | from aiohttp import web |
8 | 10 |
|
9 | 11 | from .config import config |
10 | 12 | from .decorators import with_logger |
| 13 | +from .game_service import GameService |
| 14 | +from .player_service import PlayerService |
| 15 | + |
| 16 | +if TYPE_CHECKING: |
| 17 | + from server import ServerInstance |
11 | 18 |
|
12 | 19 |
|
13 | 20 | @with_logger |
14 | 21 | class ControlServer: |
| 22 | + _logger: ClassVar[logging.Logger] |
| 23 | + |
15 | 24 | def __init__( |
16 | 25 | self, |
17 | 26 | lobby_server: "ServerInstance", |
18 | 27 | ): |
19 | 28 | self.lobby_server = lobby_server |
20 | | - self.game_service = lobby_server.services["game_service"] |
21 | | - self.player_service = lobby_server.services["player_service"] |
22 | | - self.host = None |
23 | | - self.port = None |
| 29 | + self.game_service = cast(GameService, lobby_server.services["game_service"]) |
| 30 | + self.player_service = cast(PlayerService, lobby_server.services["player_service"]) |
| 31 | + self.host: Optional[str] = None |
| 32 | + self.port: Optional[int] = None |
24 | 33 |
|
25 | 34 | self.app = web.Application() |
26 | 35 | self.runner = web.AppRunner(self.app) |
@@ -55,13 +64,13 @@ async def shutdown(self) -> None: |
55 | 64 | self.host = None |
56 | 65 | self.port = None |
57 | 66 |
|
58 | | - async def games(self, request) -> web.Response: |
| 67 | + async def games(self, request: web.Request) -> web.Response: |
59 | 68 | return web.json_response([ |
60 | 69 | game.to_dict() |
61 | 70 | for game in self.game_service.all_games |
62 | 71 | ]) |
63 | 72 |
|
64 | | - async def players(self, request) -> web.Response: |
| 73 | + async def players(self, request: web.Request) -> web.Response: |
65 | 74 | return web.json_response([ |
66 | 75 | player.to_dict() |
67 | 76 | for player in self.player_service.all_players |
|
0 commit comments