diff --git a/main.py b/main.py index 26de5ee..d58dd1a 100644 --- a/main.py +++ b/main.py @@ -423,6 +423,19 @@ async def fastapi_get_patterns(network: str) -> list[str]: def get_node_links(network: str, node: str) -> list[str]: return get_node_links(network, node) +############################################################ +# DingZQ, 2025-02-05 +# 用统一的接口来获取 Node & Link properties, Node和Link的Id可以一样,不能进一步统一成获取Element 的 properties +# Node & Link properties +############################################################ +@app.get('/getnodeproperties/') +async def fast_get_node_properties(network: str, node: str) -> dict[str, Any]: + return get_node_properties(network, node) + +@app.get('/getlinkproperties/') +async def fast_get_link_properties(network: str, link: str) -> dict[str, Any]: + return get_link_properties(network, link) + ############################################################ # title 1.[TITLE] ############################################################ diff --git a/tjnetwork.py b/tjnetwork.py index a931f19..c7c777d 100644 --- a/tjnetwork.py +++ b/tjnetwork.py @@ -392,6 +392,22 @@ def get_patterns(name: str) -> list[str]: def get_node_links(name: str, node_id: str) -> list[str]: return api.get_node_links(name, node_id) +# DingZQ, 2025-02-05 +def get_node_properties(name: str, node_id: str) -> dict[str, Any]: + if api.is_junction(name, node_id): + return api.get_junction(name, node_id) + elif api.is_reservoir(name, node_id): + return api.get_reservoir(name, node_id) + elif api.is_tank(name, node_id): + return api.get_tank(name, node_id) + +def get_link_properties(name: str, link_id: str) -> dict[str, Any]: + if api.is_pipe(name, link_id): + return api.get_pipe(name, link_id) + elif api.is_pump(name, link_id): + return api.get_pump(name, link_id) + elif api.is_valve(name, link_id): + return api.get_valve(name, link_id) ############################################################ # title 1.[TITLE]