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:
@@ -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"}
|
||||
Reference in New Issue
Block a user