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)