Fix list_memories endpoint Pydantic validation error (#3608)
This commit is contained in:
@@ -158,21 +158,31 @@ async def list_memories(
|
|||||||
if sort_field:
|
if sort_field:
|
||||||
query = query.order_by(sort_field.desc()) if sort_direction == "desc" else query.order_by(sort_field.asc())
|
query = query.order_by(sort_field.desc()) if sort_direction == "desc" else query.order_by(sort_field.asc())
|
||||||
|
|
||||||
|
# Add eager loading for app and categories
|
||||||
|
query = query.options(
|
||||||
|
joinedload(Memory.app),
|
||||||
|
joinedload(Memory.categories)
|
||||||
|
).distinct(Memory.id)
|
||||||
|
|
||||||
# Get paginated results
|
# Get paginated results with transformer
|
||||||
paginated_results = sqlalchemy_paginate(query, params)
|
return sqlalchemy_paginate(
|
||||||
|
query,
|
||||||
# Filter results based on permissions
|
params,
|
||||||
filtered_items = []
|
transformer=lambda items: [
|
||||||
for item in paginated_results.items:
|
MemoryResponse(
|
||||||
if check_memory_access_permissions(db, item, app_id):
|
id=memory.id,
|
||||||
filtered_items.append(item)
|
content=memory.content,
|
||||||
|
created_at=memory.created_at,
|
||||||
# Update paginated results with filtered items
|
state=memory.state.value,
|
||||||
paginated_results.items = filtered_items
|
app_id=memory.app_id,
|
||||||
paginated_results.total = len(filtered_items)
|
app_name=memory.app.name if memory.app else None,
|
||||||
|
categories=[category.name for category in memory.categories],
|
||||||
return paginated_results
|
metadata_=memory.metadata_
|
||||||
|
)
|
||||||
|
for memory in items
|
||||||
|
if check_memory_access_permissions(db, memory, app_id)
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# Get all categories
|
# Get all categories
|
||||||
|
|||||||
Reference in New Issue
Block a user