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