use snake class name and version from GameBoard and remove snake type and version from GameplayTrackingService init
This commit is contained in:
@@ -20,6 +20,10 @@ class GameBoard:
|
|||||||
self.url = self._get_game_url(True if ruleset["version"] == "cli" else False)
|
self.url = self._get_game_url(True if ruleset["version"] == "cli" else False)
|
||||||
self.timeout = 500
|
self.timeout = 500
|
||||||
|
|
||||||
|
# Snake Helper Functions
|
||||||
|
def get_snake_name_and_version(self) -> tuple[str, str]:
|
||||||
|
return self.snake_class.name, self.snake_class.version
|
||||||
|
|
||||||
# Setter Functions
|
# Setter Functions
|
||||||
def _set_snakes(self, snakes:list[dict]):
|
def _set_snakes(self, snakes:list[dict]):
|
||||||
self.other_snakes = [ x for x in snakes if x["id"] != self.my_snake["id"] ]
|
self.other_snakes = [ x for x in snakes if x["id"] != self.my_snake["id"] ]
|
||||||
|
|||||||
@@ -97,8 +97,6 @@ class Server:
|
|||||||
|
|
||||||
self.gameplay_tracking = GameplayTrackingService(
|
self.gameplay_tracking = GameplayTrackingService(
|
||||||
gameplay_database=self.gameplay_database,
|
gameplay_database=self.gameplay_database,
|
||||||
snake_type=self.snake_type,
|
|
||||||
snake_version=self.snake_version,
|
|
||||||
logger=self.logger,
|
logger=self.logger,
|
||||||
)
|
)
|
||||||
self.dashboard_query = DashboardQueryService(
|
self.dashboard_query = DashboardQueryService(
|
||||||
|
|||||||
@@ -48,8 +48,8 @@ def create_battlesnake_blueprint(server:'Server') -> Blueprint:
|
|||||||
server.metrics_collector.record_http_request('start')
|
server.metrics_collector.record_http_request('start')
|
||||||
await server.game_runtime.prune_stale_games()
|
await server.game_runtime.prune_stale_games()
|
||||||
game_state = await request.get_json()
|
game_state = await request.get_json()
|
||||||
await server.game_runtime.create_game_board(game_state)
|
game_board = await server.game_runtime.create_game_board(game_state)
|
||||||
await server.gameplay_tracking.record_gameplay_start(game_state)
|
await server.gameplay_tracking.record_gameplay_start(game_state, game_board)
|
||||||
await await_log(server.logger.info(f'GAME START: {game_state['game']}'))
|
await await_log(server.logger.info(f'GAME START: {game_state['game']}'))
|
||||||
return 'ok'
|
return 'ok'
|
||||||
|
|
||||||
|
|||||||
@@ -4,20 +4,20 @@ from server.database import GameplayDatabase
|
|||||||
from server.GameBoard import GameBoard
|
from server.GameBoard import GameBoard
|
||||||
|
|
||||||
class GameplayTrackingService:
|
class GameplayTrackingService:
|
||||||
def __init__(self, gameplay_database:GameplayDatabase, snake_type:str, snake_version:str, logger:logging):
|
def __init__(self, gameplay_database:GameplayDatabase, logger:logging):
|
||||||
self.gameplay_database = gameplay_database
|
self.gameplay_database = gameplay_database
|
||||||
self.snake_type = snake_type
|
|
||||||
self.snake_version = snake_version
|
|
||||||
self.logger = logger
|
self.logger = logger
|
||||||
|
|
||||||
async def record_gameplay_start(self, game_state:dict) -> None:
|
async def record_gameplay_start(self, game_state:dict, game_board:GameBoard) -> None:
|
||||||
|
snake_name, snake_version = game_board.get_snake_name_and_version()
|
||||||
|
|
||||||
if self.gameplay_database is None:
|
if self.gameplay_database is None:
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
await self.gameplay_database.record_game_start(
|
await self.gameplay_database.record_game_start(
|
||||||
game_state,
|
game_state,
|
||||||
snake_type=self.snake_type,
|
snake_type=snake_name,
|
||||||
snake_version=self.snake_version,
|
snake_version=snake_version,
|
||||||
)
|
)
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
await await_log(self.logger.warning(f"Gameplay DB start record failed:{error}"))
|
await await_log(self.logger.warning(f"Gameplay DB start record failed:{error}"))
|
||||||
|
|||||||
Reference in New Issue
Block a user