feat(backend): 新增 QuickJS 运行时支持 JavaScript 执行器
refactor(backend): 重构 script_js 执行器实现 JavaScript 文件/内联脚本执行 feat(backend): 变量节点支持表达式/引用快捷语法输入 docs: 添加变量节点使用文档说明快捷语法功能 style(frontend): 调整测试面板样式和布局 fix(frontend): 修复测试面板打开时自动关闭节点编辑侧栏 build(backend): 添加 rquickjs 依赖用于 JavaScript 执行
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
use axum::{Router, routing::{post, get}, extract::{State, Path, Query}, Json};
|
||||
use crate::{db::Db, response::ApiResponse, services::flow_service, error::AppError};
|
||||
use crate::{db::Db, response::ApiResponse, services::{flow_service, log_service}, error::AppError};
|
||||
use serde::Deserialize;
|
||||
use tracing::{info, error};
|
||||
use crate::middlewares::jwt::AuthUser;
|
||||
@ -27,7 +27,7 @@ struct CreateReq { yaml: Option<String>, name: Option<String>, design_json: Opti
|
||||
#[derive(Deserialize)]
|
||||
struct UpdateReq { yaml: Option<String>, design_json: Option<serde_json::Value>, name: Option<String>, code: Option<String>, remark: Option<String> }
|
||||
|
||||
async fn create(State(db): State<Db>, Json(req): Json<CreateReq>) -> Result<Json<ApiResponse<flow_service::FlowDoc>>, AppError> {
|
||||
async fn create(State(db): State<Db>, user: AuthUser, Json(req): Json<CreateReq>) -> Result<Json<ApiResponse<flow_service::FlowDoc>>, AppError> {
|
||||
info!(target = "udmin", "routes.flows.create: start");
|
||||
let res = match flow_service::create(&db, flow_service::FlowCreateReq { yaml: req.yaml, name: req.name, design_json: req.design_json, code: req.code, remark: req.remark }).await {
|
||||
Ok(r) => { info!(target = "udmin", id = %r.id, "routes.flows.create: ok"); r }
|
||||
@ -37,6 +37,20 @@ struct UpdateReq { yaml: Option<String>, design_json: Option<serde_json::Value>,
|
||||
return Err(flow_service::ae(e));
|
||||
}
|
||||
};
|
||||
// 新建成功后,补一条 PUT 请求日志,使“最近修改人”默认为创建人
|
||||
if let Err(e) = log_service::create(&db, log_service::CreateLogInput {
|
||||
path: format!("/api/flows/{}", res.id),
|
||||
method: "PUT".to_string(),
|
||||
request_params: None,
|
||||
response_params: None,
|
||||
status_code: 200,
|
||||
user_id: Some(user.uid),
|
||||
username: Some(user.username.clone()),
|
||||
request_time: chrono::Utc::now().with_timezone(&chrono::FixedOffset::east_opt(0).unwrap()),
|
||||
duration_ms: 0,
|
||||
}).await {
|
||||
error!(target = "udmin", error = ?e, "routes.flows.create: write put log failed");
|
||||
}
|
||||
Ok(Json(ApiResponse::ok(res)))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user