From 76322b79c07d90ec04b7531e2f3f5d334e698e21 Mon Sep 17 00:00:00 2001 From: phernandez Date: Sat, 21 Dec 2024 20:01:09 -0600 Subject: [PATCH] refactor document pydantic schemas a bit --- src/basic_memory/api/routers/documents.py | 6 +++--- src/basic_memory/schemas/request.py | 10 +++++++--- src/basic_memory/schemas/response.py | 10 +++------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/basic_memory/api/routers/documents.py b/src/basic_memory/api/routers/documents.py index e2f1493c..2ede9609 100644 --- a/src/basic_memory/api/routers/documents.py +++ b/src/basic_memory/api/routers/documents.py @@ -57,7 +57,7 @@ async def get_document( """Get a document by path.""" try: document, content = await service.read_document(path) - response = DocumentResponse.from_orm(document) + response = DocumentResponse.model_validate(document) response.content = content return response except DocumentNotFoundError: @@ -77,7 +77,7 @@ async def update_document( document = await service.update_document( path=path, content=doc.content, - metadata=doc.metadata, + metadata=doc.doc_metadata, ) return DocumentResponse.model_validate(document) except DocumentNotFoundError: @@ -104,7 +104,7 @@ async def patch_document( document = await service.update_document( path=path, content=patch.content, - metadata=patch.metadata, + metadata=patch.doc_metadata, ) return DocumentResponse.from_orm(document) except DocumentNotFoundError: diff --git a/src/basic_memory/schemas/request.py b/src/basic_memory/schemas/request.py index a1898295..7248e652 100644 --- a/src/basic_memory/schemas/request.py +++ b/src/basic_memory/schemas/request.py @@ -216,14 +216,18 @@ class CreateRelationsRequest(BaseModel): class DocumentCreate(BaseModel): path: str content: str - metadata: Optional[Dict[str, Any]] = None + doc_metadata: Optional[Dict[str, Any]] = None class DocumentUpdate(BaseModel): + id: int + checksum: str content: str - metadata: Optional[Dict[str, Any]] = None + doc_metadata: Optional[Dict[str, Any]] = None class DocumentPatch(BaseModel): + id: int + checksum: str content: Optional[str] = None - metadata: Optional[Dict[str, Any]] = None + doc_metadata: Optional[Dict[str, Any]] = None diff --git a/src/basic_memory/schemas/response.py b/src/basic_memory/schemas/response.py index 2fc35c7e..2a650815 100644 --- a/src/basic_memory/schemas/response.py +++ b/src/basic_memory/schemas/response.py @@ -11,11 +11,12 @@ Key Features: 4. Bulk operations return all affected items """ -from typing import List, Optional, Dict, Any +from typing import List, Optional from pydantic import BaseModel, ConfigDict from basic_memory.schemas.base import Observation, EntityId, Relation +from basic_memory.schemas.request import DocumentCreate class SQLAlchemyModel(BaseModel): @@ -326,13 +327,8 @@ class DeleteObservationsResponse(SQLAlchemyModel): deleted: bool -class DocumentResponse(BaseModel): +class DocumentResponse(DocumentCreate, SQLAlchemyModel): id: int - path: str checksum: str - doc_metadata: Optional[Dict[str, Any]] = None created_at: str updated_at: str - - class Config: - from_attributes = True