mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-04 06:44:55 -04:00
Reduce duplicate code in receipts servlets. (#13198)
This commit is contained in:
parent
3371e1abcb
commit
1d5c80b161
3 changed files with 32 additions and 43 deletions
|
@ -39,31 +39,27 @@ class ReceiptRestServlet(RestServlet):
|
|||
|
||||
def __init__(self, hs: "HomeServer"):
|
||||
super().__init__()
|
||||
self.hs = hs
|
||||
self.auth = hs.get_auth()
|
||||
self.receipts_handler = hs.get_receipts_handler()
|
||||
self.read_marker_handler = hs.get_read_marker_handler()
|
||||
self.presence_handler = hs.get_presence_handler()
|
||||
|
||||
self._known_receipt_types = {ReceiptTypes.READ}
|
||||
if hs.config.experimental.msc2285_enabled:
|
||||
self._known_receipt_types.update(
|
||||
(ReceiptTypes.READ_PRIVATE, ReceiptTypes.FULLY_READ)
|
||||
)
|
||||
|
||||
async def on_POST(
|
||||
self, request: SynapseRequest, room_id: str, receipt_type: str, event_id: str
|
||||
) -> Tuple[int, JsonDict]:
|
||||
requester = await self.auth.get_user_by_req(request)
|
||||
|
||||
if self.hs.config.experimental.msc2285_enabled and receipt_type not in [
|
||||
ReceiptTypes.READ,
|
||||
ReceiptTypes.READ_PRIVATE,
|
||||
ReceiptTypes.FULLY_READ,
|
||||
]:
|
||||
if receipt_type not in self._known_receipt_types:
|
||||
raise SynapseError(
|
||||
400,
|
||||
"Receipt type must be 'm.read', 'org.matrix.msc2285.read.private' or 'm.fully_read'",
|
||||
f"Receipt type must be {', '.join(self._known_receipt_types)}",
|
||||
)
|
||||
elif (
|
||||
not self.hs.config.experimental.msc2285_enabled
|
||||
and receipt_type != ReceiptTypes.READ
|
||||
):
|
||||
raise SynapseError(400, "Receipt type must be 'm.read'")
|
||||
|
||||
parse_json_object_from_request(request, allow_empty_body=False)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue