From 66b6770ddd5db717f65b4f8d9cda9f1c0b75ea6f Mon Sep 17 00:00:00 2001 From: Donkie Date: Fri, 7 Jul 2023 17:33:19 +0200 Subject: [PATCH] Backup API now instead returns 500 on failure Removed the "success" flag --- spoolman/api/v1/models.py | 3 +-- spoolman/api/v1/router.py | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/spoolman/api/v1/models.py b/spoolman/api/v1/models.py index 7b5bd88..d8f22b1 100644 --- a/spoolman/api/v1/models.py +++ b/spoolman/api/v1/models.py @@ -162,8 +162,7 @@ class HealthCheck(BaseModel): class BackupResponse(BaseModel): - success: bool = Field(description="Whether the backup was created successfully.", example=True) - path: Optional[str] = Field( + path: str = Field( default=None, description="Path to the created backup file.", example="/home/app/.local/share/spoolman/backups/spoolman.db", diff --git a/spoolman/api/v1/router.py b/spoolman/api/v1/router.py index da2aa2e..96254a4 100644 --- a/spoolman/api/v1/router.py +++ b/spoolman/api/v1/router.py @@ -40,13 +40,21 @@ async def health() -> models.HealthCheck: # Add endpoint for triggering a db backup -@app.post("/backup", description="Trigger a database backup. Only applicable for SQLite databases.") -async def backup() -> models.BackupResponse: +@app.post( + "/backup", + description="Trigger a database backup. Only applicable for SQLite databases.", + response_model=models.BackupResponse, + responses={500: {"model": models.Message}}, +) +async def backup(): # noqa: ANN201 """Trigger a database backup.""" path = await backup_task() if path is None: - return models.BackupResponse(success=False) - return models.BackupResponse(success=True, path=str(path)) + return JSONResponse( + status_code=500, + content={"message": "Backup failed. See server logs for more information."}, + ) + return models.BackupResponse(path=str(path)) # Add routers