初始化提交
This commit is contained in:
commit
887c1f449e
963 files changed
+166869
No files matched your search
@@ -0,0 +1,32 @@
|
||||
"""MCP server 数据访问。"""
|
||||
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app.models.mcp_servers import McpServer
|
||||
|
||||
|
||||
async def add_server(session: AsyncSession, server: McpServer) -> None:
|
||||
session.add(server)
|
||||
await session.flush()
|
||||
|
||||
|
||||
async def get_server(session: AsyncSession, server_id: str) -> McpServer | None:
|
||||
return await session.get(McpServer, server_id)
|
||||
|
||||
|
||||
async def get_server_by_name(session: AsyncSession, name: str) -> McpServer | None:
|
||||
result = await session.execute(select(McpServer).where(McpServer.name == name))
|
||||
return result.scalar_one_or_none()
|
||||
|
||||
|
||||
async def list_servers(session: AsyncSession, *, status: str | None = None) -> list[McpServer]:
|
||||
conditions = []
|
||||
if status is not None:
|
||||
conditions.append(McpServer.status == status)
|
||||
stmt = select(McpServer)
|
||||
if conditions:
|
||||
stmt = stmt.where(*conditions)
|
||||
stmt = stmt.order_by(McpServer.created_at.desc())
|
||||
result = await session.execute(stmt)
|
||||
return list(result.scalars().all())
|
||||
Reference in new issue
Block a user