mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-06-01 11:44:21 -04:00
Support for MSC2285 (hidden read receipts) (#10413)
Implementation of matrix-org/matrix-doc#2285
This commit is contained in:
parent
0489683012
commit
c3b037795a
11 changed files with 495 additions and 12 deletions
|
@ -14,8 +14,9 @@
|
|||
|
||||
import logging
|
||||
|
||||
from synapse.api.errors import SynapseError
|
||||
from synapse.http.servlet import RestServlet
|
||||
from synapse.api.constants import ReadReceiptEventFields
|
||||
from synapse.api.errors import Codes, SynapseError
|
||||
from synapse.http.servlet import RestServlet, parse_json_object_from_request
|
||||
|
||||
from ._base import client_patterns
|
||||
|
||||
|
@ -42,10 +43,25 @@ class ReceiptRestServlet(RestServlet):
|
|||
if receipt_type != "m.read":
|
||||
raise SynapseError(400, "Receipt type must be 'm.read'")
|
||||
|
||||
body = parse_json_object_from_request(request)
|
||||
hidden = body.get(ReadReceiptEventFields.MSC2285_HIDDEN, False)
|
||||
|
||||
if not isinstance(hidden, bool):
|
||||
raise SynapseError(
|
||||
400,
|
||||
"Param %s must be a boolean, if given"
|
||||
% ReadReceiptEventFields.MSC2285_HIDDEN,
|
||||
Codes.BAD_JSON,
|
||||
)
|
||||
|
||||
await self.presence_handler.bump_presence_active_time(requester.user)
|
||||
|
||||
await self.receipts_handler.received_client_receipt(
|
||||
room_id, receipt_type, user_id=requester.user.to_string(), event_id=event_id
|
||||
room_id,
|
||||
receipt_type,
|
||||
user_id=requester.user.to_string(),
|
||||
event_id=event_id,
|
||||
hidden=hidden,
|
||||
)
|
||||
|
||||
return 200, {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue