Add more fastapi API

This commit is contained in:
DingZQ
2022-09-17 14:01:44 +08:00
parent f4fa121456
commit 6f1d836df1

171
main.py
View File

@@ -28,19 +28,6 @@ if not os.path.exists(tmpDir):
app = FastAPI()
# undo/redo
@app.post("/undo/")
async def fastapi_undo(network: str):
undo(network)
return True
@app.post("/redo/")
async def fastapi_redo(network: str):
redo(network)
return True
# project operations
@app.get("/haveproject/")
async def fastapi_have_project(network: str):
@@ -79,6 +66,19 @@ async def fastapi_copy_project(source: str, target: str):
copy_project(source, target)
return True
# undo/redo
@app.post("/undo/")
async def fastapi_undo(network: str):
undo(network)
return True
@app.post("/redo/")
async def fastapi_redo(network: str):
redo(network)
return True
# node
@app.get("/getnodes/")
async def fastapi_get_nodes(network: str) -> list[str]:
@@ -100,7 +100,44 @@ async def fastapi_is_reservoir(network: str, node: str) -> bool:
async def fastapi_is_tank(network: str, node: str) -> bool:
return is_tank(network, node)
# link
@app.get("/getnodes/")
async def fastapi_get_links(network: str) -> list[str]:
return get_links(network)
@app.get("/islink/")
def fastapi_is_link(network: str, link: str) -> bool:
return is_link(network, link)
@app.get("/ispipe/")
def fastapi_is_pipe(network: str, link: str) -> bool:
return is_pipe(network, link)
@app.get("/ispump/")
def fastapi_is_pump(network: str, link: str) -> bool:
return is_pump(network, link)
@app.get("/isvalve/")
def is_valve(network: str, link: str) -> bool:
return is_valve(network, link)
# curve
@app.get("/getcurves/")
def fastapi_get_curves(network: str) -> list[str]:
return get_curves(network)
@app.get("/iscurve/")
def fastapi_is_curve(network: str, curve: str) -> bool:
return is_curve(network, curve)
# parttern
@app.get("/getpatterns/")
def fastapi_get_patterns(network: str) -> list[str]:
return get_patterns(network)
@app.get("/ispattern/")
def fastapi_is_curve(network: str, pattern: str) -> bool:
return is_pattern(network, pattern)
# junction
@@ -120,6 +157,14 @@ async def fastapi_get_junction_elevation(network: str, junction: str) -> float:
async def fastapi_get_junction_coord(network: str, junction: str) -> dict[str, float]:
return get_junction_coord(network, junction)
@app.get("/getjunctiondemand/")
async def fastapi_get_junction_demand(network: str, junction: str) -> float:
return get_junction_demand(network, junction)
@app.get("/getjunctionpattern/")
async def fastapi_get_junction_pattern(network: str, junction: str) -> str:
return get_junction_pattern(network, junction)
@app.post("/setjunctionelevation/")
async def fastapi_set_junction_elevation(network: str, junction: str, elevation: float) -> ChangeSet:
return set_junction_elevation(network, junction, elevation)
@@ -128,100 +173,16 @@ async def fastapi_set_junction_elevation(network: str, junction: str, elevation:
async def fastapi_set_junction_coord(network: str, junction: str, x: float, y: float) -> ChangeSet:
return set_junction_coord(network, junction, x, y)
@app.post("/setjunctiondemand/")
async def fastapi_set_junction_demand(network: str, junction: str, demand: float) -> ChangeSet:
return set_junction_demand(network, junction, demand)
@app.post("/setjunctionpattern/")
async def fastapi_set_junction_pattern(network: str, junction: str, pattern: str) -> ChangeSet:
return set_junction_pattern(network, junction, pattern)
@app.post("/addnode/")
async def fastapi_add_node(network: str, node: str):
idx = add_node(network, node, JUNCTION)
print(idx)
print("add node")
count = get_count(network, NODE_COUNT)
print(count.value)
return idx
@app.post("/addnodewithcoord/")
async def fastapi_add_node_with_coord(network: str, node: str, x: float, y: float):
idx = add_node(network, node, JUNCTION)
print(idx)
count = get_count(network, NODE_COUNT)
print(count.value)
set_node_coord(network, node, x, y)
return idx
@app.post("/deletenode/")
async def fastapi_delete_node(network: str, node: str):
delete_node(network, node)
return True
@app.get("/countnode/")
async def fastapi_count_node(network: str):
count = get_count(network, NODE_COUNT)
print(count)
return count.value
@app.get("/getnodecoord/")
async def fastapi_get_node_coord(network: str, node: str):
value = get_node_coord(network, node).value
return JSONResponse(
status_code = status.HTTP_200_OK,
content =
{
'x': value.x,
'y': value.y
}
)
async def fastapi_set_node_coord(network: str, node: str, x: float, y: float):
set_node_coord(network, node, x, y)
return True
@app.get("/getlinks/")
async def fastapi_get_links(network: str):
linkCount = get_count(network, LINK_COUNT)
links = []
for i in range(linkCount.value):
link_id = get_link_id(network, i + 1)
if link_id.error_code == 0 and len(link_id.value) > 0:
links.append(link_id.value)
return links
@app.get("/getlinknodes/")
async def fastapi_get_link_nodes(network: str, link: str):
result = get_link_nodes(network, link)
return JSONResponse(
status_code = status.HTTP_200_OK,
content={
'start': str(result.value.from_node, 'utf-8'),
'end': str(result.value.to_node, 'utf-8')
})
@app.post("/addlink/")
async def fastapi_add_link(network: str, link: str, fromNode: str, toNode: str):
idx = add_link(network, link, PIPE, fromNode, toNode)
print(idx)
return idx
@app.post("/deletelink/")
async def fastapi_delete_link(network: str, link: str):
delete_link(network, link)
return True
@app.get("/countlink/")
async def fastapi_count_link(network: str):
count = get_count(network, LINK_COUNT)
print(count)
return count.value
# inp file
@app.post("/uploadinp/", status_code=status.HTTP_200_OK)
async def upload_inp(file: bytes = File(), name: str = None):
filePath = inpDir + str(name)