from fastapi import APIRouter, HTTPException import os import shutil from .upload import session_files router = APIRouter(tags=["cleanup"]) # Dossier racine pour les uploads UPLOAD_ROOT = "uploaded_files" # Liste des documents de base qui ne doivent pas être supprimés BASE_DOCUMENTS = ["the-bitter-lesson", "hurricane-faq", "pokemon-guide"] @router.delete("/cleanup-session/{session_id}") async def cleanup_session(session_id: str): """ Supprime le dossier de session après que l'utilisateur a visualisé les résultats d'évaluation. Ne supprime pas les documents de base. Args: session_id: ID de la session à supprimer Returns: Dictionary avec statut et message """ # Vérifier si le session_id existe et n'est pas un document de base if session_id in BASE_DOCUMENTS: return { "success": False, "message": f"Cannot delete base document: {session_id}" } session_dir = os.path.join(UPLOAD_ROOT, session_id) # Vérifier si le dossier existe if not os.path.exists(session_dir): return { "success": False, "message": f"Session directory not found: {session_id}" } try: # Supprimer la référence du fichier de session if session_id in session_files: del session_files[session_id] # Supprimer le dossier de session shutil.rmtree(session_dir) return { "success": True, "message": f"Session cleaned up successfully: {session_id}" } except Exception as e: return { "success": False, "message": f"Error cleaning up session: {str(e)}" }