visus-plus/api/app/controllers/backup_router.py

27 lines
714 B
Python

from fastapi import APIRouter, Depends
from starlette.responses import FileResponse
from app.infrastructure.backup_service import BackupService
from app.infrastructure.dependencies import require_admin
from app.settings import settings
router = APIRouter()
@router.post(
"/create/",
response_class=FileResponse,
summary="Create backup",
description="Create backup",
)
async def create_backup(
user=Depends(require_admin),
):
backup_service = BackupService(
db_url=settings.BACKUP_DB_URL,
app_files_dir=settings.FILE_UPLOAD_DIR,
backup_dir=settings.BACKUP_DIR,
pg_dump_path=settings.PG_DUMP_PATH,
)
return await backup_service.create_backup()