From c4a1387460bd7bdfd7377e98504d7024159fa223 Mon Sep 17 00:00:00 2001 From: Brad Brown Date: Mon, 6 Jun 2022 08:30:16 -0500 Subject: [PATCH] db laoder fixes --- wordlinator/app/__init__.py | 7 ++++++- wordlinator/db/pg.py | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/wordlinator/app/__init__.py b/wordlinator/app/__init__.py index 31f4728..d80a18b 100644 --- a/wordlinator/app/__init__.py +++ b/wordlinator/app/__init__.py @@ -109,7 +109,12 @@ def _save_db_scores(wordle_day: wordlinator.utils.WordleDay, scores: dict): to_update.append(db_score) else: - hole = [h for h in db_holes if h.hole == day][0] + hole_match = [h for h in db_holes if h.hole == day] + if hole_match: + hole = hole_match[0] + else: + hole = db.get_or_create_hole(game_no, day) + db_holes.append(hole) to_create.append( { "score": score_entry, diff --git a/wordlinator/db/pg.py b/wordlinator/db/pg.py index f5ec5f8..03e6d75 100644 --- a/wordlinator/db/pg.py +++ b/wordlinator/db/pg.py @@ -81,7 +81,7 @@ class WordleDb: def get_holes(self, round_no): round = self.get_or_create_round(round_no) - return Hole.select().filter(game_id=round.game_id) + return list(Hole.select().filter(game_id=round.game_id)) def create_round_holes(self, round_no): for hole_no in range(1, 19): @@ -115,7 +115,7 @@ class WordleDb: def get_scores(self, round_no): round = self.get_or_create_round(round_no) - return Score.select().filter(Score.game_id == round.game_id) + return list(Score.select().filter(Score.game_id == round.game_id)) def bulk_insert_scores(self, scores: typing.List[typing.Dict]): with db.atomic():