diff options
author | Matthew Hodgson <matthew@arasphere.net> | 2016-09-09 00:09:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-09 00:09:51 +0100 |
commit | b8f84f99ff3c645dde6ab6c0498b272bfcc325fe (patch) | |
tree | f6622c08ca7a33bf47c35748d773c19f6d55445f | |
parent | Merge pull request #1080 from matrix-org/dbkr/fix_notifications_api_with_from (diff) | |
parent | Implement `only=highlight` on `/notifications` (diff) | |
download | synapse-b8f84f99ff3c645dde6ab6c0498b272bfcc325fe.tar.xz |
Merge pull request #1081 from matrix-org/dbkr/notifications_only_highlight
Implement `only=highlight` on `/notifications`
-rw-r--r-- | synapse/rest/client/v2_alpha/notifications.py | 3 | ||||
-rw-r--r-- | synapse/storage/event_push_actions.py | 9 |
2 files changed, 10 insertions, 2 deletions
diff --git a/synapse/rest/client/v2_alpha/notifications.py b/synapse/rest/client/v2_alpha/notifications.py index f1a48acf07..fd2a3d69d4 100644 --- a/synapse/rest/client/v2_alpha/notifications.py +++ b/synapse/rest/client/v2_alpha/notifications.py @@ -45,11 +45,12 @@ class NotificationsServlet(RestServlet): from_token = parse_string(request, "from", required=False) limit = parse_integer(request, "limit", default=50) + only = parse_string(request, "only", required=False) limit = min(limit, 500) push_actions = yield self.store.get_push_actions_for_user( - user_id, from_token, limit + user_id, from_token, limit, only_highlight=(only == "highlight") ) receipts_by_room = yield self.store.get_receipts_for_user_with_orderings( diff --git a/synapse/storage/event_push_actions.py b/synapse/storage/event_push_actions.py index 56dce4b616..10e9305f7b 100644 --- a/synapse/storage/event_push_actions.py +++ b/synapse/storage/event_push_actions.py @@ -338,7 +338,8 @@ class EventPushActionsStore(SQLBaseStore): defer.returnValue(notifs[:limit]) @defer.inlineCallbacks - def get_push_actions_for_user(self, user_id, before=None, limit=50): + def get_push_actions_for_user(self, user_id, before=None, limit=50, + only_highlight=False): def f(txn): before_clause = "" if before: @@ -346,6 +347,12 @@ class EventPushActionsStore(SQLBaseStore): args = [user_id, before, limit] else: args = [user_id, limit] + + if only_highlight: + if len(before_clause) > 0: + before_clause += " " + before_clause += "AND epa.highlight = 1" + sql = ( "SELECT epa.event_id, epa.room_id," " epa.stream_ordering, epa.topological_ordering," |