From 5b856ff22ea85ecc0073dc94840d76ea2ed2f1e2 Mon Sep 17 00:00:00 2001 From: Karan Jayachandra Date: Fri, 15 Nov 2024 13:42:39 +0100 Subject: Added the reset player funcitonality --- src/match_up/model.py | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) (limited to 'src/match_up/model.py') diff --git a/src/match_up/model.py b/src/match_up/model.py index c5a0af9..b1e77f5 100644 --- a/src/match_up/model.py +++ b/src/match_up/model.py @@ -108,23 +108,19 @@ class PlayerList: guests: dict = {"low": 0, "mid": 0, "high": 0} def __init__(self, csv_location: str = None) -> None: + self._init_database() + if csv_location is not None: + self._init_database_from_csv(read_csv(csv_location)) + else: + if not isfile(self.db_location): + self._init_random_database() + + def _init_database(self): with path("match_up") as p: self.db_location = join(p, "players.db") - generate_random_players = False - if not isfile(self.db_location): - print(f"No database file found") - if csv_location is None: - generate_random_players = True engine = create_engine("sqlite:///" + self.db_location, echo=True) Base.metadata.create_all(bind=engine) self.session = sessionmaker(bind=engine)() - if csv_location is not None: - print(f"CSV file provided, updating the database") - self.session.query(Player).delete() - self._init_database_from_csv(read_csv(csv_location)) - elif generate_random_players: - print(f"Generating random players for testing") - self._init_random_database() def increment_guests(self, level: str): self.guests[level] = self.guests[level] + 1 @@ -202,12 +198,25 @@ class PlayerList: return active_players + low_guests + mid_guests + high_guests def increment_game_count(self, player_ids: list[int]): - return NotImplementedError() + players = self.session.query(Player).filter(Player.id.in_(player_ids)) + for player in players: + player.count += 1 + self.session.commit() def reset_game_count(self): - return NotImplementedError() + players = self.session.query(Player) + for player in players: + player.count = 0 + self.session.commit() + + def reset_all_players(self): + players = self.session.query(Player) + for player in players: + player.status = 0 + self.session.commit() def _init_database_from_csv(self, data: DataFrame) -> None: + self.session.query(Player).delete() for _, entry in data.iterrows(): player = Player( id=entry["id"], -- cgit v1.3.1