61 lines
2.1 KiB
Python
61 lines
2.1 KiB
Python
from fastapi import APIRouter, Request
|
|
from typing import Any, List, Dict, Union
|
|
from app.services.tjnetwork import *
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get("/getpumpschema")
|
|
async def fastapi_get_pump_schema(network: str) -> dict[str, dict[str, Any]]:
|
|
return get_pump_schema(network)
|
|
|
|
@router.post("/addpump/", response_model=None)
|
|
async def fastapi_add_pump(
|
|
network: str, pump: str, node1: str, node2: str, power: float = 0.0
|
|
) -> "ChangeSet":
|
|
ps = {"id": pump, "node1": node1, "node2": node2, "power": power}
|
|
return add_pump(network, ChangeSet(ps))
|
|
|
|
@router.post("/deletepump/", response_model=None)
|
|
async def fastapi_delete_pump(network: str, pump: str) -> "ChangeSet":
|
|
ps = {"id": pump}
|
|
return delete_pump(network, ChangeSet(ps))
|
|
|
|
@router.get("/getpumpnode1/")
|
|
async def fastapi_get_pump_node1(network: str, pump: str) -> str | None:
|
|
ps = get_pump(network, pump)
|
|
return ps["node1"]
|
|
|
|
@router.get("/getpumpnode2/")
|
|
async def fastapi_get_pump_node2(network: str, pump: str) -> str | None:
|
|
ps = get_pump(network, pump)
|
|
return ps["node2"]
|
|
|
|
@router.post("/setpumpnode1/", response_model=None)
|
|
async def fastapi_set_pump_node1(network: str, pump: str, node1: str) -> "ChangeSet":
|
|
ps = {"id": pump, "node1": node1}
|
|
return set_pump(network, ChangeSet(ps))
|
|
|
|
@router.post("/setpumpnode2/", response_model=None)
|
|
async def fastapi_set_pump_node2(network: str, pump: str, node2: str) -> "ChangeSet":
|
|
ps = {"id": pump, "node2": node2}
|
|
return set_pump(network, ChangeSet(ps))
|
|
|
|
@router.get("/getpumpproperties/")
|
|
async def fastapi_get_pump_properties(network: str, pump: str) -> dict[str, Any]:
|
|
return get_pump(network, pump)
|
|
|
|
@router.get("/getallpumpproperties/")
|
|
async def fastapi_get_all_pump_properties(network: str) -> list[dict[str, Any]]:
|
|
# 缓存查询结果提高性能
|
|
# global redis_client
|
|
results = get_all_pumps(network)
|
|
return results
|
|
|
|
@router.post("/setpumpproperties/", response_model=None)
|
|
async def fastapi_set_pump_properties(
|
|
network: str, pump: str, req: Request
|
|
) -> "ChangeSet":
|
|
props = await req.json()
|
|
ps = {"id": pump} | props
|
|
return set_pump(network, ChangeSet(ps))
|