Skip to content

Commit 499319a

Browse files
committed
Allow sending custom data with read receipts
1 parent 76a515f commit 499319a

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

synapse/handlers/receipts.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,8 @@ async def _handle_new_receipts(self, receipts: List[ReadReceipt]) -> bool:
122122
return True
123123

124124
async def received_client_receipt(
125-
self, room_id: str, receipt_type: str, user_id: str, event_id: str
125+
self, room_id: str, receipt_type: str, user_id: str, event_id: str,
126+
extra_content: Optional[JsonDict] = None,
126127
) -> None:
127128
"""Called when a client tells us a local user has read up to the given
128129
event_id in the room.
@@ -132,7 +133,7 @@ async def received_client_receipt(
132133
receipt_type=receipt_type,
133134
user_id=user_id,
134135
event_ids=[event_id],
135-
data={"ts": int(self.clock.time_msec())},
136+
data={"ts": int(self.clock.time_msec()), **(extra_content or {})},
136137
)
137138

138139
is_new = await self._handle_new_receipts([receipt])

synapse/rest/client/v2_alpha/receipts.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import logging
1616

1717
from synapse.api.errors import SynapseError
18-
from synapse.http.servlet import RestServlet
18+
from synapse.http.servlet import RestServlet, parse_json_object_from_request
1919

2020
from ._base import client_patterns
2121

@@ -44,8 +44,10 @@ async def on_POST(self, request, room_id, receipt_type, event_id):
4444

4545
await self.presence_handler.bump_presence_active_time(requester.user)
4646

47+
body = parse_json_object_from_request(request, allow_empty_body=True)
4748
await self.receipts_handler.received_client_receipt(
48-
room_id, receipt_type, user_id=requester.user.to_string(), event_id=event_id
49+
room_id, receipt_type, user_id=requester.user.to_string(), event_id=event_id,
50+
extra_content=body,
4951
)
5052

5153
return 200, {}

0 commit comments

Comments
 (0)