summaryrefslogtreecommitdiff
path: root/src/match_up/model.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/match_up/model.py')
-rw-r--r--src/match_up/model.py37
1 files changed, 23 insertions, 14 deletions
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"],