diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py
index 30f5a08b59..f2a2f16933 100644
--- a/synapse/handlers/message.py
+++ b/synapse/handlers/message.py
@@ -67,7 +67,7 @@ class MessageHandler(BaseHandler):
@defer.inlineCallbacks
def get_messages(self, user_id=None, room_id=None, pagin_config=None,
- feedback=False):
+ feedback=False, as_client_event=True):
"""Get messages in a room.
Args:
@@ -76,6 +76,7 @@ class MessageHandler(BaseHandler):
pagin_config (synapse.api.streams.PaginationConfig): The pagination
config rules to apply, if any.
feedback (bool): True to get compressed feedback with the messages
+ as_client_event (bool): True to get events in client-server format.
Returns:
dict: Pagination API results
"""
@@ -99,7 +100,9 @@ class MessageHandler(BaseHandler):
)
chunk = {
- "chunk": [self.hs.serialize_event(e) for e in events],
+ "chunk": [
+ self.hs.serialize_event(e, as_client_event) for e in events
+ ],
"start": pagin_config.from_token.to_string(),
"end": next_token.to_string(),
}
diff --git a/synapse/rest/room.py b/synapse/rest/room.py
index e40773758a..caafa959e6 100644
--- a/synapse/rest/room.py
+++ b/synapse/rest/room.py
@@ -314,12 +314,15 @@ class RoomMessageListRestServlet(RestServlet):
request, default_limit=10,
)
with_feedback = "feedback" in request.args
+ as_client_event = "raw" not in request.args
handler = self.handlers.message_handler
msgs = yield handler.get_messages(
room_id=room_id,
user_id=user.to_string(),
pagin_config=pagination_config,
- feedback=with_feedback)
+ feedback=with_feedback,
+ as_client_event=as_client_event
+ )
defer.returnValue((200, msgs))
|