298 lines
12 KiB
Python
298 lines
12 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_mixing,
|
|
add_source,
|
|
api,
|
|
delete_mixing,
|
|
delete_source,
|
|
get_emitter,
|
|
get_emitter_schema,
|
|
get_mixing,
|
|
get_mixing_schema,
|
|
get_pipe_reaction,
|
|
get_pipe_reaction_schema,
|
|
get_quality,
|
|
get_quality_schema,
|
|
get_reaction,
|
|
get_reaction_schema,
|
|
get_source,
|
|
get_source_schema,
|
|
get_tank_reaction,
|
|
get_tank_reaction_schema,
|
|
set_emitter,
|
|
set_pipe_reaction,
|
|
set_quality,
|
|
set_reaction,
|
|
set_source,
|
|
set_tank_reaction,
|
|
)
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get("/getqualityschema/", summary="获取水质架构", description="获取网络中水质对象的架构定义")
|
|
async def fastapi_get_quality_schema(network: str = Query(..., description="管网名称(或数据库名称)")) -> dict[str, dict[str, Any]]:
|
|
"""获取水质架构。
|
|
|
|
返回指定网络中水质对象的属性架构定义。
|
|
"""
|
|
return get_quality_schema(network)
|
|
|
|
@router.get("/getqualityproperties/", summary="获取水质属性", description="获取指定节点的水质属性信息")
|
|
async def fastapi_get_quality_properties(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
node: str = Query(..., description="节点ID")
|
|
) -> dict[str, Any]:
|
|
"""获取水质属性。
|
|
|
|
返回指定节点的水质属性信息。
|
|
"""
|
|
return get_quality(network, node)
|
|
|
|
@router.post("/setqualityproperties/", response_model=None, summary="设置水质属性", description="更新指定节点的水质属性")
|
|
async def fastapi_set_quality_properties(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""设置水质属性。
|
|
|
|
更新指定节点的水质属性值。
|
|
"""
|
|
props = await req.json()
|
|
return set_quality(network, ChangeSet(props))
|
|
|
|
@router.get("/getemitterschema", summary="获取发射器架构", description="获取网络中发射器对象的架构定义")
|
|
async def fastapi_get_emitter_schema(network: str = Query(..., description="管网名称(或数据库名称)")) -> dict[str, dict[str, Any]]:
|
|
"""获取发射器架构。
|
|
|
|
返回指定网络中发射器对象的属性架构定义。
|
|
"""
|
|
return get_emitter_schema(network)
|
|
|
|
@router.get("/getemitterproperties/", summary="获取发射器属性", description="获取指定连接点的发射器属性信息")
|
|
async def fastapi_get_emitter_properties(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
junction: str = Query(..., description="连接点ID")
|
|
) -> dict[str, Any]:
|
|
"""获取发射器属性。
|
|
|
|
返回指定连接点的发射器属性信息。
|
|
"""
|
|
return get_emitter(network, junction)
|
|
|
|
@router.post("/setemitterproperties/", response_model=None, summary="设置发射器属性", description="更新指定连接点的发射器属性")
|
|
async def fastapi_set_emitter_properties(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
junction: str = Query(..., description="连接点ID"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""设置发射器属性。
|
|
|
|
更新指定连接点的发射器属性值。
|
|
"""
|
|
props = await req.json()
|
|
ps = {"junction": junction} | props
|
|
return set_emitter(network, ChangeSet(ps))
|
|
|
|
@router.get("/getsourcechema/", summary="获取水源架构", description="获取网络中水源对象的架构定义")
|
|
async def fastapi_get_source_schema(network: str = Query(..., description="管网名称(或数据库名称)")) -> dict[str, dict[str, Any]]:
|
|
"""获取水源架构。
|
|
|
|
返回指定网络中水源对象的属性架构定义。
|
|
"""
|
|
return get_source_schema(network)
|
|
|
|
@router.get("/getsource/", summary="获取水源属性", description="获取指定节点的水源属性信息")
|
|
async def fastapi_get_source(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
node: str = Query(..., description="节点ID")
|
|
) -> dict[str, Any]:
|
|
"""获取水源属性。
|
|
|
|
返回指定节点的水源属性信息。
|
|
"""
|
|
return get_source(network, node)
|
|
|
|
@router.post("/setsource/", response_model=None, summary="设置水源属性", description="更新指定节点的水源属性")
|
|
async def fastapi_set_source(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""设置水源属性。
|
|
|
|
更新指定节点的水源属性值。
|
|
"""
|
|
props = await req.json()
|
|
return set_source(network, ChangeSet(props))
|
|
|
|
@router.post("/addsource/", response_model=None, summary="添加水源", description="在网络中添加一个新的水源")
|
|
async def fastapi_add_source(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""添加水源。
|
|
|
|
在指定网络中创建一个新的水源,并设置其初始属性。
|
|
"""
|
|
props = await req.json()
|
|
return add_source(network, ChangeSet(props))
|
|
|
|
@router.post("/deletesource/", response_model=None, summary="删除水源", description="从网络中删除指定节点的水源")
|
|
async def fastapi_delete_source(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
node: str = Query(..., description="节点ID")
|
|
) -> ChangeSet:
|
|
"""删除水源。
|
|
|
|
从指定网络中删除指定节点的水源。
|
|
"""
|
|
props = {"node": node}
|
|
return delete_source(network, ChangeSet(props))
|
|
|
|
@router.get("/getreactionschema/", summary="获取反应架构", description="获取网络中反应对象的架构定义")
|
|
async def fastapi_get_reaction_schema(network: str = Query(..., description="管网名称(或数据库名称)")) -> dict[str, dict[str, Any]]:
|
|
"""获取反应架构。
|
|
|
|
返回指定网络中反应对象的属性架构定义。
|
|
"""
|
|
return get_reaction_schema(network)
|
|
|
|
@router.get("/getreaction/", summary="获取反应属性", description="获取指定网络中的反应属性信息")
|
|
async def fastapi_get_reaction(network: str = Query(..., description="管网名称(或数据库名称)")) -> dict[str, Any]:
|
|
"""获取反应属性。
|
|
|
|
返回指定网络中的反应属性信息。
|
|
"""
|
|
return get_reaction(network)
|
|
|
|
@router.post("/setreaction/", response_model=None, summary="设置反应属性", description="更新指定网络中的反应属性")
|
|
async def fastapi_set_reaction(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""设置反应属性。
|
|
|
|
更新指定网络中的反应属性值。
|
|
"""
|
|
props = await req.json()
|
|
return set_reaction(network, ChangeSet(props))
|
|
|
|
@router.get("/getpipereactionschema/", summary="获取管道反应架构", description="获取网络中管道反应对象的架构定义")
|
|
async def fastapi_get_pipe_reaction_schema(network: str = Query(..., description="管网名称(或数据库名称)")) -> dict[str, dict[str, Any]]:
|
|
"""获取管道反应架构。
|
|
|
|
返回指定网络中管道反应对象的属性架构定义。
|
|
"""
|
|
return get_pipe_reaction_schema(network)
|
|
|
|
@router.get("/getpipereaction/", summary="获取管道反应属性", description="获取指定管道的反应属性信息")
|
|
async def fastapi_get_pipe_reaction(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
pipe: str = Query(..., description="管道ID")
|
|
) -> dict[str, Any]:
|
|
"""获取管道反应属性。
|
|
|
|
返回指定管道的反应属性信息。
|
|
"""
|
|
return get_pipe_reaction(network, pipe)
|
|
|
|
@router.post("/setpipereaction/", response_model=None, summary="设置管道反应属性", description="更新指定管道的反应属性")
|
|
async def fastapi_set_pipe_reaction(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""设置管道反应属性。
|
|
|
|
更新指定管道的反应属性值。
|
|
"""
|
|
props = await req.json()
|
|
return set_pipe_reaction(network, ChangeSet(props))
|
|
|
|
@router.get("/gettankreactionschema/", summary="获取水池反应架构", description="获取网络中水池反应对象的架构定义")
|
|
async def fastapi_get_tank_reaction_schema(network: str = Query(..., description="管网名称(或数据库名称)")) -> dict[str, dict[str, Any]]:
|
|
"""获取水池反应架构。
|
|
|
|
返回指定网络中水池反应对象的属性架构定义。
|
|
"""
|
|
return get_tank_reaction_schema(network)
|
|
|
|
@router.get("/gettankreaction/", summary="获取水池反应属性", description="获取指定水池的反应属性信息")
|
|
async def fastapi_get_tank_reaction(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
tank: str = Query(..., description="水池ID")
|
|
) -> dict[str, Any]:
|
|
"""获取水池反应属性。
|
|
|
|
返回指定水池的反应属性信息。
|
|
"""
|
|
return get_tank_reaction(network, tank)
|
|
|
|
@router.post("/settankreaction/", response_model=None, summary="设置水池反应属性", description="更新指定水池的反应属性")
|
|
async def fastapi_set_tank_reaction(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""设置水池反应属性。
|
|
|
|
更新指定水池的反应属性值。
|
|
"""
|
|
props = await req.json()
|
|
return set_tank_reaction(network, ChangeSet(props))
|
|
|
|
@router.get("/getmixingschema/", summary="获取混合架构", description="获取网络中混合对象的架构定义")
|
|
async def fastapi_get_mixing_schema(network: str = Query(..., description="管网名称(或数据库名称)")) -> dict[str, dict[str, Any]]:
|
|
"""获取混合架构。
|
|
|
|
返回指定网络中混合对象的属性架构定义。
|
|
"""
|
|
return get_mixing_schema(network)
|
|
|
|
@router.get("/getmixing/", summary="获取混合属性", description="获取指定水池的混合属性信息")
|
|
async def fastapi_get_mixing(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
tank: str = Query(..., description="水池ID")
|
|
) -> dict[str, Any]:
|
|
"""获取混合属性。
|
|
|
|
返回指定水池的混合属性信息。
|
|
"""
|
|
return get_mixing(network, tank)
|
|
|
|
@router.post("/setmixing/", response_model=None, summary="设置混合属性", description="更新指定水池的混合属性")
|
|
async def fastapi_set_mixing(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""设置混合属性。
|
|
|
|
更新指定水池的混合属性值。
|
|
"""
|
|
props = await req.json()
|
|
return api.set_mixing(network, ChangeSet(props))
|
|
|
|
@router.post("/addmixing/", response_model=None, summary="添加混合", description="在网络中添加一个新的混合")
|
|
async def fastapi_add_mixing(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""添加混合。
|
|
|
|
在指定网络中创建一个新的混合,并设置其初始属性。
|
|
"""
|
|
props = await req.json()
|
|
return add_mixing(network, ChangeSet(props))
|
|
|
|
@router.post("/deletemixing/", response_model=None, summary="删除混合", description="从网络中删除指定的混合")
|
|
async def fastapi_delete_mixing(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""删除混合。
|
|
|
|
从指定网络中删除指定的混合及其相关数据。
|
|
"""
|
|
props = await req.json()
|
|
return delete_mixing(network, ChangeSet(props))
|