refactor: insert only new fields in user config

This commit is contained in:
José Oliveira 2021-05-05 16:52:29 +01:00 committed by Josh Harvey
parent 3de12e3f6e
commit e3f57716fe

View file

@ -1,43 +1,40 @@
const _ = require('lodash/fp') const _ = require('lodash/fp')
const { saveConfig, loadLatest } = require('../lib/new-settings-loader') const { saveConfig, loadLatest } = require('../lib/new-settings-loader')
const { cassetteMaxCapacity } = require('../lib/constants')
exports.up = function (next) { exports.up = function (next) {
loadLatest() return loadLatest()
.then(({ config }) => { .then(({ config }) => {
const fiatBalance1 = config.notifications_fiatBalanceCassette1 const fiatBalance1 = config.notifications_fiatBalanceCassette1
const fiatBalance2 = config.notifications_fiatBalanceCassette2 const fiatBalance2 = config.notifications_fiatBalanceCassette2
const overrides = config.notifications_fiatBalanceOverrides
const newConfig = {}
if (fiatBalance1) { if (fiatBalance1) {
config.notifications_fiatBalanceCassette1 = (100 * (fiatBalance1 / 500)).toFixed(0) newConfig.notifications_fillingPercentageCassette1 = (100 * (fiatBalance1 / cassetteMaxCapacity)).toFixed(0)
newConfig.notifications_fiatBalanceCassette1 = null
} }
if (fiatBalance2) { if (fiatBalance2) {
config.notifications_fiatBalanceCassette2 = (100 * (fiatBalance2 / 500)).toFixed(0) newConfig.notifications_fillingPercentageCassette2 = (100 * (fiatBalance2 / cassetteMaxCapacity)).toFixed(0)
newConfig.notifications_fiatBalanceCassette2 = null
} }
const { if (overrides) {
notifications_fiatBalanceCassette1: notifications_fillingPercentageCassette1, newConfig.notifications_fiatBalanceOverrides = _.map(override => {
notifications_fiatBalanceCassette2: notifications_fillingPercentageCassette2, if (override.fiatBalanceCassette1) {
...rest override.fiatBalanceCassette1 = (100 * (override.fiatBalanceCassette1 / cassetteMaxCapacity)).toFixed(0)
} = config }
if (override.fiatBalanceCassette2) {
config = { notifications_fillingPercentageCassette1, notifications_fillingPercentageCassette2, ...rest } override.fiatBalanceCassette2 = (100 * (override.fiatBalanceCassette2 / cassetteMaxCapacity)).toFixed(0)
}
config.notifications_fiatBalanceOverrides = _.map(override => { const {
if (override.fiatBalanceCassette1) { fiatBalanceCassette1: fillingPercentageCassette1,
override.fiatBalanceCassette1 = (100 * (override.fiatBalanceCassette1 / 500)).toFixed(0) fiatBalanceCassette2: fillingPercentageCassette2,
} ...rest } = override
if (override.fiatBalanceCassette2) { return { fillingPercentageCassette1, fillingPercentageCassette2, ...rest }
override.fiatBalanceCassette2 = (100 * (override.fiatBalanceCassette2 / 500)).toFixed(0) }, config.notifications_fiatBalanceOverrides)
} }
const { return saveConfig(newConfig)
fiatBalanceCassette1: fillingPercentageCassette1, .then(() => {})
fiatBalanceCassette2: fillingPercentageCassette2,
...rest } = override
return { fillingPercentageCassette1, fillingPercentageCassette2, ...rest }
}, config.notifications_fiatBalanceOverrides)
return saveConfig(config)
.then(() => next())
}) })
.catch(err => { .catch(err => {
if (err.message === 'lamassu-server is not configured') { if (err.message === 'lamassu-server is not configured') {
@ -47,6 +44,7 @@ exports.up = function (next) {
return next(err) return next(err)
}) })
} }
module.exports.down = function (next) { module.exports.down = function (next) {
next() next()
} }