This commit is contained in:
Erik Johnston 2018-02-16 11:35:01 +00:00
parent 3a061cae26
commit 012e8e142a
3 changed files with 9 additions and 1 deletions

View file

@ -189,6 +189,9 @@ class BulkPushRuleEvaluator(object):
if matches:
actions = [x for x in rule['actions'] if x != 'dont_notify']
if actions and 'notify' in actions:
# Push rules say we should notify the user of this event,
# so we mark it in the DB in the staging area. (This
# will then get handled when we persist the event)
yield self.store.add_push_actions_to_staging(
event.event_id, uid, actions,
)

View file

@ -762,7 +762,8 @@ class EventPushActionsStore(SQLBaseStore):
Args:
event_id (str)
user_id (str)
actions (list)
actions (list[dict|str]): An action can either be a string or
dict.
Returns:
Deferred

View file

@ -13,6 +13,10 @@
* limitations under the License.
*/
-- Temporary staging area for push actions that have been calculated for an
-- event, but the event hasn't yet been persisted.
-- When the event is persisted the rows are moved over to the
-- event_push_actions table.
CREATE TABLE event_push_actions_staging (
event_id TEXT NOT NULL,
user_id TEXT NOT NULL,