From e118dbc3576afe4b286b35da3514db1a36b18f7b Mon Sep 17 00:00:00 2001 From: Markus Graf Date: Mon, 22 Jun 2026 10:37:52 +0200 Subject: [PATCH] refactor: share alarm loading between get_alarms and get_alarm --- api/schema.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/api/schema.py b/api/schema.py index 65fc7b2..fdfdd2b 100644 --- a/api/schema.py +++ b/api/schema.py @@ -77,6 +77,12 @@ def _alarm_from_dict(data: dict) -> Alarm: ) +def _load_alarms() -> List[Alarm]: + """Load all alarms from the crontab and map them to GraphQL types.""" + manager = get_manager() + return [_alarm_from_dict(a) for a in manager.get_alarms()] + + @strawberry.type class Query: @strawberry.field @@ -85,15 +91,13 @@ class Query: @strawberry.field def get_alarms(self) -> List[Alarm]: - manager = get_manager() - return [_alarm_from_dict(a) for a in manager.get_alarms()] + return _load_alarms() @strawberry.field def get_alarm(self, id: str) -> Optional[Alarm]: - manager = get_manager() - for a in manager.get_alarms(): - if a["id"] == id: - return _alarm_from_dict(a) + for alarm in _load_alarms(): + if alarm.id == id: + return alarm return None