Skip to content
Snippets Groups Projects
Unverified Commit 032e5a2a authored by Patrick Cloke's avatar Patrick Cloke Committed by GitHub
Browse files

Convert synapse.server_notices to async/await. (#7394)

parent b0cbc573
No related branches found
No related tags found
No related merge requests found
Convert synapse.server_notices to async/await.
...@@ -16,8 +16,6 @@ import logging ...@@ -16,8 +16,6 @@ import logging
from six import iteritems from six import iteritems
from twisted.internet import defer
from synapse.api.constants import ( from synapse.api.constants import (
EventTypes, EventTypes,
LimitBlockingTypes, LimitBlockingTypes,
...@@ -167,8 +165,7 @@ class ResourceLimitsServerNotices(object): ...@@ -167,8 +165,7 @@ class ResourceLimitsServerNotices(object):
user_id, content, EventTypes.Pinned, "" user_id, content, EventTypes.Pinned, ""
) )
@defer.inlineCallbacks async def _check_and_set_tags(self, user_id, room_id):
def _check_and_set_tags(self, user_id, room_id):
""" """
Since server notices rooms were originally not with tags, Since server notices rooms were originally not with tags,
important to check that tags have been set correctly important to check that tags have been set correctly
...@@ -176,20 +173,19 @@ class ResourceLimitsServerNotices(object): ...@@ -176,20 +173,19 @@ class ResourceLimitsServerNotices(object):
user_id(str): the user in question user_id(str): the user in question
room_id(str): the server notices room for that user room_id(str): the server notices room for that user
""" """
tags = yield self._store.get_tags_for_room(user_id, room_id) tags = await self._store.get_tags_for_room(user_id, room_id)
need_to_set_tag = True need_to_set_tag = True
if tags: if tags:
if SERVER_NOTICE_ROOM_TAG in tags: if SERVER_NOTICE_ROOM_TAG in tags:
# tag already present, nothing to do here # tag already present, nothing to do here
need_to_set_tag = False need_to_set_tag = False
if need_to_set_tag: if need_to_set_tag:
max_id = yield self._store.add_tag_to_room( max_id = await self._store.add_tag_to_room(
user_id, room_id, SERVER_NOTICE_ROOM_TAG, {} user_id, room_id, SERVER_NOTICE_ROOM_TAG, {}
) )
self._notifier.on_new_event("account_data_key", max_id, users=[user_id]) self._notifier.on_new_event("account_data_key", max_id, users=[user_id])
@defer.inlineCallbacks async def _is_room_currently_blocked(self, room_id):
def _is_room_currently_blocked(self, room_id):
""" """
Determines if the room is currently blocked Determines if the room is currently blocked
...@@ -207,7 +203,7 @@ class ResourceLimitsServerNotices(object): ...@@ -207,7 +203,7 @@ class ResourceLimitsServerNotices(object):
currently_blocked = False currently_blocked = False
pinned_state_event = None pinned_state_event = None
try: try:
pinned_state_event = yield self._state.get_current_state( pinned_state_event = await self._state.get_current_state(
room_id, event_type=EventTypes.Pinned room_id, event_type=EventTypes.Pinned
) )
except AuthError: except AuthError:
...@@ -218,7 +214,7 @@ class ResourceLimitsServerNotices(object): ...@@ -218,7 +214,7 @@ class ResourceLimitsServerNotices(object):
if pinned_state_event is not None: if pinned_state_event is not None:
referenced_events = list(pinned_state_event.content.get("pinned", [])) referenced_events = list(pinned_state_event.content.get("pinned", []))
events = yield self._store.get_events(referenced_events) events = await self._store.get_events(referenced_events)
for event_id, event in iteritems(events): for event_id, event in iteritems(events):
if event.type != EventTypes.Message: if event.type != EventTypes.Message:
continue continue
......
...@@ -67,7 +67,7 @@ class TestResourceLimitsServerNotices(unittest.HomeserverTestCase): ...@@ -67,7 +67,7 @@ class TestResourceLimitsServerNotices(unittest.HomeserverTestCase):
return_value=defer.succeed("!something:localhost") return_value=defer.succeed("!something:localhost")
) )
self._rlsn._store.add_tag_to_room = Mock(return_value=defer.succeed(None)) self._rlsn._store.add_tag_to_room = Mock(return_value=defer.succeed(None))
self._rlsn._store.get_tags_for_room = Mock(return_value={}) self._rlsn._store.get_tags_for_room = Mock(return_value=defer.succeed({}))
self.hs.config.admin_contact = "mailto:user@test.com" self.hs.config.admin_contact = "mailto:user@test.com"
def test_maybe_send_server_notice_to_user_flag_off(self): def test_maybe_send_server_notice_to_user_flag_off(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment