Spaces:
Sleeping
Sleeping
| # api/routes/sessions.py | |
| from fastapi import APIRouter, HTTPException | |
| from api.models import ApprovalRequest | |
| from api.services import ChatService | |
| router = APIRouter(prefix="/sessions", tags=["Sessions"]) | |
| async def approve_assistance(session_id: str, request: ApprovalRequest): | |
| """Approve or reject assistance request""" | |
| try: | |
| return await ChatService.approve_request( | |
| session_id=session_id, | |
| decision=request.decision, | |
| reason=request.reason | |
| ) | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |
| async def get_session_status(session_id: str): | |
| """Get session status including interrupt state""" | |
| try: | |
| return await ChatService.get_session_status(session_id) | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |
| async def get_history(session_id: str): | |
| """Get conversation history""" | |
| try: | |
| return await ChatService.get_history(session_id) | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |
| async def list_sessions(): | |
| """List all active sessions with their status""" | |
| try: | |
| return await ChatService.list_sessions() | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |
| async def clear_session(session_id: str): | |
| """Clear a session (useful for testing)""" | |
| try: | |
| return await ChatService.clear_session(session_id) | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |