This commit is contained in:
王思川 2022-11-09 00:52:24 +08:00
parent 7e2df42fec
commit 399c40c219
2 changed files with 53 additions and 6 deletions

View File

@ -91,9 +91,33 @@ def func06(schema: Schemas.SearchIndicatorReqBody, db: Session = Depends(get_db)
return {"items": indicators, "total": total}
@router.post("/register", summary='注册指标', tags=["指标"], response_model=Schemas.CreateIndicatorResBody)
def func07(schema: Schemas.RegisterIndicatorReqBody, db: Session = Depends(get_db)):
index_obj = Crud.get_indicator_by_ename(db, ename=schema.ename)
if index_obj:
raise HTTPException(status_code=202, detail="Indicator Already Registered")
category_obj = Crud.get_category_by_name(db=db, title=schema.category)
if not category_obj:
raise HTTPException(status_code=202, detail="Category Not Found")
real_schema = schema.dict()
real_schema.pop("category")
real_schema.update({"category_id": category_obj.id})
real_schema = Schemas.CreateIndicatorReqBody(**real_schema)
index_obj = Crud.create_indicator(db=db, schema=real_schema)
parameters_item = schema.parameters
for parameter in parameters_item:
Crud.create_parameter(db=db, schema=parameter, _iid=index_obj.iid)
return {"iid": index_obj.iid}
# 新建参数
@router.post("/param/create/{iid}", summary='新建参数', tags=["指标参数"])
def func07(iid: str, body: Schemas.EditParamReqBody, db: Session = Depends(get_db)):
def func08(iid: str, body: Schemas.EditParamReqBody, db: Session = Depends(get_db)):
index_obj = Crud.get_indicator_by_iid(db=db, iid=iid)
if not index_obj:
raise HTTPException(status_code=400, detail="Indicator Not Found")
@ -104,7 +128,7 @@ def func07(iid: str, body: Schemas.EditParamReqBody, db: Session = Depends(get_d
@router.post("/param/edit/{pid}", summary='编辑参数', tags=["指标参数"])
def func08(pid: str, schema: Schemas.EditParamReqBody, db: Session = Depends(get_db)):
def func09(pid: str, schema: Schemas.EditParamReqBody, db: Session = Depends(get_db)):
data = Crud.get_parameter_by_pid(db=db, pid=pid)
if not data:
raise HTTPException(status_code=202, detail="Parameter Not Existed")
@ -116,7 +140,7 @@ def func08(pid: str, schema: Schemas.EditParamReqBody, db: Session = Depends(get
# 删除参数
@router.post("/param/delete/{pid}", summary='删除参数', tags=["指标参数"])
def func09(pid: str, db: Session = Depends(get_db)):
def func10(pid: str, db: Session = Depends(get_db)):
data = Crud.get_parameter_by_pid(db=db, pid=pid)
if not data:
raise HTTPException(status_code=202, detail="Parameter Not Existed")
@ -127,7 +151,7 @@ def func09(pid: str, db: Session = Depends(get_db)):
@router.post("/category/create", summary="新建分类", tags=["指标分类"])
def func10(schema: Schemas.CreateCategoryReqBody, db: Session = Depends(get_db)):
def func11(schema: Schemas.CreateCategoryReqBody, db: Session = Depends(get_db)):
data = Crud.get_category_by_name(db=db, title=schema.title)
if data:
raise HTTPException(status_code=202, detail="Category Already Existed")
@ -138,7 +162,7 @@ def func10(schema: Schemas.CreateCategoryReqBody, db: Session = Depends(get_db))
@router.post("/category/delete", summary="删除分类", tags=["指标分类"])
def func10(schema: Schemas.DeleteCategoryReqBody, db: Session = Depends(get_db)):
def func12(schema: Schemas.DeleteCategoryReqBody, db: Session = Depends(get_db)):
data = Crud.get_category_by_id(db=db, category_id=schema.category_id)
if not data:
raise HTTPException(status_code=202, detail="Category Not Existed")
@ -152,6 +176,6 @@ def func10(schema: Schemas.DeleteCategoryReqBody, db: Session = Depends(get_db))
@router.post("/category/list", summary="分类列表", tags=["指标分类"])
def func11(db: Session = Depends(get_db)):
def func13(db: Session = Depends(get_db)):
category_objs = Crud.list_category(db=db)
return [obj.to_kv() for obj in category_objs]

View File

@ -44,6 +44,9 @@ class CreateIndicatorReqBody(BaseModel):
category_id: str
parameters: List[EditParamReqBody]
class Config:
use_enum_values = True
def to_dict(self):
_dict = self.dict().copy()
_dict.pop("parameters")
@ -81,6 +84,9 @@ class IndicatorFullResBody(BaseModel):
category_id: str
parameters: List[ParameterResBody] = []
class Config:
use_enum_values = True
class IndicatorDescribeResBody(BaseModel):
description: str
@ -92,3 +98,20 @@ class SearchIndicatorReqBody(BaseModel):
category_id: Optional[str] = None
page: int = 1
pagesize: int = 20
class RegisterIndicatorReqBody(BaseModel):
ename: ENameRegex = "example_indicator"
cname: CNameRegex = "示例指标"
description: str = "指标介绍文字"
nature: NatureEnum
category: str
parameters: List[EditParamReqBody]
class Config:
use_enum_values = True
def to_dict(self):
_dict = self.dict().copy()
_dict.pop("parameters")
return _dict