From 0db139d7d1ab4e5860e4638e94226810f3c92fe1 Mon Sep 17 00:00:00 2001 From: Gameleon12 Date: Wed, 30 Mar 2016 12:45:16 +0200 Subject: [PATCH 1/2] Fixed error when sending pushes to one pushType Added check for empty devices sets when sending push notifications to senders. This fixes and issue where the empty sets being processed by the senders would throw several reference errors. --- src/ParsePushAdapter.js | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/ParsePushAdapter.js b/src/ParsePushAdapter.js index 3e6c67c..372800b 100644 --- a/src/ParsePushAdapter.js +++ b/src/ParsePushAdapter.js @@ -50,19 +50,22 @@ export class ParsePushAdapter { for (let pushType in deviceMap) { let sender = this.senderMap[pushType]; let devices = deviceMap[pushType]; - if (!sender) { - log.verbose(LOG_PREFIX, `Can not find sender for push type ${pushType}, ${data}`) - let results = devices.map((device) => { - return Promise.resolve({ - device, - transmitted: false, - response: {'error': `Can not find sender for push type ${pushType}, ${data}`} - }) - }); - sendPromises.push(Promise.all(results)); - } else { - sendPromises.push(sender.send(data, devices)); - } + if(devices.length > 0) + { + if (!sender) { + log.verbose(LOG_PREFIX, `Can not find sender for push type ${pushType}, ${data}`) + let results = devices.map((device) => { + return Promise.resolve({ + device, + transmitted: false, + response: {'error': `Can not find sender for push type ${pushType}, ${data}`} + }) + }); + sendPromises.push(Promise.all(results)); + } else { + sendPromises.push(sender.send(data, devices)); + } + } } return Promise.all(sendPromises).then((promises) => { // flatten all From a34a9a96e6dc1b2099e127b57fff13c848cbd0ab Mon Sep 17 00:00:00 2001 From: Gameleon12 Date: Wed, 30 Mar 2016 14:34:23 +0200 Subject: [PATCH 2/2] Replaced tabs with spaces Replaced tabs with spaces Added array check for device set --- src/ParsePushAdapter.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/ParsePushAdapter.js b/src/ParsePushAdapter.js index 372800b..f40c08e 100644 --- a/src/ParsePushAdapter.js +++ b/src/ParsePushAdapter.js @@ -50,22 +50,22 @@ export class ParsePushAdapter { for (let pushType in deviceMap) { let sender = this.senderMap[pushType]; let devices = deviceMap[pushType]; - if(devices.length > 0) - { - if (!sender) { - log.verbose(LOG_PREFIX, `Can not find sender for push type ${pushType}, ${data}`) - let results = devices.map((device) => { - return Promise.resolve({ - device, - transmitted: false, - response: {'error': `Can not find sender for push type ${pushType}, ${data}`} - }) - }); - sendPromises.push(Promise.all(results)); - } else { - sendPromises.push(sender.send(data, devices)); - } - } + if(Array.isArray(devices) && devices.length > 0) + { + if (!sender) { + log.verbose(LOG_PREFIX, `Can not find sender for push type ${pushType}, ${data}`) + let results = devices.map((device) => { + return Promise.resolve({ + device, + transmitted: false, + response: {'error': `Can not find sender for push type ${pushType}, ${data}`} + }) + }); + sendPromises.push(Promise.all(results)); + } else { + sendPromises.push(sender.send(data, devices)); + } + } } return Promise.all(sendPromises).then((promises) => { // flatten all