feat(flow): 添加动态API路由支持通过流程code执行

refactor(engine): 优化节点执行耗时记录
fix(db): 修正结果模式获取逻辑忽略connection.mode
style(i18n): 统一节点描述和输出模式选项的国际化
test(flow): 新增测试流程定义文件
refactor(react): 简化开发环境日志降噪处理
This commit is contained in:
2025-09-20 00:12:40 +08:00
parent 62789fce42
commit d8116ff8dc
13 changed files with 162 additions and 63 deletions

View File

@ -144,6 +144,17 @@ pub async fn get(db: &Db, id: &str) -> anyhow::Result<FlowDoc> {
Ok(FlowDoc { id: row.id, yaml, design_json })
}
pub async fn get_by_code(db: &Db, code: &str) -> anyhow::Result<FlowDoc> {
let row = db_flow::Entity::find()
.filter(db_flow::Column::Code.eq(code))
.one(db)
.await?;
let row = row.ok_or_else(|| anyhow::anyhow!("flow not found with code: {}", code))?;
let yaml = row.yaml.unwrap_or_default();
let design_json = row.design_json.and_then(|s| serde_json::from_str::<serde_json::Value>(&s).ok());
Ok(FlowDoc { id: row.id, yaml, design_json })
}
pub async fn update(db: &Db, id: &str, req: FlowUpdateReq) -> anyhow::Result<FlowDoc> {
if let Some(yaml) = &req.yaml {
let _parsed: FlowDSL = serde_yaml::from_str(yaml).context("invalid flow yaml")?;
@ -193,7 +204,7 @@ pub async fn run(db: &Db, id: &str, req: RunReq, operator: Option<(i64, String)>
Ok(Some(row)) => row.code,
_ => None,
};
// 获取流程文档并记录失败原因
// 获取流程文档并记录失败原因
let doc = match get(db, id).await {
Ok(d) => d,
Err(e) => {