feat: storage management — disk usage, cleanup API, scheduled cleanup task

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-03 22:32:36 +05:00
parent b1eafa4e0b
commit 397b999558
4 changed files with 117 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
from fastapi import APIRouter, Depends, HTTPException
from app.api.deps import get_current_user
from app.models.user import User, UserRole
from app.services.storage import get_disk_usage
from app.tasks.cleanup import cleanup_old_data_task
router = APIRouter(prefix="/api/settings", tags=["settings"])
@router.get("/storage")
async def storage_info(user: User = Depends(get_current_user)):
return get_disk_usage()
@router.post("/cleanup")
async def trigger_cleanup(
retention_days: int | None = None,
user: User = Depends(get_current_user),
):
if user.role != UserRole.admin:
raise HTTPException(403, "Admin access required")
cleanup_old_data_task.delay(retention_days)
return {"message": "Cleanup started"}