modify: 上报接口 422 问题
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
未声明的额外字段通过 model_config extra=allow 保留。
|
未声明的额外字段通过 model_config extra=allow 保留。
|
||||||
"""
|
"""
|
||||||
from typing import Any, Optional
|
from typing import Any, Optional
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field, field_validator
|
||||||
|
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
@@ -23,6 +23,14 @@ class GpsInfo(BaseModel):
|
|||||||
longitude: float = Field(default=0.0, description="经度")
|
longitude: float = Field(default=0.0, description="经度")
|
||||||
angleCourse: float = Field(default=0.0, description="GPS 角度")
|
angleCourse: float = Field(default=0.0, description="GPS 角度")
|
||||||
|
|
||||||
|
@field_validator('kSpeed', 'nSpeed', 'latitude', 'longitude', 'angleCourse', mode='before')
|
||||||
|
@classmethod
|
||||||
|
def _empty_str_to_zero(cls, v: Any) -> Any:
|
||||||
|
"""设备可能上报空字符串,转为 0.0"""
|
||||||
|
if v == '' or v is None:
|
||||||
|
return 0.0
|
||||||
|
return v
|
||||||
|
|
||||||
|
|
||||||
class MediaInfo(BaseModel):
|
class MediaInfo(BaseModel):
|
||||||
"""视频通道信息"""
|
"""视频通道信息"""
|
||||||
@@ -38,6 +46,14 @@ class MediaInfo(BaseModel):
|
|||||||
RtspTransport: bool = Field(default=False, description="是否开启 RTSP 转发")
|
RtspTransport: bool = Field(default=False, description="是否开启 RTSP 转发")
|
||||||
Params: Optional[dict] = Field(default=None, description="预留其他参数")
|
Params: Optional[dict] = Field(default=None, description="预留其他参数")
|
||||||
|
|
||||||
|
@field_validator('MediaWidth', 'MediaHeight', mode='before')
|
||||||
|
@classmethod
|
||||||
|
def _empty_str_to_zero(cls, v: Any) -> Any:
|
||||||
|
"""设备可能上报空字符串,转为 0"""
|
||||||
|
if v == '' or v is None:
|
||||||
|
return 0
|
||||||
|
return v
|
||||||
|
|
||||||
|
|
||||||
class ResultProperty(BaseModel):
|
class ResultProperty(BaseModel):
|
||||||
"""告警 Result 中的属性项"""
|
"""告警 Result 中的属性项"""
|
||||||
@@ -125,6 +141,14 @@ class AlarmReportRequest(BaseModel):
|
|||||||
DataId: int = Field(default=0, description="数据 ID")
|
DataId: int = Field(default=0, description="数据 ID")
|
||||||
Id: int = Field(default=0, description="记录 ID")
|
Id: int = Field(default=0, description="记录 ID")
|
||||||
|
|
||||||
|
@field_validator('DataId', 'Id', 'TimeStamp', 'Type', mode='before')
|
||||||
|
@classmethod
|
||||||
|
def _empty_str_to_zero(cls, v: Any) -> Any:
|
||||||
|
"""设备可能上报空字符串,转为 0"""
|
||||||
|
if v == '' or v is None:
|
||||||
|
return 0
|
||||||
|
return v
|
||||||
|
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# 告警上报响应体
|
# 告警上报响应体
|
||||||
|
|||||||
Reference in New Issue
Block a user