SurfSense/surfsense_backend/app/automations/api/automation.py

23 lines
752 B
Python

"""Routes for the ``Automation`` resource."""
from __future__ import annotations
from typing import Any
from fastapi import APIRouter, Body, Depends
from app.automations.api.schemas import RunDispatched
from app.automations.services import AutomationService, get_automation_service
router = APIRouter()
@router.post("/automations/{automation_id}/run", response_model=RunDispatched)
async def run_automation_now(
automation_id: int,
payload: dict[str, Any] | None = Body(default=None),
service: AutomationService = Depends(get_automation_service),
) -> RunDispatched:
"""Fire a manual run."""
run = await service.run_now(automation_id=automation_id, payload=payload)
return RunDispatched(run_id=run.id, status=run.status)