Spaces:
Running
Running
| """ | |
| Session management API routes. | |
| This module handles session-related endpoints like history and cleanup. | |
| """ | |
| from fastapi import HTTPException | |
| from configs.config import ErrorMessages, SuccessMessages | |
| from models.models import SessionRequest, ChatHistoryResponse, StatusResponse | |
| from services import session_manager | |
| async def get_chat_history_handler(request: SessionRequest) -> ChatHistoryResponse: | |
| """ | |
| Get chat history for a session. | |
| Args: | |
| request: Session request with session ID | |
| Returns: | |
| Chat history response | |
| Raises: | |
| HTTPException: If session not found | |
| """ | |
| session_data, found = session_manager.get_session(request.session_id) | |
| if not found: | |
| raise HTTPException(status_code=404, detail=ErrorMessages.SESSION_NOT_FOUND) | |
| return ChatHistoryResponse( | |
| status="success", | |
| history=session_data.get("chat_history", []) | |
| ) | |
| async def clear_history_handler(request: SessionRequest) -> StatusResponse: | |
| """ | |
| Clear chat history for a session. | |
| Args: | |
| request: Session request with session ID | |
| Returns: | |
| Status response | |
| Raises: | |
| HTTPException: If session not found | |
| """ | |
| success = session_manager.clear_chat_history(request.session_id) | |
| if not success: | |
| raise HTTPException(status_code=404, detail=ErrorMessages.SESSION_NOT_FOUND) | |
| return StatusResponse( | |
| status="success", | |
| message=SuccessMessages.CHAT_HISTORY_CLEARED | |
| ) | |
| async def remove_pdf_handler(request: SessionRequest) -> StatusResponse: | |
| """ | |
| Remove PDF and session data. | |
| Args: | |
| request: Session request with session ID | |
| Returns: | |
| Status response | |
| Raises: | |
| HTTPException: If session not found or removal failed | |
| """ | |
| success = session_manager.remove_session(request.session_id) | |
| if success: | |
| return StatusResponse( | |
| status="success", | |
| message=SuccessMessages.PDF_REMOVED | |
| ) | |
| else: | |
| raise HTTPException( | |
| status_code=404, | |
| detail=ErrorMessages.SESSION_REMOVAL_FAILED | |
| ) | |