From 2f2f4d4ff56300dbc9838e37d20765e32b4e2714 Mon Sep 17 00:00:00 2001 From: Rory& Date: Mon, 2 Jun 2025 11:03:44 +0200 Subject: desktop changes --- ...m-ID-in-room-deletion-status-response-183.patch | 116 +++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 packages/overlays/matrix-synapse/patches/0023-Include-room-ID-in-room-deletion-status-response-183.patch (limited to 'packages/overlays/matrix-synapse/patches/0023-Include-room-ID-in-room-deletion-status-response-183.patch') diff --git a/packages/overlays/matrix-synapse/patches/0023-Include-room-ID-in-room-deletion-status-response-183.patch b/packages/overlays/matrix-synapse/patches/0023-Include-room-ID-in-room-deletion-status-response-183.patch new file mode 100644 index 0000000..f14e7ed --- /dev/null +++ b/packages/overlays/matrix-synapse/patches/0023-Include-room-ID-in-room-deletion-status-response-183.patch @@ -0,0 +1,116 @@ +From 553e124f766584456fbdb6d1aa37fdd12ad54dad Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= +Date: Tue, 20 May 2025 17:53:30 +0100 +Subject: [PATCH 23/34] Include room ID in room deletion status response + (#18318) + +When querying by `delete_id` it's handy to see which room the delete +pertains to. +--- + changelog.d/18318.feature | 1 + + docs/admin_api/rooms.md | 7 ++++++- + synapse/rest/admin/rooms.py | 1 + + tests/rest/admin/test_room.py | 7 +++++++ + 4 files changed, 15 insertions(+), 1 deletion(-) + create mode 100644 changelog.d/18318.feature + +diff --git a/changelog.d/18318.feature b/changelog.d/18318.feature +new file mode 100644 +index 0000000000..fba0e83577 +--- /dev/null ++++ b/changelog.d/18318.feature +@@ -0,0 +1 @@ ++Include room ID in room deletion status response. +diff --git a/docs/admin_api/rooms.md b/docs/admin_api/rooms.md +index bfc2cd4376..bdda9b47ad 100644 +--- a/docs/admin_api/rooms.md ++++ b/docs/admin_api/rooms.md +@@ -794,6 +794,7 @@ A response body like the following is returned: + "results": [ + { + "delete_id": "delete_id1", ++ "room_id": "!roomid:example.com", + "status": "failed", + "error": "error message", + "shutdown_room": { +@@ -804,6 +805,7 @@ A response body like the following is returned: + } + }, { + "delete_id": "delete_id2", ++ "room_id": "!roomid:example.com", + "status": "purging", + "shutdown_room": { + "kicked_users": [ +@@ -842,6 +844,8 @@ A response body like the following is returned: + ```json + { + "status": "purging", ++ "delete_id": "bHkCNQpHqOaFhPtK", ++ "room_id": "!roomid:example.com", + "shutdown_room": { + "kicked_users": [ + "@foobar:example.com" +@@ -869,7 +873,8 @@ The following fields are returned in the JSON response body: + - `results` - An array of objects, each containing information about one task. + This field is omitted from the result when you query by `delete_id`. + Task objects contain the following fields: +- - `delete_id` - The ID for this purge if you query by `room_id`. ++ - `delete_id` - The ID for this purge ++ - `room_id` - The ID of the room being deleted + - `status` - The status will be one of: + - `shutting_down` - The process is removing users from the room. + - `purging` - The process is purging the room and event data from database. +diff --git a/synapse/rest/admin/rooms.py b/synapse/rest/admin/rooms.py +index 3097cb1a9d..f8c5bf18d4 100644 +--- a/synapse/rest/admin/rooms.py ++++ b/synapse/rest/admin/rooms.py +@@ -150,6 +150,7 @@ class RoomRestV2Servlet(RestServlet): + def _convert_delete_task_to_response(task: ScheduledTask) -> JsonDict: + return { + "delete_id": task.id, ++ "room_id": task.resource_id, + "status": task.status, + "shutdown_room": task.result, + } +diff --git a/tests/rest/admin/test_room.py b/tests/rest/admin/test_room.py +index 165d175ab2..8d806082aa 100644 +--- a/tests/rest/admin/test_room.py ++++ b/tests/rest/admin/test_room.py +@@ -758,6 +758,8 @@ class DeleteRoomV2TestCase(unittest.HomeserverTestCase): + self.assertEqual(2, len(channel.json_body["results"])) + self.assertEqual("complete", channel.json_body["results"][0]["status"]) + self.assertEqual("complete", channel.json_body["results"][1]["status"]) ++ self.assertEqual(self.room_id, channel.json_body["results"][0]["room_id"]) ++ self.assertEqual(self.room_id, channel.json_body["results"][1]["room_id"]) + delete_ids = {delete_id1, delete_id2} + self.assertTrue(channel.json_body["results"][0]["delete_id"] in delete_ids) + delete_ids.remove(channel.json_body["results"][0]["delete_id"]) +@@ -777,6 +779,7 @@ class DeleteRoomV2TestCase(unittest.HomeserverTestCase): + self.assertEqual(1, len(channel.json_body["results"])) + self.assertEqual("complete", channel.json_body["results"][0]["status"]) + self.assertEqual(delete_id2, channel.json_body["results"][0]["delete_id"]) ++ self.assertEqual(self.room_id, channel.json_body["results"][0]["room_id"]) + + # get status after more than clearing time for all tasks + self.reactor.advance(TaskScheduler.KEEP_TASKS_FOR_MS / 1000 / 2) +@@ -1237,6 +1240,9 @@ class DeleteRoomV2TestCase(unittest.HomeserverTestCase): + self.assertEqual( + delete_id, channel_room_id.json_body["results"][0]["delete_id"] + ) ++ self.assertEqual( ++ self.room_id, channel_room_id.json_body["results"][0]["room_id"] ++ ) + + # get information by delete_id + channel_delete_id = self.make_request( +@@ -1249,6 +1255,7 @@ class DeleteRoomV2TestCase(unittest.HomeserverTestCase): + channel_delete_id.code, + msg=channel_delete_id.json_body, + ) ++ self.assertEqual(self.room_id, channel_delete_id.json_body["room_id"]) + + # test values that are the same in both responses + for content in [ +-- +2.49.0 + -- cgit 1.5.1