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}
|