246 lines
9.1 KiB
Python
246 lines
9.1 KiB
Python
from fastapi import APIRouter, Request
|
|
from typing import Any, List, Dict, Union
|
|
from app.services.tjnetwork import *
|
|
|
|
router = APIRouter()
|
|
|
|
############################################################
|
|
# region 32
|
|
############################################################
|
|
|
|
@router.get("/calculateregion/")
|
|
async def fastapi_calculate_region(network: str, time_index: int) -> dict[str, Any]:
|
|
return calculate_region(network, time_index)
|
|
|
|
@router.get("/getregionschema/")
|
|
async def fastapi_get_region_schema(network: str) -> dict[str, dict[str, Any]]:
|
|
return get_region_schema(network)
|
|
|
|
@router.get("/getregion/")
|
|
async def fastapi_get_region(network: str, id: str) -> dict[str, Any]:
|
|
return get_region(network, id)
|
|
|
|
@router.post("/setregion/", response_model=None)
|
|
async def fastapi_set_region(network: str, req: Request) -> "ChangeSet":
|
|
props = await req.json()
|
|
return set_region(network, ChangeSet(props))
|
|
|
|
@router.post("/addregion/", response_model=None)
|
|
async def fastapi_add_region(network: str, req: Request) -> "ChangeSet":
|
|
props = await req.json()
|
|
return add_region(network, ChangeSet(props))
|
|
|
|
@router.post("/deleteregion/", response_model=None)
|
|
async def fastapi_delete_region(network: str, req: Request) -> "ChangeSet":
|
|
props = await req.json()
|
|
return delete_region(network, ChangeSet(props))
|
|
|
|
@router.get("/getallregions/")
|
|
async def fastapi_get_all_regions(network: str) -> list[dict[str, Any]]:
|
|
return get_all_regions(network)
|
|
|
|
@router.post("/generateregion/", response_model=None)
|
|
async def fastapi_generate_region(
|
|
network: str, inflate_delta: float
|
|
) -> "ChangeSet":
|
|
return generate_region(network, inflate_delta)
|
|
|
|
|
|
############################################################
|
|
# district_metering_area 33
|
|
############################################################
|
|
|
|
@router.get("/calculatedistrictmeteringarea/")
|
|
async def fastapi_calculate_district_metering_area(
|
|
network: str, req: Request
|
|
) -> list[list[str]]:
|
|
props = await req.json()
|
|
nodes = props["nodes"]
|
|
part_count = props["part_count"]
|
|
part_type = props["part_type"]
|
|
return calculate_district_metering_area(
|
|
network, nodes, part_count, part_type
|
|
)
|
|
|
|
@router.get("/calculatedistrictmeteringareaforregion/")
|
|
async def fastapi_calculate_district_metering_area_for_region(
|
|
network: str, req: Request
|
|
) -> list[list[str]]:
|
|
props = await req.json()
|
|
region = props["region"]
|
|
part_count = props["part_count"]
|
|
part_type = props["part_type"]
|
|
return calculate_district_metering_area_for_region(
|
|
network, region, part_count, part_type
|
|
)
|
|
|
|
@router.get("/calculatedistrictmeteringareafornetwork/")
|
|
async def fastapi_calculate_district_metering_area_for_network(
|
|
network: str, req: Request
|
|
) -> list[list[str]]:
|
|
props = await req.json()
|
|
part_count = props["part_count"]
|
|
part_type = props["part_type"]
|
|
return calculate_district_metering_area_for_network(network, part_count, part_type)
|
|
|
|
@router.get("/getdistrictmeteringareaschema/")
|
|
async def fastapi_get_district_metering_area_schema(
|
|
network: str,
|
|
) -> dict[str, dict[str, Any]]:
|
|
return get_district_metering_area_schema(network)
|
|
|
|
@router.get("/getdistrictmeteringarea/")
|
|
async def fastapi_get_district_metering_area(network: str, id: str) -> dict[str, Any]:
|
|
return get_district_metering_area(network, id)
|
|
|
|
@router.post("/setdistrictmeteringarea/", response_model=None)
|
|
async def fastapi_set_district_metering_area(network: str, req: Request) -> "ChangeSet":
|
|
props = await req.json()
|
|
return set_district_metering_area(network, ChangeSet(props))
|
|
|
|
@router.post("/adddistrictmeteringarea/", response_model=None)
|
|
async def fastapi_add_district_metering_area(network: str, req: Request) -> "ChangeSet":
|
|
props = await req.json()
|
|
# boundary should be [(x,y), (x,y)]
|
|
boundary = props.get("boundary", [])
|
|
newBoundary = []
|
|
for pt in boundary:
|
|
if len(pt) >= 2:
|
|
newBoundary.append((pt[0], pt[1]))
|
|
props["boundary"] = newBoundary
|
|
return add_district_metering_area(network, ChangeSet(props))
|
|
|
|
@router.post("/deletedistrictmeteringarea/", response_model=None)
|
|
async def fastapi_delete_district_metering_area(
|
|
network: str, req: Request
|
|
) -> "ChangeSet":
|
|
props = await req.json()
|
|
return delete_district_metering_area(network, ChangeSet(props))
|
|
|
|
@router.get("/getalldistrictmeteringareaids/")
|
|
async def fastapi_get_all_district_metering_area_ids(network: str) -> list[str]:
|
|
return get_all_district_metering_area_ids(network)
|
|
|
|
@router.get("/getalldistrictmeteringareas/")
|
|
async def getalldistrictmeteringareas(network: str) -> list[dict[str, Any]]:
|
|
return get_all_district_metering_areas(network)
|
|
|
|
@router.post("/generatedistrictmeteringarea/", response_model=None)
|
|
async def fastapi_generate_district_metering_area(
|
|
network: str, part_count: int, part_type: int, inflate_delta: float
|
|
) -> "ChangeSet":
|
|
return generate_district_metering_area(
|
|
network, part_count, part_type, inflate_delta
|
|
)
|
|
|
|
@router.post("/generatesubdistrictmeteringarea/", response_model=None)
|
|
async def fastapi_generate_sub_district_metering_area(
|
|
network: str, dma: str, part_count: int, part_type: int, inflate_delta: float
|
|
) -> "ChangeSet":
|
|
return generate_sub_district_metering_area(
|
|
network, dma, part_count, part_type, inflate_delta
|
|
)
|
|
|
|
|
|
############################################################
|
|
# service_area 34
|
|
############################################################
|
|
|
|
@router.get("/calculateservicearea/")
|
|
async def fastapi_calculate_service_area(
|
|
network: str, time_index: int
|
|
) -> dict[str, Any]:
|
|
return calculate_service_area(network, time_index)
|
|
|
|
@router.get("/getserviceareaschema/")
|
|
async def fastapi_get_service_area_schema(network: str) -> dict[str, dict[str, Any]]:
|
|
return get_service_area_schema(network)
|
|
|
|
@router.get("/getservicearea/")
|
|
async def fastapi_get_service_area(network: str, id: str) -> dict[str, Any]:
|
|
return get_service_area(network, id)
|
|
|
|
@router.post("/setservicearea/", response_model=None)
|
|
async def fastapi_set_service_area(network: str, req: Request) -> "ChangeSet":
|
|
props = await req.json()
|
|
return set_service_area(network, ChangeSet(props))
|
|
|
|
@router.post("/addservicearea/", response_model=None)
|
|
async def fastapi_add_service_area(network: str, req: Request) -> "ChangeSet":
|
|
props = await req.json()
|
|
return add_service_area(network, ChangeSet(props))
|
|
|
|
@router.post("/deleteservicearea/", response_model=None)
|
|
async def fastapi_delete_service_area(network: str, req: Request) -> "ChangeSet":
|
|
props = await req.json()
|
|
return delete_service_area(network, ChangeSet(props))
|
|
|
|
@router.get("/getallserviceareas/")
|
|
async def fastapi_get_all_service_areas(network: str) -> list[dict[str, Any]]:
|
|
return get_all_service_areas(network)
|
|
|
|
@router.post("/generateservicearea/", response_model=None)
|
|
async def fastapi_generate_service_area(
|
|
network: str, inflate_delta: float
|
|
) -> "ChangeSet":
|
|
return generate_service_area(network, inflate_delta)
|
|
|
|
|
|
############################################################
|
|
# virtual_district 35
|
|
############################################################
|
|
|
|
@router.get("/calculatevirtualdistrict/")
|
|
async def fastapi_calculate_virtual_district(
|
|
network: str, centers: list[str]
|
|
) -> dict[str, list[Any]]:
|
|
return calculate_virtual_district(network, centers)
|
|
|
|
@router.get("/getvirtualdistrictschema/")
|
|
async def fastapi_get_virtual_district_schema(
|
|
network: str,
|
|
) -> dict[str, dict[str, Any]]:
|
|
return get_virtual_district_schema(network)
|
|
|
|
@router.get("/getvirtualdistrict/")
|
|
async def fastapi_get_virtual_district(network: str, id: str) -> dict[str, Any]:
|
|
return get_virtual_district(network, id)
|
|
|
|
@router.post("/setvirtualdistrict/", response_model=None)
|
|
async def fastapi_set_virtual_district(network: str, req: Request) -> "ChangeSet":
|
|
props = await req.json()
|
|
return set_virtual_district(network, ChangeSet(props))
|
|
|
|
@router.post("/addvirtualdistrict/", response_model=None)
|
|
async def fastapi_add_virtual_district(network: str, req: Request) -> "ChangeSet":
|
|
props = await req.json()
|
|
return add_virtual_district(network, ChangeSet(props))
|
|
|
|
@router.post("/deletevirtualdistrict/", response_model=None)
|
|
async def fastapi_delete_virtual_district(network: str, req: Request) -> "ChangeSet":
|
|
props = await req.json()
|
|
return delete_virtual_district(network, ChangeSet(props))
|
|
|
|
@router.get("/getallvirtualdistrict/")
|
|
async def fastapi_get_all_virtual_district(network: str) -> list[dict[str, Any]]:
|
|
return get_all_virtual_districts(network)
|
|
|
|
@router.post("/generatevirtualdistrict/", response_model=None)
|
|
async def fastapi_generate_virtual_district(
|
|
network: str, inflate_delta: float, req: Request
|
|
) -> "ChangeSet":
|
|
props = await req.json()
|
|
return generate_virtual_district(network, props["centers"], inflate_delta)
|
|
|
|
@router.get("/calculatedistrictmeteringareafornodes/")
|
|
async def fastapi_calculate_district_metering_area_for_nodes(
|
|
network: str, req: Request
|
|
) -> list[list[str]]:
|
|
props = await req.json()
|
|
nodes = props["nodes"]
|
|
part_count = props["part_count"]
|
|
part_type = props["part_type"]
|
|
return calculate_district_metering_area_for_nodes(
|
|
network, nodes, part_count, part_type
|
|
)
|