diff options
author | Erik Johnston <erik@matrix.org> | 2016-02-09 16:19:15 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-02-09 16:19:15 +0000 |
commit | 7b0d846407a593ccd204f82aaa1090b8af8df84c (patch) | |
tree | 4848dd2571d064d0caa0f5e45b952306c84f78c7 /synapse/push | |
parent | Pass in current state to push action handler (diff) | |
download | synapse-7b0d846407a593ccd204f82aaa1090b8af8df84c.tar.xz |
Atomically persit push actions when we persist the event
Diffstat (limited to 'synapse/push')
-rw-r--r-- | synapse/push/action_generator.py | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/synapse/push/action_generator.py b/synapse/push/action_generator.py index d8f8256a1f..e0da0868ec 100644 --- a/synapse/push/action_generator.py +++ b/synapse/push/action_generator.py @@ -19,8 +19,6 @@ import bulk_push_rule_evaluator import logging -from synapse.api.constants import EventTypes - logger = logging.getLogger(__name__) @@ -36,23 +34,15 @@ class ActionGenerator: # tag (ie. we just need all the users). @defer.inlineCallbacks - def handle_push_actions_for_event(self, event, handler, current_state): - if event.type == EventTypes.Redaction and event.redacts is not None: - yield self.store.remove_push_actions_for_event_id( - event.room_id, event.redacts - ) - + def handle_push_actions_for_event(self, event, context, handler): bulk_evaluator = yield bulk_push_rule_evaluator.evaluator_for_room_id( event.room_id, self.hs, self.store ) actions_by_user = yield bulk_evaluator.action_for_event_by_user( - event, handler, current_state + event, handler, context.current_state ) - yield self.store.set_push_actions_for_event_and_users( - event, - [ - (uid, None, actions) for uid, actions in actions_by_user.items() - ] - ) + context.push_actions = [ + (uid, None, actions) for uid, actions in actions_by_user.items() + ] |