35 lines
1008 B
Python
35 lines
1008 B
Python
from fastapi import APIRouter, HTTPException, status
|
|
from pydantic import BaseModel
|
|
|
|
from app.services import engine
|
|
|
|
router = APIRouter(prefix="/engine", tags=["info"])
|
|
|
|
|
|
class EngineInfoResponse(BaseModel):
|
|
version: str
|
|
build_info: str
|
|
has_pdfium: bool
|
|
has_skia: bool
|
|
|
|
|
|
@router.get("/info", response_model=EngineInfoResponse)
|
|
def get_engine_info() -> EngineInfoResponse:
|
|
if not engine.is_available():
|
|
raise HTTPException(
|
|
status_code=status.HTTP_501_NOT_IMPLEMENTED,
|
|
detail="Engine bridge (bindings/python) not yet available.",
|
|
)
|
|
|
|
pdfengine = engine.require()
|
|
|
|
try:
|
|
return EngineInfoResponse(
|
|
version=pdfengine.engine_version(),
|
|
build_info=pdfengine.engine_build_info(),
|
|
has_pdfium=pdfengine.engine_has_pdfium(),
|
|
has_skia=pdfengine.engine_has_skia(),
|
|
)
|
|
except Exception as e:
|
|
raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=str(e))
|