45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
from fastapi import APIRouter, Request
|
|
from typing import Any, List, Dict, Union
|
|
from app.services.tjnetwork import *
|
|
|
|
router = APIRouter()
|
|
|
|
############################################################
|
|
# coord 24.[COORDINATES]
|
|
############################################################
|
|
|
|
@router.get("/getcoordschema/")
|
|
async def fastapi_get_coord_schema(network: str) -> dict[str, dict[str, Any]]:
|
|
return get_coord_schema(network)
|
|
|
|
@router.get("/getcoord/")
|
|
async def fastapi_get_coord(network: str, node: str) -> dict[str, Any]:
|
|
return get_coord(network, node)
|
|
|
|
# example: set_coord(p, ChangeSet({'node': 'j1', 'x': 1.0, 'y': 2.0}))
|
|
@router.post("/setcoord/", response_model=None)
|
|
async def fastapi_set_coord(network: str, req: Request) -> ChangeSet:
|
|
props = await req.json()
|
|
return set_coord(network, ChangeSet(props))
|
|
|
|
# Additional geometry queries found in main.py logic (implicit or explicit)
|
|
@router.get("/getnetworkinextent/")
|
|
async def fastapi_get_network_in_extent(
|
|
network: str, x1: float, y1: float, x2: float, y2: float
|
|
) -> dict[str, Any]:
|
|
return get_network_in_extent(network, x1, y1, x2, y2)
|
|
|
|
@router.get("/getmajornodecoords/")
|
|
async def fastapi_get_majornode_coords(network: str) -> list[Any]:
|
|
return get_majornode_coords(network)
|
|
|
|
@router.get("/getallcoords/")
|
|
async def fastapi_get_all_coords(network: str) -> list[Any]:
|
|
return get_all_coords(network)
|
|
|
|
@router.get("/projectcoordinates/")
|
|
async def fastapi_project_coordinates(
|
|
network: str, from_epsg: int, to_epsg: int
|
|
) -> ChangeSet:
|
|
return project_coordinates(network, from_epsg, to_epsg)
|