134 lines
4.4 KiB
Python
134 lines
4.4 KiB
Python
from fastapi import APIRouter, Request
|
|
from typing import Any, List, Dict, Union
|
|
from app.services.tjnetwork import *
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get("/getpipeschema")
|
|
async def fastapi_get_pipe_schema(network: str) -> dict[str, dict[str, Any]]:
|
|
return get_pipe_schema(network)
|
|
|
|
@router.post("/addpipe/", response_model=None)
|
|
async def fastapi_add_pipe(
|
|
network: str,
|
|
pipe: str,
|
|
node1: str,
|
|
node2: str,
|
|
length: float = 0,
|
|
diameter: float = 0,
|
|
roughness: float = 0,
|
|
minor_loss: float = 0,
|
|
status: str = PIPE_STATUS_OPEN,
|
|
) -> "ChangeSet":
|
|
ps = {
|
|
"id": pipe,
|
|
"node1": node1,
|
|
"node2": node2,
|
|
"length": length,
|
|
"diameter": diameter,
|
|
"roughness": roughness,
|
|
"minor_loss": minor_loss,
|
|
"status": status,
|
|
}
|
|
return add_pipe(network, ChangeSet(ps))
|
|
|
|
@router.post("/deletepipe/", response_model=None)
|
|
async def fastapi_delete_pipe(network: str, pipe: str) -> "ChangeSet":
|
|
ps = {"id": pipe}
|
|
return delete_pipe(network, ChangeSet(ps))
|
|
|
|
@router.get("/getpipenode1/")
|
|
async def fastapi_get_pipe_node1(network: str, pipe: str) -> str | None:
|
|
ps = get_pipe(network, pipe)
|
|
return ps["node1"]
|
|
|
|
@router.get("/getpipenode2/")
|
|
async def fastapi_get_pipe_node2(network: str, pipe: str) -> str | None:
|
|
ps = get_pipe(network, pipe)
|
|
return ps["node2"]
|
|
|
|
@router.get("/getpipelength/")
|
|
async def fastapi_get_pipe_length(network: str, pipe: str) -> float | None:
|
|
ps = get_pipe(network, pipe)
|
|
return ps["length"]
|
|
|
|
@router.get("/getpipediameter/")
|
|
async def fastapi_get_pipe_diameter(network: str, pipe: str) -> float | None:
|
|
ps = get_pipe(network, pipe)
|
|
return ps["diameter"]
|
|
|
|
@router.get("/getpiperoughness/")
|
|
async def fastapi_get_pipe_roughness(network: str, pipe: str) -> float | None:
|
|
ps = get_pipe(network, pipe)
|
|
return ps["roughness"]
|
|
|
|
@router.get("/getpipeminorloss/")
|
|
async def fastapi_get_pipe_minor_loss(network: str, pipe: str) -> float | None:
|
|
ps = get_pipe(network, pipe)
|
|
return ps["minor_loss"]
|
|
|
|
@router.get("/getpipestatus/")
|
|
async def fastapi_get_pipe_status(network: str, pipe: str) -> str | None:
|
|
ps = get_pipe(network, pipe)
|
|
return ps["status"]
|
|
|
|
@router.post("/setpipenode1/", response_model=None)
|
|
async def fastapi_set_pipe_node1(network: str, pipe: str, node1: str) -> "ChangeSet":
|
|
ps = {"id": pipe, "node1": node1}
|
|
return set_pipe(network, ChangeSet(ps))
|
|
|
|
@router.post("/setpipenode2/", response_model=None)
|
|
async def fastapi_set_pipe_node2(network: str, pipe: str, node2: str) -> "ChangeSet":
|
|
ps = {"id": pipe, "node2": node2}
|
|
return set_pipe(network, ChangeSet(ps))
|
|
|
|
@router.post("/setpipelength/", response_model=None)
|
|
async def fastapi_set_pipe_length(network: str, pipe: str, length: float) -> "ChangeSet":
|
|
ps = {"id": pipe, "length": length}
|
|
return set_pipe(network, ChangeSet(ps))
|
|
|
|
@router.post("/setpipediameter/", response_model=None)
|
|
async def fastapi_set_pipe_diameter(
|
|
network: str, pipe: str, diameter: float
|
|
) -> "ChangeSet":
|
|
ps = {"id": pipe, "diameter": diameter}
|
|
return set_pipe(network, ChangeSet(ps))
|
|
|
|
@router.post("/setpiperoughness/", response_model=None)
|
|
async def fastapi_set_pipe_roughness(
|
|
network: str, pipe: str, roughness: float
|
|
) -> "ChangeSet":
|
|
ps = {"id": pipe, "roughness": roughness}
|
|
return set_pipe(network, ChangeSet(ps))
|
|
|
|
@router.post("/setpipeminorloss/", response_model=None)
|
|
async def fastapi_set_pipe_minor_loss(
|
|
network: str, pipe: str, minor_loss: float
|
|
) -> "ChangeSet":
|
|
ps = {"id": pipe, "minor_loss": minor_loss}
|
|
return set_pipe(network, ChangeSet(ps))
|
|
|
|
@router.post("/setpipestatus/", response_model=None)
|
|
async def fastapi_set_pipe_status(network: str, pipe: str, status: str) -> "ChangeSet":
|
|
ps = {"id": pipe, "status": status}
|
|
return set_pipe(network, ChangeSet(ps))
|
|
|
|
@router.get("/getpipeproperties/")
|
|
async def fastapi_get_pipe_properties(network: str, pipe: str) -> dict[str, Any]:
|
|
return get_pipe(network, pipe)
|
|
|
|
@router.get("/getallpipeproperties/")
|
|
async def fastapi_get_all_pipe_properties(network: str) -> list[dict[str, Any]]:
|
|
# 缓存查询结果提高性能
|
|
# global redis_client
|
|
results = get_all_pipes(network)
|
|
return results
|
|
|
|
@router.post("/setpipeproperties/", response_model=None)
|
|
async def fastapi_set_pipe_properties(
|
|
network: str, pipe: str, req: Request
|
|
) -> "ChangeSet":
|
|
props = await req.json()
|
|
ps = {"id": pipe} | props
|
|
return set_pipe(network, ChangeSet(ps))
|