新增全渠道网关的 API 路由层和网关端点。 主要变更: - channel_router.py: 渠道管理 API 路由(CRUD、配置、绑定等) - gateway_sse_router.py: SSE 网关端点 - gateway_ws_router.py: WebSocket 网关端点 - webhook_router.py: Webhook 回调路由 - auth_router.py: 认证路由更新 - routers/__init__.py: 路由注册更新 - main.py: 主入口更新 - lifespan.py: 应用生命周期更新,渠道扩展加载与卸载
23 lines
673 B
Python
23 lines
673 B
Python
import logging
|
|
|
|
from fastapi import APIRouter, Depends, Query
|
|
|
|
from server.utils.auth_middleware import get_admin_user
|
|
from yuxi.channel.gateway.polling import polling_fallback
|
|
from yuxi.storage.postgres.models_business import User
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
sse_polling_router = APIRouter(prefix="/poll", tags=["sse-polling"])
|
|
|
|
|
|
@sse_polling_router.get("")
|
|
async def sse_poll(
|
|
session_id: str = Query(..., description="轮询会话 ID"),
|
|
current_user: User = Depends(get_admin_user),
|
|
):
|
|
events = await polling_fallback.poll(session_id)
|
|
if not events:
|
|
return {"status": "empty", "data": None}
|
|
return {"status": "ok", "data": events}
|