summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2016-12-07 09:58:33 +0000
committerErik Johnston <erik@matrix.org>2016-12-07 09:58:33 +0000
commit2687af82d4b63fbdc7597a46e0cec297cc660a51 (patch)
tree526d7851228b2249e17688eb588b972c80f59403
parentDon't include appservice id (diff)
downloadsynapse-2687af82d4b63fbdc7597a46e0cec297cc660a51.tar.xz
Comments
-rw-r--r--synapse/handlers/directory.py9
-rw-r--r--synapse/handlers/room_list.py3
-rw-r--r--synapse/storage/schema/delta/39/appservice_room_list.sql2
3 files changed, 12 insertions, 2 deletions
diff --git a/synapse/handlers/directory.py b/synapse/handlers/directory.py
index 08ed513ef8..1b5317edf5 100644
--- a/synapse/handlers/directory.py
+++ b/synapse/handlers/directory.py
@@ -343,7 +343,14 @@ class DirectoryHandler(BaseHandler):
     @defer.inlineCallbacks
     def edit_published_appservice_room_list(self, appservice_id, network_id,
                                             room_id, visibility):
-        """Edit the appservice/network specific public room list.
+        """Add or remove a room from the appservice/network specific public
+        room list.
+
+        Args:
+            appservice_id (str): ID of the appservice that owns the list
+            network_id (str): The ID of the network the list is associated with
+            room_id (str)
+            visibility (str): either "public" or "private"
         """
         if visibility not in ["public", "private"]:
             raise SynapseError(400, "Invalid visibility setting")
diff --git a/synapse/handlers/room_list.py b/synapse/handlers/room_list.py
index 712e5641d5..1e883b23f6 100644
--- a/synapse/handlers/room_list.py
+++ b/synapse/handlers/room_list.py
@@ -63,7 +63,8 @@ class RoomListHandler(BaseHandler):
                 Setting to None returns all public rooms across all lists.
         """
         if search_filter or network_tuple is not (None, None):
-            # We explicitly don't bother caching searches.
+            # We explicitly don't bother caching searches or requests for
+            # appservice specific lists.
             return self._get_public_room_list(
                 limit, since_token, search_filter, network_tuple=network_tuple,
             )
diff --git a/synapse/storage/schema/delta/39/appservice_room_list.sql b/synapse/storage/schema/delta/39/appservice_room_list.sql
index 7e8344a577..74bdc49073 100644
--- a/synapse/storage/schema/delta/39/appservice_room_list.sql
+++ b/synapse/storage/schema/delta/39/appservice_room_list.sql
@@ -19,6 +19,8 @@ CREATE TABLE appservice_room_list(
     room_id TEXT NOT NULL
 );
 
+-- Each appservice can have multiple published room lists associated with them,
+-- keyed of a particular network_id
 CREATE UNIQUE INDEX appservice_room_list_idx ON appservice_room_list(
     appservice_id, network_id, room_id
 );