Added a /info endpoint

Contains useful info like version, and configurations
This commit is contained in:
Donkie
2023-07-10 11:46:19 +02:00
parent b9ee4626d3
commit 247df66736
2 changed files with 24 additions and 0 deletions

View File

@@ -188,6 +188,15 @@ class Spool(BaseModel):
) )
class Info(BaseModel):
version: str = Field(example="0.7.0")
debug_mode: bool = Field(example=False)
automatic_backups: bool = Field(example=True)
data_dir: str = Field(example="/home/app/.local/share/spoolman")
backups_dir: str = Field(example="/home/app/.local/share/spoolman/backups")
db_type: str = Field(example="sqlite")
class HealthCheck(BaseModel): class HealthCheck(BaseModel):
status: str = Field(example="healthy") status: str = Field(example="healthy")

View File

@@ -9,6 +9,7 @@ from fastapi.responses import JSONResponse
from starlette.requests import Request from starlette.requests import Request
from starlette.responses import Response from starlette.responses import Response
from spoolman import env
from spoolman.database.database import backup_global_db from spoolman.database.database import backup_global_db
from spoolman.exceptions import ItemNotFoundError from spoolman.exceptions import ItemNotFoundError
@@ -32,6 +33,20 @@ async def itemnotfounderror_exception_handler(_request: Request, exc: ItemNotFou
) )
# Add a general info endpoint
@app.get("/info")
async def info() -> models.Info:
"""Return general info about the API."""
return models.Info(
version=env.get_version(),
debug_mode=env.is_debug_mode(),
automatic_backups=env.is_automatic_backup_enabled(),
data_dir=str(env.get_data_dir().resolve()),
backups_dir=str(env.get_backups_dir().resolve()),
db_type=str(env.get_database_type() or "sqlite"),
)
# Add health check endpoint # Add health check endpoint
@app.get("/health") @app.get("/health")
async def health() -> models.HealthCheck: async def health() -> models.HealthCheck: