105 lines
2.8 KiB
Python
105 lines
2.8 KiB
Python
from typing import List, Any
|
|
from fastapi import APIRouter, Request, HTTPException, Query, Body
|
|
from app.services.tjnetwork import (
|
|
ChangeSet,
|
|
get_all_extension_data_keys,
|
|
get_all_extension_data,
|
|
get_extension_data,
|
|
set_extension_data
|
|
)
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get(
|
|
"/getallextensiondatakeys/",
|
|
summary="获取所有扩展数据键",
|
|
description="获取指定网络的所有扩展数据的键列表"
|
|
)
|
|
async def get_all_extension_data_keys_endpoint(
|
|
network: str = Query(..., description="管网名称(或数据库名称)")
|
|
) -> list[str]:
|
|
"""
|
|
获取所有扩展数据键。
|
|
|
|
返回指定网络中所有可用的扩展数据键。
|
|
|
|
Args:
|
|
network: 管网名称(或数据库名称)
|
|
|
|
Returns:
|
|
扩展数据键列表
|
|
"""
|
|
return get_all_extension_data_keys(network)
|
|
|
|
@router.get(
|
|
"/getallextensiondata/",
|
|
summary="获取所有扩展数据",
|
|
description="获取指定网络的所有扩展数据"
|
|
)
|
|
async def get_all_extension_data_endpoint(
|
|
network: str = Query(..., description="管网名称(或数据库名称)")
|
|
) -> dict[str, Any]:
|
|
"""
|
|
获取所有扩展数据。
|
|
|
|
返回指定网络的所有扩展数据及其值。
|
|
|
|
Args:
|
|
network: 管网名称(或数据库名称)
|
|
|
|
Returns:
|
|
扩展数据字典
|
|
"""
|
|
return get_all_extension_data(network)
|
|
|
|
@router.get(
|
|
"/getextensiondata/",
|
|
summary="获取指定扩展数据",
|
|
description="获取指定网络中指定键的扩展数据值"
|
|
)
|
|
async def get_extension_data_endpoint(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
key: str = Query(..., description="扩展数据键")
|
|
) -> str | None:
|
|
"""
|
|
获取指定扩展数据。
|
|
|
|
返回指定网络中指定键对应的扩展数据值。
|
|
|
|
Args:
|
|
network: 管网名称(或数据库名称)
|
|
key: 扩展数据键
|
|
|
|
Returns:
|
|
扩展数据值,如果不存在返回None
|
|
"""
|
|
return get_extension_data(network, key)
|
|
|
|
@router.post(
|
|
"/setextensiondata/",
|
|
response_model=None,
|
|
summary="设置扩展数据",
|
|
description="设置指定网络中的扩展数据"
|
|
)
|
|
async def set_extension_data_endpoint(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""
|
|
设置扩展数据。
|
|
|
|
在指定网络中设置扩展数据,并返回变更集信息。
|
|
|
|
Args:
|
|
network: 管网名称(或数据库名称)
|
|
req: 包含扩展数据的请求体
|
|
|
|
Returns:
|
|
变更集信息
|
|
"""
|
|
props = await req.json()
|
|
print(props)
|
|
cs = set_extension_data(network, ChangeSet(props))
|
|
print(cs.operations[0])
|
|
return cs
|