feat:物料存入数据库
This commit is contained in:
@@ -90,7 +90,6 @@ class ComponentProvider:
|
||||
status="resolved" if matches else "not_found",
|
||||
components=matches,
|
||||
catalog_version=catalog.version,
|
||||
source=catalog.source,
|
||||
message="已找到组件定义" if matches else "已查询组件目录,未找到匹配的组件",
|
||||
)
|
||||
|
||||
|
||||
@@ -81,7 +81,6 @@ class ComponentCatalog(ExtensibleModel):
|
||||
version: NonBlankString = Field(
|
||||
description="前端组件目录版本,后续用于检查是否与前端匹配"
|
||||
)
|
||||
source: NonBlankString = Field(description="真实定义来源,例如前端组件注册文件路径")
|
||||
components: list[ComponentDefinition]
|
||||
|
||||
@model_validator(mode="after")
|
||||
@@ -106,7 +105,6 @@ class ComponentResult(ExtensibleModel):
|
||||
status: Literal["resolved", "not_found", "unsupported"]
|
||||
components: list[ComponentDefinition] = Field(default_factory=list)
|
||||
catalog_version: NonBlankString | None = None
|
||||
source: NonBlankString | None = None
|
||||
message: NonBlankString
|
||||
|
||||
def to_planner_context(self) -> JsonObject:
|
||||
@@ -114,7 +112,6 @@ class ComponentResult(ExtensibleModel):
|
||||
return {
|
||||
"status": self.status,
|
||||
"catalog_version": self.catalog_version,
|
||||
"source": self.source,
|
||||
"message": self.message,
|
||||
"components": [
|
||||
ComponentSummary(
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
"""物料目录的 MongoDB 存储:每个组件一条记录,目录版本和来源放在元数据记录中"""
|
||||
"""物料目录的 MongoDB 存储:每个组件一条记录,目录版本放在元数据记录中"""
|
||||
|
||||
from loguru import logger
|
||||
from pymongo.asynchronous.database import AsyncDatabase
|
||||
@@ -28,7 +28,6 @@ class MongoMaterialRepository:
|
||||
return ComponentCatalog.model_validate(
|
||||
{
|
||||
"version": meta["version"],
|
||||
"source": meta["source"],
|
||||
"components": components,
|
||||
}
|
||||
)
|
||||
@@ -46,9 +45,7 @@ class MongoMaterialRepository:
|
||||
await self._materials.delete_many({})
|
||||
if documents:
|
||||
await self._materials.insert_many(documents)
|
||||
await self._materials.insert_one(
|
||||
{"_id": META_ID, "version": catalog.version, "source": catalog.source}
|
||||
)
|
||||
await self._materials.insert_one({"_id": META_ID, "version": catalog.version})
|
||||
|
||||
|
||||
async def warm_material_cache(db: AsyncDatabase | None) -> ComponentCatalog | None:
|
||||
|
||||
Reference in New Issue
Block a user