UNPKG

node-pushnotifications-http2

Version:

A cross-platform push service for node.js (Node 8.8.1+)

50 lines (41 loc) 1.34 kB
'use strict'; const adm = require('node-adm'); const method = 'adm'; const sendADM = (regIds, _data, settings) => { const resumed = { method, success: 0, failure: 0, message: [] }; const promises = []; const admSender = new adm.Sender(settings.adm); const data = Object.assign({}, _data); const consolidationKey = data.consolidationKey, expiry = data.expiry, timeToLive = data.timeToLive; delete data.consolidationKey; delete data.expiry; delete data.timeToLive; const message = { expiresAfter: expiry - Math.floor(Date.now() / 1000) || timeToLive || 28 * 86400, consolidationKey, data }; regIds.forEach(regId => { admSender.send(message, regId, (err, response) => { const errorMsg = err instanceof Error ? err.message : response.error; const error = err || (response.error ? new Error(response.error) : null); resumed.success += error ? 0 : 1; resumed.failure += error ? 1 : 0; resumed.message.push({ regId, error, errorMsg }); promises.push(Promise.resolve()); }); }); return Promise.all(promises).then(() => resumed); }; module.exports = sendADM;