27 lines
870 B
Python
27 lines
870 B
Python
# Copyright (c) 2025 Patrick Motsch
|
|
# Trigger node executor.
|
|
|
|
import logging
|
|
from typing import Dict, Any
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class TriggerExecutor:
|
|
"""Execute trigger nodes (manual, schedule, formSubmit)."""
|
|
|
|
async def execute(
|
|
self,
|
|
node: Dict[str, Any],
|
|
context: Dict[str, Any],
|
|
) -> Any:
|
|
nodeType = node.get("type", "")
|
|
if nodeType == "trigger.manual":
|
|
return {"triggered": True, "source": "manual"}
|
|
if nodeType == "trigger.schedule":
|
|
return {"triggered": True, "source": "schedule"}
|
|
if nodeType == "trigger.formSubmit":
|
|
params = node.get("parameters") or {}
|
|
formId = params.get("formId", "")
|
|
return {"triggered": True, "source": "formSubmit", "formId": formId}
|
|
return {"triggered": True, "source": "unknown"}
|