修复前端
This commit is contained in:
+32
-4
@@ -38,27 +38,55 @@ def _row_to_dict(row):
|
||||
return dict(row) if row is not None else {}
|
||||
|
||||
|
||||
_FAIL_HINTS = (
|
||||
"失败",
|
||||
"错误",
|
||||
"拒绝",
|
||||
"无效",
|
||||
"缺少",
|
||||
"无法",
|
||||
"过期",
|
||||
"未达",
|
||||
"不能为空",
|
||||
"已有",
|
||||
"不允许",
|
||||
"异常",
|
||||
)
|
||||
|
||||
|
||||
def _invoke_view(view_name: str, path: str, form=None) -> dict:
|
||||
views = _ctx().get("views") or {}
|
||||
view = views.get(view_name)
|
||||
if not view:
|
||||
return {"ok": False, "messages": [f"未配置视图 {view_name}"]}
|
||||
data = form if form is not None else request.form
|
||||
if hasattr(data, "items") and not isinstance(data, dict):
|
||||
data = {k: v for k, v in data.items()}
|
||||
with current_app.test_request_context(path, method="POST", data=data):
|
||||
session["logged_in"] = True
|
||||
try:
|
||||
view()
|
||||
except Exception as e:
|
||||
return {"ok": False, "messages": [str(e)]}
|
||||
msgs = [str(x) for x in get_flashed_messages()]
|
||||
try:
|
||||
msgs = [str(x) for x in get_flashed_messages()]
|
||||
except Exception as e:
|
||||
return {"ok": False, "messages": [f"读取提示信息失败: {e}"]}
|
||||
ok = True
|
||||
for m in msgs:
|
||||
if any(k in m for k in ("失败", "错误", "拒绝", "无效", "缺少", "无法", "过期")):
|
||||
if any(k in m for k in _FAIL_HINTS):
|
||||
ok = False
|
||||
break
|
||||
return {"ok": ok, "messages": msgs}
|
||||
|
||||
|
||||
def _hub_json(view_name: str, path: str, form=None):
|
||||
try:
|
||||
return jsonify(_invoke_view(view_name, path, form=form))
|
||||
except Exception as e:
|
||||
return jsonify({"ok": False, "messages": [str(e)]})
|
||||
|
||||
|
||||
def install_on_app(
|
||||
app,
|
||||
*,
|
||||
@@ -155,12 +183,12 @@ def register_hub_routes(app):
|
||||
@app.route("/api/hub/add_order", methods=["POST"])
|
||||
@_hub_auth_required
|
||||
def api_hub_add_order():
|
||||
return jsonify(_invoke_view("add_order", "/trade"))
|
||||
return _hub_json("add_order", "/add_order")
|
||||
|
||||
@app.route("/api/hub/add_key", methods=["POST"])
|
||||
@_hub_auth_required
|
||||
def api_hub_add_key():
|
||||
return jsonify(_invoke_view("add_key", "/key_monitor"))
|
||||
return _hub_json("add_key", "/add_key")
|
||||
|
||||
@app.route("/api/hub/trend/preview", methods=["POST"])
|
||||
@_hub_auth_required
|
||||
|
||||
Reference in New Issue
Block a user