diff --git a/lib/notifier/notificationCenter.js b/lib/notifier/notificationCenter.js index 9dbc63d9..08007852 100644 --- a/lib/notifier/notificationCenter.js +++ b/lib/notifier/notificationCenter.js @@ -71,7 +71,9 @@ const fiatBalancesNotify = (fiatWarnings) => { const { cassette, deviceId } = o.detail return cassette === balance.cassette && deviceId === balance.deviceId }, notInvalidated)) return - const message = `Cash-out cassette ${balance.cassette} low or empty!` + const message = balance.code === 'LOW_CASH_OUT' ? + `Cash-out cassette ${balance.cassette} low or empty!` : + `Cash box full or almost full!` const detailB = utils.buildDetail({ deviceId: balance.deviceId, cassette: balance.cassette }) return queries.addNotification(FIAT_BALANCE, message, detailB) }) @@ -111,11 +113,18 @@ const cryptoBalancesNotify = (cryptoWarnings) => { } const balancesNotify = (balances) => { - const cryptoFilter = o => o.code === 'HIGH_CRYPTO_BALANCE' || o.code === 'LOW_CRYPTO_BALANCE' - const fiatFilter = o => o.code === 'LOW_CASH_OUT' - const cryptoWarnings = _.filter(cryptoFilter, balances) - const fiatWarnings = _.filter(fiatFilter, balances) - return Promise.all([cryptoBalancesNotify(cryptoWarnings), fiatBalancesNotify(fiatWarnings)]) + const isCryptoCode = c => _.includes(c, ['HIGH_CRYPTO_BALANCE', 'LOW_CRYPTO_BALANCE']) + const isFiatCode = c => _.includes(c, ['LOW_CASH_OUT', 'CASH_BOX_FULL']) + const by = o => + isCryptoCode(o) ? 'crypto' : + isFiatCode(o) ? 'fiat' : + undefined + const warnings = _.flow( + _.groupBy(_.flow(_.get(['code']), by)), + _.update('crypto', _.defaultTo([])), + _.update('fiat', _.defaultTo([])), + )(balances) + return Promise.all([cryptoBalancesNotify(warnings.crypto), fiatBalancesNotify(warnings.fiat)]) } const clearOldErrorNotifications = alerts => {