gnss/gnss/api/routes/logs.py

22 lines
674 B
Python

from fastapi import APIRouter, Depends, HTTPException
from pydantic import BaseModel, Field
from ...api.dependencies import get_log_service
from ...services.logs import LogService
class FrontLog(BaseModel):
message: str
level: str = Field(default="info")
source: str = Field(default="frontend")
router = APIRouter(tags=["logs"])
@router.post("/logs")
async def push_log(payload: FrontLog, logger: LogService = Depends(get_log_service)) -> dict:
if not payload.message:
raise HTTPException(status_code=400, detail="message is required")
logger.append(payload.message, source=payload.source, level=payload.level)
return {"status": "ok"}