dify/api/services/trigger/trigger_debug_events.py

49 lines
1.6 KiB
Python

"""
Event generator for trigger debug operations.
Provides structured event generation for trigger debug SSE streams.
"""
from core.app.entities.task_entities import (
ErrorStreamResponse,
StreamResponse,
TriggerDebugNodeFinishedResponse,
TriggerDebugWorkflowStartedResponse,
)
from core.trigger.entities.entities import TriggerDebugEventData
from models.workflow import WorkflowNodeExecutionModel
class TriggerDebugEventGenerator:
"""Generator for trigger debug events."""
@staticmethod
def generate_node_finished(node_execution: WorkflowNodeExecutionModel) -> StreamResponse:
"""Generate node finished event."""
return TriggerDebugNodeFinishedResponse(
task_id="",
id=node_execution.id,
node_id=node_execution.node_id,
node_type=node_execution.node_type,
status=node_execution.status,
outputs=node_execution.outputs_dict,
error=node_execution.error,
elapsed_time=node_execution.elapsed_time,
execution_metadata=node_execution.execution_metadata_dict,
)
@staticmethod
def generate_workflow_started(event_data: TriggerDebugEventData) -> StreamResponse:
"""Generate workflow started event."""
return TriggerDebugWorkflowStartedResponse(
task_id="",
subscription_id=event_data.subscription_id,
triggers=event_data.triggers,
request_id=event_data.request_id,
)
@staticmethod
def generate_error(error: str) -> StreamResponse:
"""Generate error event."""
return ErrorStreamResponse(task_id="", err=Exception(error))