27 lines
714 B
Python
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()
|