Added API for fetching external database, removed parameters structure,

This commit is contained in:
Donkie
2024-05-12 12:14:25 +02:00
parent 595fd82b56
commit cbaa7b81df
6 changed files with 127 additions and 48 deletions

View File

@@ -0,0 +1,39 @@
"""External database API."""
import logging
from fastapi import APIRouter
from fastapi.responses import FileResponse
from spoolman.externaldb import ExternalFilament, ExternalMaterial, get_filaments_file, get_materials_file
router = APIRouter(
prefix="/external",
tags=["external"],
)
# ruff: noqa: D103,B008
logger = logging.getLogger(__name__)
@router.get(
"/filaments",
name="Get all external filaments",
response_model_exclude_none=True,
response_model=list[ExternalFilament],
)
async def filaments() -> FileResponse:
"""Get all external filaments."""
return FileResponse(path=get_filaments_file(), media_type="application/json")
@router.get(
"/materials",
name="Get all external materials",
response_model_exclude_none=True,
response_model=list[ExternalMaterial],
)
async def materials() -> FileResponse:
"""Get all external materials."""
return FileResponse(path=get_materials_file(), media_type="application/json")

View File

@@ -15,7 +15,7 @@ from spoolman.database.database import backup_global_db
from spoolman.exceptions import ItemNotFoundError
from spoolman.ws import websocket_manager
from . import field, filament, models, other, setting, spool, vendor
from . import externaldb, field, filament, models, other, setting, spool, vendor
logger = logging.getLogger(__name__)
@@ -110,3 +110,4 @@ app.include_router(vendor.router)
app.include_router(setting.router)
app.include_router(field.router)
app.include_router(other.router)
app.include_router(externaldb.router)