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

Rename /batch_send query parameter from ?prev_event to more obvious usage with ?prev_event_id (MSC2716) #10839

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/10839.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Rename [MSC2716](https://github.com/matrix-org/matrix-doc/pull/2716) `/batch_send` query parameter from `?prev_event` to more obvious usage with `?prev_event_id`.
16 changes: 9 additions & 7 deletions synapse/rest/client/room_batch.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ class RoomBatchSendEventRestServlet(RestServlet):
some messages, you can only insert older ones after that.
tldr; Insert chunks from your most recent history -> oldest history.

POST /_matrix/client/unstable/org.matrix.msc2716/rooms/<roomID>/batch_send?prev_event=<eventID>&chunk_id=<chunkID>
POST /_matrix/client/unstable/org.matrix.msc2716/rooms/<roomID>/batch_send?prev_event_id=<eventID>&chunk_id=<chunkID>
{
"events": [ ... ],
"state_events_at_start": [ ... ]
Expand Down Expand Up @@ -188,24 +188,26 @@ async def on_POST(
assert_params_in_dict(body, ["state_events_at_start", "events"])

assert request.args is not None
prev_events_from_query = parse_strings_from_args(request.args, "prev_event")
prev_event_ids_from_query = parse_strings_from_args(
request.args, "prev_event_id"
)
chunk_id_from_query = parse_string(request, "chunk_id")

if prev_events_from_query is None:
if prev_event_ids_from_query is None:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

parse_strings_from_args has a required param to make this easy for you, but 🤷

raise SynapseError(
HTTPStatus.BAD_REQUEST,
"prev_event query parameter is required when inserting historical messages back in time",
errcode=Codes.MISSING_PARAM,
)

# For the event we are inserting next to (`prev_events_from_query`),
# For the event we are inserting next to (`prev_event_ids_from_query`),
# find the most recent auth events (derived from state events) that
# allowed that message to be sent. We will use that as a base
# to auth our historical messages against.
(
most_recent_prev_event_id,
_,
) = await self.store.get_max_depth_of(prev_events_from_query)
) = await self.store.get_max_depth_of(prev_event_ids_from_query)
# mapping from (type, state_key) -> state_event_id
prev_state_map = await self.state_store.get_state_ids_for_event(
most_recent_prev_event_id
Expand Down Expand Up @@ -286,7 +288,7 @@ async def on_POST(
events_to_create = body["events"]

inherited_depth = await self._inherit_depth_from_prev_ids(
prev_events_from_query
prev_event_ids_from_query
)

# Figure out which chunk to connect to. If they passed in
Expand Down Expand Up @@ -321,7 +323,7 @@ async def on_POST(
# an insertion event), in which case we just create a new insertion event
# that can then get pointed to by a "marker" event later.
else:
prev_event_ids = prev_events_from_query
prev_event_ids = prev_event_ids_from_query

base_insertion_event_dict = self._create_insertion_event_dict(
sender=requester.user.to_string(),
Expand Down