96 lines
3.4 KiB
Python
96 lines
3.4 KiB
Python
from fastapi import APIRouter, Request, Query, Path, Body
|
|
from typing import Any, List, Dict, Union
|
|
from app.services.tjnetwork import (
|
|
Any,
|
|
ChangeSet,
|
|
add_curve,
|
|
delete_curve,
|
|
get_curve,
|
|
get_curve_schema,
|
|
get_curves,
|
|
is_curve,
|
|
set_curve,
|
|
)
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get("/getcurveschema", summary="获取曲线架构", description="获取网络中曲线对象的架构定义")
|
|
async def fastapi_get_curve_schema(network: str = Query(..., description="管网名称(或数据库名称)")) -> dict[str, dict[str, Any]]:
|
|
"""获取曲线架构。
|
|
|
|
返回指定网络中曲线对象的属性架构定义。
|
|
"""
|
|
return get_curve_schema(network)
|
|
|
|
@router.post("/addcurve/", response_model=None, summary="添加曲线", description="在网络中添加一条新的曲线")
|
|
async def fastapi_add_curve(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
curve: str = Query(..., description="曲线ID"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""添加曲线。
|
|
|
|
在指定网络中创建一条新的曲线,并设置其初始属性。
|
|
"""
|
|
props = await req.json()
|
|
ps = {
|
|
"id": curve,
|
|
} | props
|
|
return add_curve(network, ChangeSet(ps))
|
|
|
|
@router.post("/deletecurve/", response_model=None, summary="删除曲线", description="从网络中删除指定的曲线")
|
|
async def fastapi_delete_curve(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
curve: str = Query(..., description="曲线ID")
|
|
) -> ChangeSet:
|
|
"""删除曲线。
|
|
|
|
从指定网络中删除指定的曲线及其相关数据。
|
|
"""
|
|
ps = {"id": curve}
|
|
return delete_curve(network, ChangeSet(ps))
|
|
|
|
@router.get("/getcurveproperties/", summary="获取曲线属性", description="获取指定曲线的属性信息")
|
|
async def fastapi_get_curve_properties(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
curve: str = Query(..., description="曲线ID")
|
|
) -> dict[str, Any]:
|
|
"""获取曲线属性。
|
|
|
|
返回指定曲线的所有属性信息。
|
|
"""
|
|
return get_curve(network, curve)
|
|
|
|
@router.post("/setcurveproperties/", response_model=None, summary="设置曲线属性", description="更新指定曲线的属性")
|
|
async def fastapi_set_curve_properties(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
curve: str = Query(..., description="曲线ID"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""设置曲线属性。
|
|
|
|
更新指定曲线的属性值。
|
|
"""
|
|
props = await req.json()
|
|
ps = {"id": curve} | props
|
|
return set_curve(network, ChangeSet(ps))
|
|
|
|
@router.get("/getcurves/", summary="获取所有曲线", description="获取网络中的所有曲线列表")
|
|
async def fastapi_get_curves(network: str = Query(..., description="管网名称(或数据库名称)")) -> list[str]:
|
|
"""获取所有曲线。
|
|
|
|
返回指定网络中的所有曲线ID列表。
|
|
"""
|
|
return get_curves(network)
|
|
|
|
@router.get("/iscurve/", summary="检查曲线存在性", description="检查指定的曲线是否存在")
|
|
async def fastapi_is_curve(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
curve: str = Query(..., description="曲线ID")
|
|
) -> bool:
|
|
"""检查曲线是否存在。
|
|
|
|
判断指定的曲线是否在网络中存在。
|
|
"""
|
|
return is_curve(network, curve)
|