diff options
author | Erik Johnston <erikj@jki.re> | 2017-09-26 16:05:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-26 16:05:46 +0100 |
commit | 1e5fcfd14a892cdcc7f836bb022073e383599a0d (patch) | |
tree | 889b3b1cbfc30181fe7c9e67e122d3c0f1cc5d03 /synapse/storage | |
parent | Merge pull request #2471 from matrix-org/erikj/group_summary_publicised (diff) | |
parent | Add remove room API (diff) | |
download | synapse-1e5fcfd14a892cdcc7f836bb022073e383599a0d.tar.xz |
Merge pull request #2472 from matrix-org/erikj/groups_rooms
Add remove room from group API
Diffstat (limited to 'synapse/storage')
-rw-r--r-- | synapse/storage/group_server.py | 23 | ||||
-rw-r--r-- | synapse/storage/schema/delta/43/group_server.sql | 2 |
2 files changed, 24 insertions, 1 deletions
diff --git a/synapse/storage/group_server.py b/synapse/storage/group_server.py index d0b5ad231a..4fe9172adc 100644 --- a/synapse/storage/group_server.py +++ b/synapse/storage/group_server.py @@ -843,6 +843,29 @@ class GroupServerStore(SQLBaseStore): desc="add_room_to_group", ) + def remove_room_from_group(self, group_id, room_id): + def _remove_room_from_group_txn(txn): + self._simple_delete_txn( + txn, + table="group_rooms", + keyvalues={ + "group_id": group_id, + "room_id": room_id, + }, + ) + + self._simple_delete_txn( + txn, + table="group_summary_rooms", + keyvalues={ + "group_id": group_id, + "room_id": room_id, + }, + ) + return self.runInteraction( + "remove_room_from_group", _remove_room_from_group_txn, + ) + def get_publicised_groups_for_user(self, user_id): """Get all groups a user is publicising """ diff --git a/synapse/storage/schema/delta/43/group_server.sql b/synapse/storage/schema/delta/43/group_server.sql index e74554381f..b2333848a0 100644 --- a/synapse/storage/schema/delta/43/group_server.sql +++ b/synapse/storage/schema/delta/43/group_server.sql @@ -52,7 +52,7 @@ CREATE TABLE group_rooms ( is_public BOOLEAN NOT NULL -- whether the room can be seen by everyone ); -CREATE INDEX groups_rooms_g_idx ON group_rooms(group_id, room_id); +CREATE UNIQUE INDEX groups_rooms_g_idx ON group_rooms(group_id, room_id); CREATE INDEX groups_rooms_r_idx ON group_rooms(room_id); |