Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Add origin_server_ts and sender fields to m.replace #5613

Merged
merged 12 commits into from
Jul 5, 2019
1 change: 1 addition & 0 deletions changelog.d/5613.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add `sender` and `origin_server_ts` fields to `m.replace`.
6 changes: 5 additions & 1 deletion synapse/events/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,11 @@ def serialize_event(self, event, time_now, bundle_aggregations=True, **kwargs):
serialized_event["content"].pop("m.relates_to", None)

r = serialized_event["unsigned"].setdefault("m.relations", {})
r[RelationTypes.REPLACE] = {"event_id": edit.event_id}
r[RelationTypes.REPLACE] = {
"event_id": edit.event_id,
"origin_server_ts": edit.origin_server_ts,
"sender": edit.sender,
}

defer.returnValue(serialized_event)

Expand Down
24 changes: 18 additions & 6 deletions tests/rest/client/v2_alpha/test_relations.py
Original file line number Diff line number Diff line change
Expand Up @@ -466,9 +466,15 @@ def test_edit(self):

self.assertEquals(channel.json_body["content"], new_body)

self.assertEquals(
channel.json_body["unsigned"].get("m.relations"),
{RelationTypes.REPLACE: {"event_id": edit_event_id}},
relations_dict = channel.json_body["unsigned"].get("m.relations")
self.assertIn(RelationTypes.REPLACE, relations_dict)

m_replace_dict = relations_dict[RelationTypes.REPLACE]
for key in ["event_id", "sender", "origin_server_ts"]:
self.assertIn(key, m_replace_dict)

self.assert_dict(
{"event_id": edit_event_id, "sender": self.user_id}, m_replace_dict
)

def test_multi_edit(self):
Expand Down Expand Up @@ -518,9 +524,15 @@ def test_multi_edit(self):

self.assertEquals(channel.json_body["content"], new_body)

self.assertEquals(
channel.json_body["unsigned"].get("m.relations"),
{RelationTypes.REPLACE: {"event_id": edit_event_id}},
relations_dict = channel.json_body["unsigned"].get("m.relations")
self.assertIn(RelationTypes.REPLACE, relations_dict)

m_replace_dict = relations_dict[RelationTypes.REPLACE]
for key in ["event_id", "sender", "origin_server_ts"]:
self.assertIn(key, m_replace_dict)

self.assert_dict(
{"event_id": edit_event_id, "sender": self.user_id}, m_replace_dict
)

def _send_relation(
Expand Down