diff --git a/changelog.d/10579.feature b/changelog.d/10579.feature
new file mode 100644
index 0000000000..ffc4e4289c
--- /dev/null
+++ b/changelog.d/10579.feature
@@ -0,0 +1 @@
+Add pagination to the spaces summary based on updates to [MSC2946](https://github.com/matrix-org/matrix-doc/pull/2946).
diff --git a/synapse/handlers/space_summary.py b/synapse/handlers/space_summary.py
index 893546e661..d0060f9046 100644
--- a/synapse/handlers/space_summary.py
+++ b/synapse/handlers/space_summary.py
@@ -412,10 +412,10 @@ class SpaceSummaryHandler:
# If there's additional data, generate a pagination token (and persist state).
if room_queue:
- next_token = random_string(24)
- result["next_token"] = next_token
+ next_batch = random_string(24)
+ result["next_batch"] = next_batch
pagination_key = _PaginationKey(
- requested_room_id, suggested_only, max_depth, next_token
+ requested_room_id, suggested_only, max_depth, next_batch
)
self._pagination_sessions[pagination_key] = _PaginationSession(
self._clock.time_msec(), room_queue, processed_rooms
diff --git a/tests/handlers/test_space_summary.py b/tests/handlers/test_space_summary.py
index 806b886fe4..83c2bdd8f9 100644
--- a/tests/handlers/test_space_summary.py
+++ b/tests/handlers/test_space_summary.py
@@ -466,19 +466,19 @@ class SpaceSummaryTestCase(unittest.HomeserverTestCase):
expected: List[Tuple[str, Iterable[str]]] = [(self.space, room_ids)]
expected += [(room_id, ()) for room_id in room_ids[:6]]
self._assert_hierarchy(result, expected)
- self.assertIn("next_token", result)
+ self.assertIn("next_batch", result)
# Check the next page.
result = self.get_success(
self.handler.get_room_hierarchy(
- self.user, self.space, limit=5, from_token=result["next_token"]
+ self.user, self.space, limit=5, from_token=result["next_batch"]
)
)
# The result should have the space and the room in it, along with a link
# from space -> room.
expected = [(room_id, ()) for room_id in room_ids[6:]]
self._assert_hierarchy(result, expected)
- self.assertNotIn("next_token", result)
+ self.assertNotIn("next_batch", result)
def test_invalid_pagination_token(self):
""""""
@@ -493,12 +493,12 @@ class SpaceSummaryTestCase(unittest.HomeserverTestCase):
result = self.get_success(
self.handler.get_room_hierarchy(self.user, self.space, limit=7)
)
- self.assertIn("next_token", result)
+ self.assertIn("next_batch", result)
# Changing the room ID, suggested-only, or max-depth causes an error.
self.get_failure(
self.handler.get_room_hierarchy(
- self.user, self.room, from_token=result["next_token"]
+ self.user, self.room, from_token=result["next_batch"]
),
SynapseError,
)
@@ -507,13 +507,13 @@ class SpaceSummaryTestCase(unittest.HomeserverTestCase):
self.user,
self.space,
suggested_only=True,
- from_token=result["next_token"],
+ from_token=result["next_batch"],
),
SynapseError,
)
self.get_failure(
self.handler.get_room_hierarchy(
- self.user, self.space, max_depth=0, from_token=result["next_token"]
+ self.user, self.space, max_depth=0, from_token=result["next_batch"]
),
SynapseError,
)
|