|
from fastapi import APIRouter, HTTPException |
|
import os |
|
import shutil |
|
from .upload import session_files |
|
|
|
router = APIRouter(tags=["cleanup"]) |
|
|
|
|
|
UPLOAD_ROOT = "uploaded_files" |
|
|
|
|
|
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 |
|
""" |
|
|
|
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) |
|
|
|
|
|
if not os.path.exists(session_dir): |
|
return { |
|
"success": False, |
|
"message": f"Session directory not found: {session_id}" |
|
} |
|
|
|
try: |
|
|
|
if session_id in session_files: |
|
del session_files[session_id] |
|
|
|
|
|
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)}" |
|
} |