62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
"""
|
|
API响应工具模块
|
|
用于处理API响应数据的转换
|
|
"""
|
|
from typing import Dict, Any, List, Optional
|
|
from data.models.task_instance import TaskInstance
|
|
from data.models.task_input_param import TaskInputParam
|
|
|
|
class ApiResponseUtil:
|
|
"""API响应工具类"""
|
|
|
|
@staticmethod
|
|
def to_task_instance_response(instance: TaskInstance) -> Optional[Dict[str, Any]]:
|
|
"""
|
|
将任务实例转换为API响应数据
|
|
|
|
Args:
|
|
instance: 任务实例对象
|
|
|
|
Returns:
|
|
API响应数据字典
|
|
"""
|
|
if not instance:
|
|
return None
|
|
|
|
return {
|
|
"instance_id": instance.instance_id,
|
|
"task_id": instance.task_id,
|
|
"name": instance.name,
|
|
"variables": instance.variables or {},
|
|
"priority": instance.priority,
|
|
"block_outputs": instance.block_outputs or {},
|
|
"context_params": instance.context_params or {},
|
|
"status": instance.status.value if instance.status else None
|
|
}
|
|
|
|
@staticmethod
|
|
def to_task_input_param_response(param: TaskInputParam) -> Optional[Dict[str, Any]]:
|
|
"""
|
|
将任务输入参数转换为API响应数据
|
|
|
|
Args:
|
|
param: 任务输入参数对象
|
|
|
|
Returns:
|
|
API响应数据字典
|
|
"""
|
|
if not param:
|
|
return None
|
|
|
|
return {
|
|
"param_id": param.param_id,
|
|
"param_name": param.param_name,
|
|
"label": param.label,
|
|
"param_type": param.param_type,
|
|
"required": param.required,
|
|
"default_value": param.default_value,
|
|
"description": param.description,
|
|
"is_system": param.is_system,
|
|
"is_readonly": param.is_readonly,
|
|
"sort_order": param.sort_order
|
|
} |