summary refs log tree commit diff
path: root/synapse/push
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2016-02-09 16:19:15 +0000
committerErik Johnston <erik@matrix.org>2016-02-09 16:19:15 +0000
commit7b0d846407a593ccd204f82aaa1090b8af8df84c (patch)
tree4848dd2571d064d0caa0f5e45b952306c84f78c7 /synapse/push
parentPass in current state to push action handler (diff)
downloadsynapse-7b0d846407a593ccd204f82aaa1090b8af8df84c.tar.xz
Atomically persit push actions when we persist the event
Diffstat (limited to 'synapse/push')
-rw-r--r--synapse/push/action_generator.py20
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()
+        ]