Require device language when adding a pusher.

Because this seems like it might be useful to do sooner rather
than later.
This commit is contained in:
David Baker 2015-01-16 11:24:10 +00:00
parent 2ca2dbc821
commit 2d2953cf5f
5 changed files with 11 additions and 5 deletions

View file

@ -41,7 +41,7 @@ class PusherPool:
@defer.inlineCallbacks @defer.inlineCallbacks
def add_pusher(self, user_name, kind, app_id, def add_pusher(self, user_name, kind, app_id,
app_display_name, device_display_name, pushkey, data): app_display_name, device_display_name, pushkey, lang, data):
# we try to create the pusher just to validate the config: it # we try to create the pusher just to validate the config: it
# will then get pulled out of the database, # will then get pulled out of the database,
# recreated, added and started: this means we have only one # recreated, added and started: this means we have only one
@ -54,6 +54,7 @@ class PusherPool:
"device_display_name": device_display_name, "device_display_name": device_display_name,
"pushkey": pushkey, "pushkey": pushkey,
"pushkey_ts": self.hs.get_clock().time_msec(), "pushkey_ts": self.hs.get_clock().time_msec(),
"lang": lang,
"data": data, "data": data,
"last_token": None, "last_token": None,
"last_success": None, "last_success": None,
@ -62,13 +63,13 @@ class PusherPool:
yield self._add_pusher_to_store( yield self._add_pusher_to_store(
user_name, kind, app_id, user_name, kind, app_id,
app_display_name, device_display_name, app_display_name, device_display_name,
pushkey, data pushkey, lang, data
) )
@defer.inlineCallbacks @defer.inlineCallbacks
def _add_pusher_to_store(self, user_name, kind, app_id, def _add_pusher_to_store(self, user_name, kind, app_id,
app_display_name, device_display_name, app_display_name, device_display_name,
pushkey, data): pushkey, lang, data):
yield self.store.add_pusher( yield self.store.add_pusher(
user_name=user_name, user_name=user_name,
kind=kind, kind=kind,
@ -77,6 +78,7 @@ class PusherPool:
device_display_name=device_display_name, device_display_name=device_display_name,
pushkey=pushkey, pushkey=pushkey,
pushkey_ts=self.hs.get_clock().time_msec(), pushkey_ts=self.hs.get_clock().time_msec(),
lang=lang,
data=json.dumps(data) data=json.dumps(data)
) )
self._refresh_pusher((app_id, pushkey)) self._refresh_pusher((app_id, pushkey))

View file

@ -32,7 +32,7 @@ class PusherRestServlet(RestServlet):
content = _parse_json(request) content = _parse_json(request)
reqd = ['kind', 'app_id', 'app_display_name', reqd = ['kind', 'app_id', 'app_display_name',
'device_display_name', 'pushkey', 'data'] 'device_display_name', 'pushkey', 'lang', 'data']
missing = [] missing = []
for i in reqd: for i in reqd:
if i not in content: if i not in content:
@ -50,6 +50,7 @@ class PusherRestServlet(RestServlet):
app_display_name=content['app_display_name'], app_display_name=content['app_display_name'],
device_display_name=content['device_display_name'], device_display_name=content['device_display_name'],
pushkey=content['pushkey'], pushkey=content['pushkey'],
lang=content['lang'],
data=content['data'] data=content['data']
) )
except PusherConfigException as pce: except PusherConfigException as pce:

View file

@ -94,7 +94,7 @@ class PusherStore(SQLBaseStore):
@defer.inlineCallbacks @defer.inlineCallbacks
def add_pusher(self, user_name, kind, app_id, def add_pusher(self, user_name, kind, app_id,
app_display_name, device_display_name, app_display_name, device_display_name,
pushkey, pushkey_ts, data): pushkey, pushkey_ts, lang, data):
try: try:
yield self._simple_upsert( yield self._simple_upsert(
PushersTable.table_name, PushersTable.table_name,
@ -108,6 +108,7 @@ class PusherStore(SQLBaseStore):
app_display_name=app_display_name, app_display_name=app_display_name,
device_display_name=device_display_name, device_display_name=device_display_name,
ts=pushkey_ts, ts=pushkey_ts,
lang=lang,
data=data data=data
)) ))
except Exception as e: except Exception as e:

View file

@ -22,6 +22,7 @@ CREATE TABLE IF NOT EXISTS pushers (
device_display_name varchar(128) NOT NULL, device_display_name varchar(128) NOT NULL,
pushkey blob NOT NULL, pushkey blob NOT NULL,
ts BIGINT NOT NULL, ts BIGINT NOT NULL,
lang varchar(8),
data blob, data blob,
last_token TEXT, last_token TEXT,
last_success BIGINT, last_success BIGINT,

View file

@ -22,6 +22,7 @@ CREATE TABLE IF NOT EXISTS pushers (
device_display_name varchar(128) NOT NULL, device_display_name varchar(128) NOT NULL,
pushkey blob NOT NULL, pushkey blob NOT NULL,
ts BIGINT NOT NULL, ts BIGINT NOT NULL,
lang varchar(8),
data blob, data blob,
last_token TEXT, last_token TEXT,
last_success BIGINT, last_success BIGINT,