refactor: share alarm loading between get_alarms and get_alarm
This commit is contained in:
+10
-6
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user