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)
|