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

@@ -9,6 +9,7 @@ from fastapi.responses import JSONResponse
from starlette.requests import Request
from starlette.responses import Response
from spoolman import env
from spoolman.database.database import backup_global_db
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
@app.get("/health")
async def health() -> models.HealthCheck: