35 lines
941 B
Python
35 lines
941 B
Python
"""通知相关 API(需鉴权)。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter, Depends
|
|
|
|
from apps.api.auth import require_auth
|
|
from packages.notify import wecom
|
|
|
|
router = APIRouter(prefix="/notify", tags=["notify"], dependencies=[Depends(require_auth)])
|
|
|
|
|
|
@router.get("/wecom/status")
|
|
def wecom_status() -> dict:
|
|
url = wecom.wecom_webhook_url()
|
|
masked = None
|
|
if url:
|
|
if len(url) > 24:
|
|
masked = url[:18] + "…" + url[-6:]
|
|
else:
|
|
masked = "***"
|
|
return {
|
|
"enabled": wecom.wecom_enabled(),
|
|
"webhook_configured": bool(url),
|
|
"webhook_url_masked": masked,
|
|
"machine_name": wecom.wecom_machine_name(),
|
|
"alert_fail_threshold": wecom.alert_fail_threshold(),
|
|
}
|
|
|
|
|
|
@router.post("/wecom/test")
|
|
def wecom_test() -> dict:
|
|
ok, msg = wecom.notify_test()
|
|
return {"ok": ok, "message": msg}
|