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