diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/notifications.js | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/notifications.js b/lib/notifications.js index 710a5bfe..b1c4b05f 100644 --- a/lib/notifications.js +++ b/lib/notifications.js @@ -12,11 +12,16 @@ notify = (user, payload) => { let { subscriptions } = user; if (subscriptions) { - subscriptions.map(async subscription => { + subscriptions.map(async (subscription, i) => { try { await webpush.sendNotification(subscription, payload); } catch (e) { - l.error("problem sending notification", e); + if (e.body && e.body.includes('expired')) { + user.subscriptions.splice(i, 1); + await user.save(); + } else { + l.error("problem sending notification", e); + } } }); } |
