From 94102279aea1f650bfb5d6a6511b097dcf6be756 Mon Sep 17 00:00:00 2001 From: farentsen Date: Wed, 13 May 2026 16:12:42 +0000 Subject: [PATCH] feat(admin): /admin/material-files lists files in the material volume --- app/admin.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app/admin.py b/app/admin.py index a5d7c0c..4960c53 100644 --- a/app/admin.py +++ b/app/admin.py @@ -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),