|
|
@ -90,23 +90,12 @@ def get_messages(): |
|
|
|
if not reference_message: |
|
|
|
if not reference_message: |
|
|
|
return jsonify({'message': 'Reference message not found'}), 404 |
|
|
|
return jsonify({'message': 'Reference message not found'}), 404 |
|
|
|
query = query.order_by(Chat.chatDate.asc()).where(Chat.chatDate > reference_message.chatDate) |
|
|
|
query = query.order_by(Chat.chatDate.asc()).where(Chat.chatDate > reference_message.chatDate) |
|
|
|
# For after queries, reverse the order later |
|
|
|
|
|
|
|
query = query.order_by(Chat.chatDate) |
|
|
|
|
|
|
|
except ValueError: |
|
|
|
except ValueError: |
|
|
|
return jsonify({'message': 'Invalid message ID format'}), 400 |
|
|
|
return jsonify({'message': 'Invalid message ID format'}), 400 |
|
|
|
else: |
|
|
|
else: |
|
|
|
# Default ordering |
|
|
|
query = query.order_by(Chat.chatDate.desc()) |
|
|
|
query = query.order_by(desc(Chat.chatDate)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Apply limit and execute query |
|
|
|
|
|
|
|
query = query.limit(limit) |
|
|
|
query = query.limit(limit) |
|
|
|
messages = list(db.session.execute(query).scalars()) |
|
|
|
messages = db.session.execute(query).scalars() |
|
|
|
|
|
|
|
|
|
|
|
# Reverse the order for 'after' queries to maintain consistency |
|
|
|
|
|
|
|
if after_id: |
|
|
|
|
|
|
|
messages.reverse() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Format messages |
|
|
|
|
|
|
|
chat_messages = [{ |
|
|
|
chat_messages = [{ |
|
|
|
'id': str(msg.id), |
|
|
|
'id': str(msg.id), |
|
|
|
'text': msg.textContent, |
|
|
|
'text': msg.textContent, |
|
|
@ -114,12 +103,9 @@ def get_messages(): |
|
|
|
'username': msg.user.username, |
|
|
|
'username': msg.user.username, |
|
|
|
'timestamp': msg.chatDate.isoformat() |
|
|
|
'timestamp': msg.chatDate.isoformat() |
|
|
|
} for msg in messages] |
|
|
|
} for msg in messages] |
|
|
|
|
|
|
|
|
|
|
|
return jsonify({ |
|
|
|
return jsonify({ |
|
|
|
'messages': chat_messages, |
|
|
|
'messages': chat_messages, |
|
|
|
'count': len(chat_messages), |
|
|
|
'count': len(chat_messages), |
|
|
|
'hasMore': len(chat_messages) == limit |
|
|
|
|
|
|
|
}), 200 |
|
|
|
}), 200 |
|
|
|
|
|
|
|
|
|
|
|
except Exception as e: |
|
|
|
except Exception as e: |
|
|
|
return jsonify({'message': f'An error occurred: {str(e)}'}), 500 |
|
|
|
return jsonify({'message': f'An error occurred: {str(e)}'}), 500 |