42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
from __future__ import annotations
|
|
|
|
import json
|
|
from datetime import date
|
|
from http import HTTPStatus
|
|
|
|
|
|
class SystemHttpMixin:
|
|
def save_system_settings(self) -> None:
|
|
try:
|
|
result = self.application_service.save_system_settings(self.read_json_body())
|
|
self.send_json({"ok": True, **result})
|
|
except (ValueError, json.JSONDecodeError) as exc:
|
|
self.send_json({"error": str(exc)}, HTTPStatus.BAD_REQUEST)
|
|
|
|
def test_system_llm_settings(self) -> None:
|
|
try:
|
|
body = self.read_json_body()
|
|
result = self.application_service.test_system_llm_profile(
|
|
str(body.get("model_id") or ""), body.get("profile") or {}
|
|
)
|
|
self.send_json({"ok": True, "result": result})
|
|
except (ValueError, json.JSONDecodeError) as exc:
|
|
self.send_json({"error": str(exc)}, HTTPStatus.BAD_REQUEST)
|
|
|
|
def start_background_refresh(self) -> None:
|
|
try:
|
|
body = self.read_json_body(allow_empty=True)
|
|
started = self.application_service.request_background_sync(
|
|
str(body.get("trade_date") or date.today().isoformat())
|
|
)
|
|
self.send_json(
|
|
{
|
|
"ok": True,
|
|
"started": started,
|
|
"message": "后台刷新已开始" if started else "已有后台刷新任务正在运行",
|
|
},
|
|
HTTPStatus.ACCEPTED,
|
|
)
|
|
except (ValueError, json.JSONDecodeError) as exc:
|
|
self.send_json({"error": str(exc)}, HTTPStatus.BAD_REQUEST)
|