| .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] | ||||
| has_more = db.session.scalar( | |||||
| select( | |||||
| exists().where( | |||||
| Message.conversation_id == conversation.id, | |||||
| Message.created_at < current_page_first_message.created_at, | |||||
| Message.id != current_page_first_message.id, | |||||
| # Check if there are more messages before the current page | |||||
| has_more = db.session.scalar( | |||||
| select( | |||||
| exists().where( | |||||
| Message.conversation_id == conversation.id, | |||||
| Message.created_at < current_page_first_message.created_at, | |||||
| 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)) | ||||