Skip to content
Snippets Groups Projects
Commit bc9e69e1 authored by Erik Johnston's avatar Erik Johnston
Browse files

Move encoding and decoding of JSON into storage layer

parent ffad75bd
No related branches found
No related tags found
No related merge requests found
......@@ -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])
......
......@@ -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)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment