From cf335052cf7d3a3ffbd5bb8b742c2e6c598128b3 Mon Sep 17 00:00:00 2001 From: DingZQ Date: Wed, 5 Feb 2025 20:37:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BB=9F=E4=B8=80=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3get=5Fnode=5Fproperties=20get=5Flink=5Fproperties?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=89=80=E6=9C=89=E7=B1=BB=E5=9E=8B=E7=9A=84?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 13 +++++++++++++ tjnetwork.py | 16 ++++++++++++++++ 2 files changed, 29 insertions(+) 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]