fix(HEL-191): 补回问天解势知识文件兜底并消除 Failed to fetch
宿主机 data 挂载会遮盖镜像内 heaven_knowledge.json;增加不受挂载影响的 seed, 并将缺文件/坏 JSON 转为结构化中文错误,前端展示可读提示而非 Failed to fetch。 Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
co-authored by
Cursor
multica-agent
parent
8a5e78f022
commit
ef86b31f6b
@@ -3,15 +3,24 @@ from __future__ import annotations
|
||||
import json
|
||||
from http import HTTPStatus
|
||||
|
||||
from backend.features.heaven.knowledge import HeavenKnowledgeError
|
||||
|
||||
|
||||
class HeavenHttpMixin:
|
||||
def _send_heaven_client_error(self, exc: Exception) -> None:
|
||||
payload: dict = {"error": str(exc)}
|
||||
code = getattr(exc, "error_code", None)
|
||||
if code:
|
||||
payload["code"] = str(code)
|
||||
self.send_json(payload, HTTPStatus.BAD_REQUEST)
|
||||
|
||||
def heaven_hexagram(self) -> None:
|
||||
try:
|
||||
body = self.read_json_body()
|
||||
result = self.application_service.heaven_hexagram(body.get("lines"))
|
||||
self.send_json({"ok": True, "hexagram": result})
|
||||
except (ValueError, json.JSONDecodeError) as exc:
|
||||
self.send_json({"error": str(exc)}, HTTPStatus.BAD_REQUEST)
|
||||
self._send_heaven_client_error(exc)
|
||||
|
||||
def heaven_personal(self) -> None:
|
||||
try:
|
||||
@@ -19,12 +28,12 @@ class HeavenHttpMixin:
|
||||
result = self.application_service.heaven_personal(body)
|
||||
self.send_json({"ok": True, "personal": result})
|
||||
except (ValueError, json.JSONDecodeError) as exc:
|
||||
self.send_json({"error": str(exc)}, HTTPStatus.BAD_REQUEST)
|
||||
self._send_heaven_client_error(exc)
|
||||
|
||||
def heaven_interpret(self) -> None:
|
||||
try:
|
||||
body = self.read_json_body()
|
||||
result = self.application_service.heaven_interpret(body)
|
||||
self.send_json({"ok": True, **result})
|
||||
except (ValueError, json.JSONDecodeError) as exc:
|
||||
self.send_json({"error": str(exc)}, HTTPStatus.BAD_REQUEST)
|
||||
except (HeavenKnowledgeError, ValueError, json.JSONDecodeError) as exc:
|
||||
self._send_heaven_client_error(exc)
|
||||
|
||||
Reference in New Issue
Block a user