demo / backend /routes /cleanup.py
tfrere's picture
add session clenaup and timeout messages
373381c
raw
history blame
1.76 kB
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)}"
}