✨fix: has_more logic in ChatMessageListApi to ensure correct on behavior when no more messages are available. (#24661)
This commit is contained in:
@@ -95,18 +95,22 @@ class ChatMessageListApi(Resource):
|
|||||||
.all()
|
.all()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Initialize has_more based on whether we have a full page
|
||||||
if len(history_messages) == args["limit"]:
|
if len(history_messages) == args["limit"]:
|
||||||
current_page_first_message = history_messages[-1]
|
current_page_first_message = history_messages[-1]
|
||||||
|
# Check if there are more messages before the current page
|
||||||
has_more = db.session.scalar(
|
has_more = db.session.scalar(
|
||||||
select(
|
select(
|
||||||
exists().where(
|
exists().where(
|
||||||
Message.conversation_id == conversation.id,
|
Message.conversation_id == conversation.id,
|
||||||
Message.created_at < current_page_first_message.created_at,
|
Message.created_at < current_page_first_message.created_at,
|
||||||
Message.id != current_page_first_message.id,
|
Message.id != current_page_first_message.id,
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
else:
|
||||||
|
# If we don't have a full page, there are no more messages
|
||||||
|
has_more = False
|
||||||
|
|
||||||
history_messages = list(reversed(history_messages))
|
history_messages = list(reversed(history_messages))
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user