summary refs log tree commit diff
path: root/synapse/storage/directory.py
diff options
context:
space:
mode:
authorMark Haines <mark.haines@matrix.org>2014-09-30 17:55:06 +0100
committerMark Haines <mark.haines@matrix.org>2014-09-30 17:55:06 +0100
commit9605593d11b67199a98ed25f121a2af2e1c9587a (patch)
treedc57897bfcbd1591fa0dfb219e376353584654e9 /synapse/storage/directory.py
parentSYN-75 Verify signatures on server to server transactions (diff)
parentpyflakes cleanup (diff)
downloadsynapse-9605593d11b67199a98ed25f121a2af2e1c9587a.tar.xz
Merge branch 'develop' into server2server_signing
Conflicts:
	synapse/storage/__init__.py
	tests/rest/test_presence.py
Diffstat (limited to 'synapse/storage/directory.py')
-rw-r--r--synapse/storage/directory.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/synapse/storage/directory.py b/synapse/storage/directory.py
index 540eb4c2c4..52373a28a6 100644
--- a/synapse/storage/directory.py
+++ b/synapse/storage/directory.py
@@ -93,6 +93,36 @@ class DirectoryStore(SQLBaseStore):
                 }
             )
 
+    def delete_room_alias(self, room_alias):
+        return self.runInteraction(
+            self._delete_room_alias_txn,
+            room_alias,
+        )
+
+    def _delete_room_alias_txn(self, txn, room_alias):
+        cursor = txn.execute(
+            "SELECT room_id FROM room_aliases WHERE room_alias = ?",
+            (room_alias.to_string(),)
+        )
+
+        res = cursor.fetchone()
+        if res:
+            room_id = res[0]
+        else:
+            return None
+
+        txn.execute(
+            "DELETE FROM room_aliases WHERE room_alias = ?",
+            (room_alias.to_string(),)
+        )
+
+        txn.execute(
+            "DELETE FROM room_alias_servers WHERE room_alias = ?",
+            (room_alias.to_string(),)
+        )
+
+        return room_id
+
     def get_aliases_for_room(self, room_id):
         return self._simple_select_onecol(
             "room_aliases",