diff --git a/spec/PushController.spec.js b/spec/PushController.spec.js index 18f3593a..c8d06a17 100644 --- a/spec/PushController.spec.js +++ b/spec/PushController.spec.js @@ -172,12 +172,8 @@ describe('PushController', () => { send: function(body, installations) { var badge = body.data.badge; installations.forEach((installation) => { - if (installation.deviceType == "ios") { - expect(installation.badge).toEqual(badge); - expect(installation.originalBadge + 1).toEqual(installation.badge); - } else { - expect(installation.badge).toBeUndefined(); - } + expect(installation.badge).toEqual(badge); + expect(installation.originalBadge + 1).toEqual(installation.badge); }) return successfulTransmissions(body, installations); }, @@ -203,7 +199,9 @@ describe('PushController', () => { while(installations.length != 15) { const installation = new Parse.Object("_Installation"); installation.set("installationId", "installation_" + installations.length); - installation.set("deviceToken","device_token_" + installations.length) + installation.set("deviceToken","device_token_" + installations.length); + installation.set("badge", installations.length); + installation.set("originalBadge", installations.length); installation.set("deviceType", "android"); installations.push(installation); } @@ -238,12 +236,7 @@ describe('PushController', () => { expect(results.length).toBe(15); for (var i = 0; i < 15; i++) { const installation = results[i]; - if (installation.get('deviceType') == 'ios') { - expect(installation.get('badge')).toBe(parseInt(installation.get('originalBadge')) + 1); - } else { - expect(installation.get('badge')).toBe(undefined); - expect(installation.get('originalBadge')).toBe(undefined); - } + expect(installation.get('badge')).toBe(parseInt(installation.get('originalBadge')) + 1); } done() }).catch((err) => { diff --git a/src/Adapters/Storage/Postgres/PostgresStorageAdapter.js b/src/Adapters/Storage/Postgres/PostgresStorageAdapter.js index c6af74d8..6233df84 100644 --- a/src/Adapters/Storage/Postgres/PostgresStorageAdapter.js +++ b/src/Adapters/Storage/Postgres/PostgresStorageAdapter.js @@ -1091,7 +1091,8 @@ export class PostgresStorageAdapter { const where = buildWhereClause({ schema, index, query }) values.push(...where.values); - const qs = `UPDATE $1:name SET ${updatePatterns.join(',')} WHERE ${where.pattern} RETURNING *`; + const whereClause = where.pattern.length > 0 ? `WHERE ${where.pattern}` : ''; + const qs = `UPDATE $1:name SET ${updatePatterns.join(',')} ${whereClause} RETURNING *`; debug('update: ', qs, values); return this._client.any(qs, values); } diff --git a/src/Controllers/PushController.js b/src/Controllers/PushController.js index 8d619bff..56c291cb 100644 --- a/src/Controllers/PushController.js +++ b/src/Controllers/PushController.js @@ -36,7 +36,6 @@ export class PushController { const updateWhere = deepcopy(where); badgeUpdate = () => { - updateWhere.deviceType = 'ios'; // Build a real RestQuery so we can use it in RestWrite const restQuery = new RestQuery(config, master(config), '_Installation', updateWhere); return restQuery.buildRestWhere().then(() => { diff --git a/src/Push/PushWorker.js b/src/Push/PushWorker.js index 8639b7f0..0bca3589 100644 --- a/src/Push/PushWorker.js +++ b/src/Push/PushWorker.js @@ -14,10 +14,7 @@ const UNSUPPORTED_BADGE_KEY = "unsupported"; function groupByBadge(installations) { return installations.reduce((map, installation) => { - let badge = installation.badge + ''; - if (installation.deviceType != "ios") { - badge = UNSUPPORTED_BADGE_KEY; - } + const badge = installation.badge + ''; map[badge] = map[badge] || []; map[badge].push(installation); return map;