feat: initial import (exclude templates and runtime temp files)

This commit is contained in:
237899745
2026-02-27 15:21:15 +08:00
commit 0951732c7a
33 changed files with 11698 additions and 0 deletions

115
app/api_post_routes.py Normal file
View File

@@ -0,0 +1,115 @@
from __future__ import annotations
from http import HTTPStatus
from typing import Any
from services.post_ops import (
run_delete_issue,
run_history_append,
run_history_clear,
run_mark_issue,
run_output_clear,
run_suppress_skipped,
run_update_issue,
)
from services.workflows import (
run_correction_apply_api,
run_generate_api,
run_parse_api,
)
def _read_payload(handler: Any) -> dict[str, Any] | None:
try:
payload = handler._read_json_body()
except ValueError as exc:
handler._send_json({"ok": False, "error": str(exc)}, HTTPStatus.BAD_REQUEST)
return None
if not isinstance(payload, dict):
handler._send_json({"ok": False, "error": "invalid JSON body"}, HTTPStatus.BAD_REQUEST)
return None
return payload
def handle_post_routes(handler: Any, parsed: Any, ctx: dict[str, Any]) -> bool:
if parsed.path == "/api/parse":
payload = _read_payload(handler)
if payload is None:
return True
status, body = run_parse_api(payload, ctx)
handler._send_json(body, status)
return True
if parsed.path == "/api/generate":
payload = _read_payload(handler)
if payload is None:
return True
status, body = run_generate_api(payload, ctx)
handler._send_json(body, status)
return True
if parsed.path == "/api/correction/apply":
payload = _read_payload(handler)
if payload is None:
return True
status, body = run_correction_apply_api(payload, ctx)
handler._send_json(body, status)
return True
if parsed.path == "/api/log/mark":
payload = _read_payload(handler)
if payload is None:
return True
status, body = run_mark_issue(payload, ctx)
handler._send_json(body, status)
return True
if parsed.path == "/api/skipped/suppress":
payload = _read_payload(handler)
if payload is None:
return True
status, body = run_suppress_skipped(payload, ctx)
handler._send_json(body, status)
return True
if parsed.path == "/api/issues/update":
payload = _read_payload(handler)
if payload is None:
return True
status, body = run_update_issue(payload, ctx)
handler._send_json(body, status)
return True
if parsed.path == "/api/issues/delete":
payload = _read_payload(handler)
if payload is None:
return True
status, body = run_delete_issue(payload, ctx)
handler._send_json(body, status)
return True
if parsed.path == "/api/output/clear":
payload = _read_payload(handler)
if payload is None:
return True
status, body = run_output_clear(ctx)
handler._send_json(body, status)
return True
if parsed.path == "/api/history/append":
payload = _read_payload(handler)
if payload is None:
return True
status, body = run_history_append(payload, ctx)
handler._send_json(body, status)
return True
if parsed.path == "/api/history/clear":
payload = _read_payload(handler)
if payload is None:
return True
status, body = run_history_clear(ctx)
handler._send_json(body, status)
return True
return False