From 44891b4a0aaa28a3b202d22ef14c6c3b2bca40a5 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 12 Apr 2016 13:47:17 +0100 Subject: [PATCH] Tidy up get_pusher functions Decodes pushers rows on the main thread rather than the db thread and uses _simple_select_list. Also do the same to the function I copied and factor out the duplication into a helper function. --- synapse/storage/pusher.py | 60 +++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/synapse/storage/pusher.py b/synapse/storage/pusher.py index 90ec06809..774eda0f3 100644 --- a/synapse/storage/pusher.py +++ b/synapse/storage/pusher.py @@ -56,43 +56,41 @@ class PusherStore(SQLBaseStore): ) defer.returnValue(ret is not None) - @defer.inlineCallbacks def get_pushers_by_app_id_and_pushkey(self, app_id, pushkey): - def r(txn): - sql = ( - "SELECT * FROM pushers" - " WHERE app_id = ? AND pushkey = ?" - ) + return self.get_pushers_by({ + "app_id": app_id, + "pushkey": pushkey, + }) - txn.execute(sql, (app_id, pushkey,)) - rows = self.cursor_to_dict(txn) - - return self._decode_pushers_rows(rows) - - rows = yield self.runInteraction( - "get_pushers_by_app_id_and_pushkey", r - ) - - defer.returnValue(rows) + def get_pushers_by_user_id(self, user_id): + return self.get_pushers_by({ + "user_name": user_id, + }) @defer.inlineCallbacks - def get_pushers_by_user_id(self, user_id): - def r(txn): - sql = ( - "SELECT * FROM pushers" - " WHERE user_name = ?" - ) + def get_pushers_by(self, keyvalues): + ret = yield self._simple_select_list( + "pushers", keyvalues, + [ + "id", + "user_name", + "access_token", + "profile_tag", + "kind", + "app_id", + "app_display_name", + "device_display_name", + "pushkey", + "ts", + "lang", + "data", + "last_stream_ordering", + "last_success", + "failing_since", - txn.execute(sql, (user_id,)) - rows = self.cursor_to_dict(txn) - - return self._decode_pushers_rows(rows) - - result = yield self.runInteraction( - "get_pushers_by_user_id", r + ] ) - - defer.returnValue(result) + defer.returnValue(self._decode_pushers_rows(ret)) @defer.inlineCallbacks def get_all_pushers(self):