Spaces:
Sleeping
Sleeping
Commit ·
7ef23aa
1
Parent(s): 7bcc3c9
Refactor WebSocket session handling and improve subscription request handling
Browse files
main.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
from contextlib import asynccontextmanager
|
| 2 |
from datetime import datetime
|
| 3 |
from pathlib import Path
|
|
|
|
| 4 |
from uuid import uuid4
|
| 5 |
|
| 6 |
import uvicorn
|
|
@@ -68,7 +69,7 @@ app = FastAPI(
|
|
| 68 |
@app.websocket("/ws/{user_id}")
|
| 69 |
async def websocket_endpoint(websocket: WebSocket, user_id: str):
|
| 70 |
"""Endpoint pour les connexions WebSocket"""
|
| 71 |
-
session_id =
|
| 72 |
|
| 73 |
try:
|
| 74 |
client_info = ClientInfo(
|
|
@@ -104,7 +105,7 @@ async def websocket_endpoint(websocket: WebSocket, user_id: str):
|
|
| 104 |
|
| 105 |
|
| 106 |
# Endpoints REST
|
| 107 |
-
@app.get("/"
|
| 108 |
async def root(request: Request):
|
| 109 |
# """Page de test pour les connexions WebSocket"""
|
| 110 |
# return templates.TemplateResponse(
|
|
@@ -117,10 +118,11 @@ async def root(request: Request):
|
|
| 117 |
@app.post("/subscriptions/{session_id}")
|
| 118 |
async def add_subscription(
|
| 119 |
session_id: str = Depends(validate_session),
|
| 120 |
-
subscription_request: SubscriptionRequest = None,
|
| 121 |
):
|
| 122 |
"""Ajoute un nouvel abonnement pour une session"""
|
| 123 |
-
|
|
|
|
| 124 |
|
| 125 |
if not manager.add_subscription(session_id, subscription):
|
| 126 |
raise HTTPException(status_code=400, detail="Échec de l'ajout de l'abonnement")
|
|
|
|
| 1 |
from contextlib import asynccontextmanager
|
| 2 |
from datetime import datetime
|
| 3 |
from pathlib import Path
|
| 4 |
+
from typing import Optional
|
| 5 |
from uuid import uuid4
|
| 6 |
|
| 7 |
import uvicorn
|
|
|
|
| 69 |
@app.websocket("/ws/{user_id}")
|
| 70 |
async def websocket_endpoint(websocket: WebSocket, user_id: str):
|
| 71 |
"""Endpoint pour les connexions WebSocket"""
|
| 72 |
+
session_id = ""
|
| 73 |
|
| 74 |
try:
|
| 75 |
client_info = ClientInfo(
|
|
|
|
| 105 |
|
| 106 |
|
| 107 |
# Endpoints REST
|
| 108 |
+
@app.get("/")
|
| 109 |
async def root(request: Request):
|
| 110 |
# """Page de test pour les connexions WebSocket"""
|
| 111 |
# return templates.TemplateResponse(
|
|
|
|
| 118 |
@app.post("/subscriptions/{session_id}")
|
| 119 |
async def add_subscription(
|
| 120 |
session_id: str = Depends(validate_session),
|
| 121 |
+
subscription_request: Optional[SubscriptionRequest] = None,
|
| 122 |
):
|
| 123 |
"""Ajoute un nouvel abonnement pour une session"""
|
| 124 |
+
|
| 125 |
+
subscription = Subscription(**subscription_request.model_dump()) if subscription_request else Subscription(type="default", target="default")
|
| 126 |
|
| 127 |
if not manager.add_subscription(session_id, subscription):
|
| 128 |
raise HTTPException(status_code=400, detail="Échec de l'ajout de l'abonnement")
|