feat(flow): 添加动态API路由支持通过流程code执行
refactor(engine): 优化节点执行耗时记录 fix(db): 修正结果模式获取逻辑忽略connection.mode style(i18n): 统一节点描述和输出模式选项的国际化 test(flow): 新增测试流程定义文件 refactor(react): 简化开发环境日志降噪处理
This commit is contained in:
@ -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) => {
|
||||
|
||||
Reference in New Issue
Block a user