refactor: centralize alarm dict-to-GraphQL mapping

This commit is contained in:
2026-06-22 10:30:01 +02:00
parent a67f57c37e
commit 3fae274aa0
+12 -15
View File
@@ -68,6 +68,15 @@ class Alarm:
is_enabled: bool
def _alarm_from_dict(data: dict) -> Alarm:
"""Map a CrontabManager alarm dict to the public GraphQL Alarm type."""
return Alarm(
id=data["id"],
cron_expression=data["cron_expression"],
is_enabled=data["is_enabled"],
)
@strawberry.type
class Query:
@strawberry.field
@@ -77,26 +86,14 @@ class Query:
@strawberry.field
def get_alarms(self) -> List[Alarm]:
manager = get_manager()
return [
Alarm(
id=a["id"],
cron_expression=a["cron_expression"],
is_enabled=a["is_enabled"],
)
for a in manager.get_alarms()
]
return [_alarm_from_dict(a) for a in manager.get_alarms()]
@strawberry.field
def get_alarm(self, id: str) -> Optional[Alarm]:
manager = get_manager()
alarms = manager.get_alarms()
for a in alarms:
for a in manager.get_alarms():
if a["id"] == id:
return Alarm(
id=a["id"],
cron_expression=a["cron_expression"],
is_enabled=a["is_enabled"],
)
return _alarm_from_dict(a)
return None