diff options
Diffstat (limited to 'synapse/storage/pusher.py')
-rw-r--r-- | synapse/storage/pusher.py | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/synapse/storage/pusher.py b/synapse/storage/pusher.py index 000502b4ff..a44bccdca6 100644 --- a/synapse/storage/pusher.py +++ b/synapse/storage/pusher.py @@ -13,14 +13,15 @@ # See the License for the specific language governing permissions and # limitations under the License. -import collections - from ._base import SQLBaseStore, Table 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 +53,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 +85,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] @@ -99,6 +100,7 @@ class PusherStore(SQLBaseStore): app_display_name, device_display_name, pushkey, pushkey_ts, lang, data): try: + next_id = yield self._pushers_id_gen.get_next() yield self._simple_upsert( PushersTable.table_name, dict( @@ -113,7 +115,10 @@ 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, ), desc="add_pusher", ) @@ -160,21 +165,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) |