Skip to content

Commit 5f04c94

Browse files
committed
feat: add match API routes with request, cancel, and WebSocket endpoints
1 parent f0747ea commit 5f04c94

File tree

1 file changed

+25
-0
lines changed
  • services/matching-service/app/routers

1 file changed

+25
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from fastapi import APIRouter, HTTPException, BackgroundTasks, WebSocket, WebSocketDisconnect
2+
from app.models.match import MatchResponse, MatchRequest
3+
from app.services.matching import MatchingService
4+
from app.services.websocket_manager import manager
5+
6+
router = APIRouter()
7+
8+
@router.post("/request", response_model=MatchResponse)
9+
async def request_match(request: MatchRequest, background_tasks: BackgroundTasks):
10+
background_tasks.add_task(MatchingService.check_timeouts, request)
11+
response = await MatchingService.join_queue(request)
12+
return response
13+
14+
@router.post("/cancel", response_model=MatchResponse)
15+
async def cancel_match(request: MatchRequest):
16+
return MatchingService.cancel_queue(request)
17+
18+
@router.websocket("/ws/{user_id}")
19+
async def websocket_endpoint(websocket: WebSocket, user_id: str):
20+
await manager.connect(user_id, websocket)
21+
try:
22+
while True:
23+
await websocket.receive_text()
24+
except:
25+
manager.disconnect(user_id)

0 commit comments

Comments
 (0)