diff options
Diffstat (limited to 'lib/notifications.js')
| -rw-r--r-- | lib/notifications.js | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/lib/notifications.js b/lib/notifications.js index 9c9c95dc..8f092c5c 100644 --- a/lib/notifications.js +++ b/lib/notifications.js @@ -9,24 +9,30 @@ if (config.vapid) { ); } -export const notify = (user, payload) => { - let { subscriptions } = user; +export const notify = async (user, payload) => { + try { + let { subscriptions } = user; - if (subscriptions) { - subscriptions.map(async (subscription, i) => { - try { - await webpush.sendNotification(subscription, payload); - } catch (e) { - if ( - e.body && - (e.body.includes("expired") || e.body.includes("No such")) - ) { - user.subscriptions.splice(i, 1); - await user.save(); - } else { - err("problem sending notification", e); + if (subscriptions) { + let i = 0; + for (let subscription of subscriptions) { + i++; + try { + await webpush.sendNotification(subscription, payload); + } catch (e) { + if ( + e.body && + (e.body.includes("expired") || e.body.includes("No such")) + ) { + user.subscriptions.splice(i, 1); + await user.save(); + } else { + err("problem sending notification", e); + } } } - }); + } + } catch (e) { + console.log("problem notifying", e); } }; |
