feat(admin): /admin/material-files lists files in the material volume

This commit is contained in:
2026-05-13 16:12:42 +00:00
parent 0f175ab138
commit 94102279ae

View File

@@ -1,15 +1,35 @@
import csv
import io
from pathlib import Path
from fastapi import APIRouter, Depends, Query
from fastapi.responses import Response
from app.config import get_settings
from app.db import list_leads, stats
from app.security import require_admin
router = APIRouter(prefix="/admin", tags=["admin"])
@router.get("/material-files")
def admin_material_files(_user: str = Depends(require_admin)):
"""Lista los archivos en el directorio material/ con sus tamaños."""
material_dir = Path(get_settings().material_dir)
if not material_dir.exists():
return {"material_dir": str(material_dir), "exists": False, "files": []}
files = []
for path in sorted(material_dir.iterdir()):
if path.is_file():
size = path.stat().st_size
files.append({
"name": path.name,
"size_bytes": size,
"size_mb": round(size / (1024 * 1024), 2),
})
return {"material_dir": str(material_dir), "exists": True, "files": files}
@router.get("/leads.json")
def admin_leads_json(
_user: str = Depends(require_admin),