timer example responses

This commit is contained in:
Chris Milne 2026-05-13 16:19:37 +01:00
parent 8f908ac317
commit ed4a3fe0b8

View file

@ -2,6 +2,8 @@
Router endpoints for the _____ module
Endpoints:
- /timer/start
- /timer/stop
"""
import threading
@ -20,9 +22,10 @@ async def start_timer(request: Request, interval: int):
stop_event = threading.Event()
timer = create_timer(func=example_timer_target, interval=interval, stop_event=stop_event)
timer_ident = "example_timer"
timer_tracker = {
"ident": "example_timer",
"ident": timer_ident,
"interval": interval,
"stop_event": stop_event,
"timer": timer
@ -31,11 +34,13 @@ async def start_timer(request: Request, interval: int):
request.app.state.timers.append(timer_tracker)
return {"timer_ident": timer_ident, "interval": interval}
@router.put("/timer/stop")
async def stop_timer(request: Request, ident: str):
timers = request.app.state.timers
print(timers)
idx, timer_tracker = next(((i, timer) for i, timer in enumerate(timers) if timer["ident"] == ident), (None, None))
if not timer_tracker:
@ -45,4 +50,5 @@ async def stop_timer(request: Request, ident: str):
timer_tracker["timer"].join()
timer_tracker["timer"] = None
timers.pop(idx)
print(timers)
return {"timer_ident": ident, "status": "stopped"}