v1.1.11: normalize valueList CSV→array for nested dataDescriptor params
This commit is contained in:
+1
-1
@@ -18,7 +18,7 @@ from routes.api import bp as api_bp
|
||||
from routes.api_test import bp as api_test_bp
|
||||
|
||||
# Версия — меняется при КАЖДОМ изменении кода. Показывается в топбаре UI.
|
||||
VERSION = "1.1.10"
|
||||
VERSION = "1.1.11"
|
||||
|
||||
app = Flask(__name__, template_folder="templates", static_folder="static")
|
||||
app.config["NUBES_API_ENDPOINT"] = os.getenv("NUBES_API_ENDPOINT", "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc")
|
||||
|
||||
@@ -71,7 +71,7 @@ def get_params_with_current_values(client, op_id, instance_uid):
|
||||
{
|
||||
k: {
|
||||
"dataType": v.get("dataType", ""),
|
||||
"valueList": v.get("valueList", ""),
|
||||
"valueList": _normalize_value_list(v.get("valueList", "")),
|
||||
"isRequired": v.get("isRequired", False),
|
||||
}
|
||||
for k, v in dd.items()
|
||||
@@ -81,3 +81,15 @@ def get_params_with_current_values(client, op_id, instance_uid):
|
||||
})
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def _normalize_value_list(vl):
|
||||
"""Nubes API возвращает valueList как CSV-строку или массив.
|
||||
Приводим к list для фронтенда."""
|
||||
if vl is None:
|
||||
return None
|
||||
if isinstance(vl, list):
|
||||
return vl
|
||||
if isinstance(vl, str):
|
||||
return [x.strip() for x in vl.split(',') if x.strip()] or None
|
||||
return None
|
||||
|
||||
@@ -175,9 +175,9 @@ def api_params(op_id):
|
||||
"dataType": p.get("dataType", ""),
|
||||
"isRequired": p.get("isRequired", False),
|
||||
"defaultValue": p.get("defaultValue"),
|
||||
"valueList": p.get("valueList"),
|
||||
"valueList": _normalize_value_list(p.get("valueList")),
|
||||
"refSvcId": p.get("refSvcId"),
|
||||
"dataDescriptor": {k: {"dataType": v.get("dataType",""), "valueList": v.get("valueList",""), "isRequired": v.get("isRequired", False)} for k, v in dd.items()} if isinstance(dd, dict) else None,
|
||||
"dataDescriptor": {k: {"dataType": v.get("dataType",""), "valueList": _normalize_value_list(v.get("valueList","")), "isRequired": v.get("isRequired", False)} for k, v in dd.items()} if isinstance(dd, dict) else None,
|
||||
})
|
||||
_log(f"[api_params] DEFAULT returning {len(result)} params")
|
||||
return jsonify({"params": result})
|
||||
|
||||
Reference in New Issue
Block a user