22 lines
674 B
Python
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"}
|