diff options
author | Erik Johnston <erikj@jki.re> | 2018-03-14 09:39:18 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-14 09:39:18 +0000 |
commit | f51565e0236825ef814877be3b3ea2fd0329e3ba (patch) | |
tree | d80f7a9b28752e983c8524ade7f78fec92ffc049 /synapse/storage | |
parent | fix bug #2926 (loading all state for a given type from the DB if the state_ke... (diff) | |
parent | Add is_blocked to worker store (diff) | |
download | synapse-f51565e0236825ef814877be3b3ea2fd0329e3ba.tar.xz |
Merge pull request #2993 from matrix-org/erikj/is_blocked
Add is_blocked to worker store
Diffstat (limited to 'synapse/storage')
-rw-r--r-- | synapse/storage/room.py | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/synapse/storage/room.py b/synapse/storage/room.py index 7f2c08d7a6..34ed84ea22 100644 --- a/synapse/storage/room.py +++ b/synapse/storage/room.py @@ -157,6 +157,18 @@ class RoomWorkerStore(SQLBaseStore): "get_public_room_changes", get_public_room_changes_txn ) + @cached(max_entries=10000) + def is_room_blocked(self, room_id): + return self._simple_select_one_onecol( + table="blocked_rooms", + keyvalues={ + "room_id": room_id, + }, + retcol="1", + allow_none=True, + desc="is_room_blocked", + ) + class RoomStore(RoomWorkerStore, SearchStore): @@ -485,18 +497,6 @@ class RoomStore(RoomWorkerStore, SearchStore): else: defer.returnValue(None) - @cached(max_entries=10000) - def is_room_blocked(self, room_id): - return self._simple_select_one_onecol( - table="blocked_rooms", - keyvalues={ - "room_id": room_id, - }, - retcol="1", - allow_none=True, - desc="is_room_blocked", - ) - @defer.inlineCallbacks def block_room(self, room_id, user_id): yield self._simple_insert( @@ -507,7 +507,11 @@ class RoomStore(RoomWorkerStore, SearchStore): }, desc="block_room", ) - self.is_room_blocked.invalidate((room_id,)) + yield self.runInteraction( + "block_room_invalidation", + self._invalidate_cache_and_stream, + self.is_room_blocked, (room_id,), + ) def get_media_mxcs_in_room(self, room_id): """Retrieves all the local and remote media MXC URIs in a given room |