fix(alarm): update alarm status endpoint to accept JSON body

This commit is contained in:
2026-01-21 17:50:19 +08:00
parent 20634c2ad4
commit 804c6a60e9

View File

@@ -1,7 +1,8 @@
from datetime import datetime
from typing import List, Optional
from fastapi import APIRouter, Depends, HTTPException, Query
from fastapi import APIRouter, Depends, HTTPException, Query, Body
from pydantic import BaseModel
from sqlalchemy.orm import Session
from db.crud import (
@@ -16,6 +17,12 @@ from inference.pipeline import get_pipeline
router = APIRouter(prefix="/api/alarms", tags=["告警管理"])
class AlarmUpdateRequest(BaseModel):
llm_checked: Optional[bool] = None
llm_result: Optional[str] = None
processed: Optional[bool] = None
@router.get("", response_model=List[dict])
def list_alarms(
camera_id: Optional[int] = None,
@@ -72,12 +79,10 @@ def get_alarm(alarm_id: int, db: Session = Depends(get_db)):
@router.put("/{alarm_id}")
def update_alarm_status(
alarm_id: int,
llm_checked: Optional[bool] = None,
llm_result: Optional[str] = None,
processed: Optional[bool] = None,
request: AlarmUpdateRequest = Body(...),
db: Session = Depends(get_db),
):
alarm = update_alarm(db, alarm_id, llm_checked=llm_checked, llm_result=llm_result, processed=processed)
alarm = update_alarm(db, alarm_id, llm_checked=request.llm_checked, llm_result=request.llm_result, processed=request.processed)
if not alarm:
raise HTTPException(status_code=404, detail="告警不存在")
return {"message": "更新成功"}