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()