crud.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. # -*- coding: utf-8 -*-
  2. from typing import Sequence, Any
  3. from app.core.base_crud import CRUDBase
  4. from app.api.v1.module_system.auth.schema import AuthSchema
  5. from .model import McpModel
  6. from .schema import McpCreateSchema, McpUpdateSchema
  7. class McpCRUD(CRUDBase[McpModel, McpCreateSchema, McpUpdateSchema]):
  8. """MCP 服务器数据层"""
  9. def __init__(self, auth: AuthSchema) -> None:
  10. """
  11. 初始化CRUD
  12. 参数:
  13. - auth (AuthSchema): 认证信息模型
  14. """
  15. self.auth = auth
  16. super().__init__(model=McpModel, auth=auth)
  17. async def get_by_id_crud(self, id: int, preload: list[str | Any] | None = None) -> McpModel | None:
  18. """
  19. 获取MCP服务器详情
  20. 参数:
  21. - id (int): MCP服务器ID
  22. - preload (list[str | Any] | None): 预加载关系,未提供时使用模型默认项
  23. 返回:
  24. - McpModel | None: MCP服务器模型实例(如果存在)
  25. """
  26. return await self.get(id=id, preload=preload)
  27. async def get_by_name_crud(self, name: str, preload: list[str | Any] | None = None) -> McpModel | None:
  28. """
  29. 通过名称获取MCP服务器
  30. 参数:
  31. - name (str): MCP服务器名称
  32. - preload (list[str | Any] | None): 预加载关系,未提供时使用模型默认项
  33. 返回:
  34. - Optional[McpModel]: MCP服务器模型实例(如果存在)
  35. """
  36. return await self.get(name=name, preload=preload)
  37. async def get_list_crud(self, search: dict | None = None, order_by: list[dict[str, str]] | None = None, preload: list[str | Any] | None = None) -> Sequence[McpModel]:
  38. """
  39. 列表查询MCP服务器
  40. 参数:
  41. - search (dict | None): 查询参数字典
  42. - order_by (list[dict[str, str]] | None): 排序参数列表
  43. - preload (list[str | Any] | None): 预加载关系,未提供时使用模型默认项
  44. 返回:
  45. - Sequence[McpModel]: MCP服务器模型实例序列
  46. """
  47. return await self.list(search=search or {}, order_by=order_by or [{'id': 'asc'}], preload=preload)
  48. async def create_crud(self, data: McpCreateSchema) -> McpModel | None:
  49. """
  50. 创建MCP服务器
  51. 参数:
  52. - data (McpCreateSchema): 创建MCP服务器模型
  53. 返回:
  54. - Optional[McpModel]: 创建的MCP服务器模型实例(如果成功)
  55. """
  56. return await self.create(data=data)
  57. async def update_crud(self, id: int, data: McpUpdateSchema) -> McpModel | None:
  58. """
  59. 更新MCP服务器
  60. 参数:
  61. - id (int): MCP服务器ID
  62. - data (McpUpdateSchema): 更新MCP服务器模型
  63. 返回:
  64. - McpModel | None: 更新的MCP服务器模型实例(如果成功)
  65. """
  66. return await self.update(id=id, data=data)
  67. async def delete_crud(self, ids: list[int]) -> None:
  68. """
  69. 批量删除MCP服务器
  70. 参数:
  71. - ids (list[int]): MCP服务器ID列表
  72. 返回:
  73. - None
  74. """
  75. return await self.delete(ids=ids)