mirror of
https://github.com/element-hq/synapse
synced 2024-06-30 18:23:28 +00:00
Accept an optional starting event ID for the /receipts API.
This commit is contained in:
parent
1ec3885aa9
commit
82166cfa51
|
@ -13,7 +13,7 @@
|
|||
# limitations under the License.
|
||||
|
||||
import logging
|
||||
from typing import TYPE_CHECKING, Tuple
|
||||
from typing import TYPE_CHECKING, Optional, Tuple
|
||||
|
||||
from synapse.api.constants import ReceiptTypes
|
||||
from synapse.api.errors import SynapseError
|
||||
|
@ -34,7 +34,8 @@ class ReceiptRestServlet(RestServlet):
|
|||
PATTERNS = client_patterns(
|
||||
"/rooms/(?P<room_id>[^/]*)"
|
||||
"/receipt/(?P<receipt_type>[^/]*)"
|
||||
"/(?P<event_id>[^/]*)$"
|
||||
"/(?P<end_event_id>[^/]*)"
|
||||
"(/(?P<start_event_id>[^/]*))?$"
|
||||
)
|
||||
|
||||
def __init__(self, hs: "HomeServer"):
|
||||
|
@ -46,7 +47,12 @@ class ReceiptRestServlet(RestServlet):
|
|||
self.presence_handler = hs.get_presence_handler()
|
||||
|
||||
async def on_POST(
|
||||
self, request: SynapseRequest, room_id: str, receipt_type: str, event_id: str
|
||||
self,
|
||||
request: SynapseRequest,
|
||||
room_id: str,
|
||||
receipt_type: str,
|
||||
end_event_id: str,
|
||||
start_event_id: Optional[str] = None,
|
||||
) -> Tuple[int, JsonDict]:
|
||||
requester = await self.auth.get_user_by_req(request)
|
||||
|
||||
|
@ -73,14 +79,15 @@ class ReceiptRestServlet(RestServlet):
|
|||
await self.read_marker_handler.received_client_read_marker(
|
||||
room_id,
|
||||
user_id=requester.user.to_string(),
|
||||
event_id=event_id,
|
||||
event_id=end_event_id,
|
||||
)
|
||||
else:
|
||||
await self.receipts_handler.received_client_receipt(
|
||||
room_id,
|
||||
receipt_type,
|
||||
user_id=requester.user.to_string(),
|
||||
end_event_id=event_id,
|
||||
end_event_id=end_event_id,
|
||||
start_event_id=start_event_id,
|
||||
)
|
||||
|
||||
return 200, {}
|
||||
|
|
Loading…
Reference in a new issue