From 69db48af8bb18e4e83a3adebea40d5d2ed66581c Mon Sep 17 00:00:00 2001 From: "Christoph J. Scherr" Date: Sun, 23 Mar 2025 14:09:08 +0100 Subject: [PATCH] feat: add get_latest_haiku_or_default to store Resf: OPS-65 --- senju/haiku.py | 4 ++++ senju/store_manager.py | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/senju/haiku.py b/senju/haiku.py index 66d5348..f117a5f 100644 --- a/senju/haiku.py +++ b/senju/haiku.py @@ -59,3 +59,7 @@ class Haiku: continue return haiku + + +DEFAULT_HAIKU: Haiku = Haiku(["Purple petals rise", "Defying fragile beauty", + "Fiercely breathing life"]) diff --git a/senju/store_manager.py b/senju/store_manager.py index e99b98e..4c30543 100644 --- a/senju/store_manager.py +++ b/senju/store_manager.py @@ -7,7 +7,8 @@ from typing import Optional from tinydb import TinyDB from tinydb.queries import QueryImpl -from senju.haiku import Haiku +from senju import haiku +from senju.haiku import DEFAULT_HAIKU, Haiku DEFAULT_DB_PATH: Path = Path("/var/lib/senju.json") @@ -51,3 +52,12 @@ class StoreManager: except IndexError as e: self.logger.error(f"The database seems to be empty: {e}") return None + + def get_latest_haiku_or_default(self) -> Haiku: + id = self.get_id_of_latest_haiku() + if id is None: + return DEFAULT_HAIKU + haiku = self.load_haiku(id) + if haiku is None: + return DEFAULT_HAIKU + return haiku