96 lines
3.5 KiB
Python
96 lines
3.5 KiB
Python
from fastapi import APIRouter, Request, Query, Path, Body
|
|
from typing import Any, List, Dict, Union
|
|
from app.services.tjnetwork import (
|
|
Any,
|
|
ChangeSet,
|
|
add_pattern,
|
|
delete_pattern,
|
|
get_pattern,
|
|
get_pattern_schema,
|
|
get_patterns,
|
|
is_pattern,
|
|
set_pattern,
|
|
)
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get("/getpatternschema", summary="获取模式架构", description="获取网络中模式对象的架构定义")
|
|
async def fastapi_get_pattern_schema(network: str = Query(..., description="管网名称(或数据库名称)")) -> dict[str, dict[str, Any]]:
|
|
"""获取模式架构。
|
|
|
|
返回指定网络中模式对象的属性架构定义。
|
|
"""
|
|
return get_pattern_schema(network)
|
|
|
|
@router.post("/addpattern/", response_model=None, summary="添加模式", description="在网络中添加一个新的模式")
|
|
async def fastapi_add_pattern(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
pattern: str = Query(..., description="模式ID"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""添加模式。
|
|
|
|
在指定网络中创建一个新的模式,并设置其初始属性。
|
|
"""
|
|
props = await req.json()
|
|
ps = {
|
|
"id": pattern,
|
|
} | props
|
|
return add_pattern(network, ChangeSet(ps))
|
|
|
|
@router.post("/deletepattern/", response_model=None, summary="删除模式", description="从网络中删除指定的模式")
|
|
async def fastapi_delete_pattern(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
pattern: str = Query(..., description="模式ID")
|
|
) -> ChangeSet:
|
|
"""删除模式。
|
|
|
|
从指定网络中删除指定的模式及其相关数据。
|
|
"""
|
|
ps = {"id": pattern}
|
|
return delete_pattern(network, ChangeSet(ps))
|
|
|
|
@router.get("/getpatternproperties/", summary="获取模式属性", description="获取指定模式的属性信息")
|
|
async def fastapi_get_pattern_properties(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
pattern: str = Query(..., description="模式ID")
|
|
) -> dict[str, Any]:
|
|
"""获取模式属性。
|
|
|
|
返回指定模式的所有属性信息。
|
|
"""
|
|
return get_pattern(network, pattern)
|
|
|
|
@router.post("/setpatternproperties/", response_model=None, summary="设置模式属性", description="更新指定模式的属性")
|
|
async def fastapi_set_pattern_properties(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
pattern: str = Query(..., description="模式ID"),
|
|
req: Request = None
|
|
) -> ChangeSet:
|
|
"""设置模式属性。
|
|
|
|
更新指定模式的属性值。
|
|
"""
|
|
props = await req.json()
|
|
ps = {"id": pattern} | props
|
|
return set_pattern(network, ChangeSet(ps))
|
|
|
|
@router.get("/ispattern/", summary="检查模式存在性", description="检查指定的模式是否存在")
|
|
async def fastapi_is_pattern(
|
|
network: str = Query(..., description="管网名称(或数据库名称)"),
|
|
pattern: str = Query(..., description="模式ID")
|
|
) -> bool:
|
|
"""检查模式是否存在。
|
|
|
|
判断指定的模式是否在网络中存在。
|
|
"""
|
|
return is_pattern(network, pattern)
|
|
|
|
@router.get("/getpatterns/", summary="获取所有模式", description="获取网络中的所有模式列表")
|
|
async def fastapi_get_patterns(network: str = Query(..., description="管网名称(或数据库名称)")) -> list[str]:
|
|
"""获取所有模式。
|
|
|
|
返回指定网络中的所有模式ID列表。
|
|
"""
|
|
return get_patterns(network)
|