refactor: share alarm loading between get_alarms and get_alarm

This commit is contained in:
2026-06-22 10:37:52 +02:00
parent 3fae274aa0
commit e118dbc357
+10 -6
View File
@@ -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