From bc9e69e16099142acdb06c3ea7c7ef9aec9e4ec9 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Thu, 16 Apr 2015 11:01:09 +0100 Subject: [PATCH] Move encoding and decoding of JSON into storage layer --- synapse/push/pusherpool.py | 8 +------- synapse/storage/pusher.py | 26 ++++++-------------------- 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/synapse/push/pusherpool.py b/synapse/push/pusherpool.py index 90babd7224..7f3dd50b47 100644 --- a/synapse/push/pusherpool.py +++ b/synapse/push/pusherpool.py @@ -19,10 +19,7 @@ from twisted.internet import defer from httppusher import HttpPusher from synapse.push import PusherConfigException -from syutil.jsonutil import encode_canonical_json - import logging -import simplejson as json logger = logging.getLogger(__name__) @@ -52,8 +49,6 @@ class PusherPool: @defer.inlineCallbacks def start(self): pushers = yield self.store.get_all_pushers() - for p in pushers: - p['data'] = json.loads(p['data']) self._start_pushers(pushers) @defer.inlineCallbacks @@ -98,7 +93,7 @@ class PusherPool: pushkey=pushkey, pushkey_ts=self.hs.get_clock().time_msec(), lang=lang, - data=encode_canonical_json(data).decode("UTF-8"), + data=data, ) self._refresh_pusher((app_id, pushkey)) @@ -129,7 +124,6 @@ class PusherPool: p = yield self.store.get_pushers_by_app_id_and_pushkey( app_id_pushkey ) - p['data'] = json.loads(p['data']) self._start_pushers([p]) diff --git a/synapse/storage/pusher.py b/synapse/storage/pusher.py index 80c3ba154f..5c1c3d32e6 100644 --- a/synapse/storage/pusher.py +++ b/synapse/storage/pusher.py @@ -20,7 +20,10 @@ from twisted.internet import defer from synapse.api.errors import StoreError +from syutil.jsonutil import encode_canonical_json + import logging +import simplejson as json logger = logging.getLogger(__name__) @@ -52,7 +55,7 @@ class PusherStore(SQLBaseStore): "device_display_name": r[6], "pushkey": r[7], "pushkey_ts": r[8], - "data": r[9], + "data": json.loads(r[9]), "last_token": r[10], "last_success": r[11], "failing_since": r[12] @@ -84,7 +87,7 @@ class PusherStore(SQLBaseStore): "device_display_name": r[6], "pushkey": r[7], "pushkey_ts": r[8], - "data": r[9], + "data": json.loads(r[9]), "last_token": r[10], "last_success": r[11], "failing_since": r[12] @@ -114,7 +117,7 @@ class PusherStore(SQLBaseStore): device_display_name=device_display_name, ts=pushkey_ts, lang=lang, - data=data + data=encode_canonical_json(data).decode("UTF-8"), ), insertion_values=dict( id=next_id, @@ -165,20 +168,3 @@ class PusherStore(SQLBaseStore): class PushersTable(Table): table_name = "pushers" - fields = [ - "id", - "user_name", - "kind", - "profile_tag", - "app_id", - "app_display_name", - "device_display_name", - "pushkey", - "pushkey_ts", - "data", - "last_token", - "last_success", - "failing_since" - ] - - EntryType = collections.namedtuple("PusherEntry", fields)