refactor: centralize alarm dict-to-GraphQL mapping
This commit is contained in:
+12
-15
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user