diff --git a/lib/new-settings-loader.js b/lib/new-settings-loader.js index d9e838ef..5d781c17 100644 --- a/lib/new-settings-loader.js +++ b/lib/new-settings-loader.js @@ -82,6 +82,17 @@ function saveConfig (config) { }) } +function migrationSaveConfig (config) { + return loadLatestConfigOrNone() + .then(currentConfig => { + const newConfig = _.assign(currentConfig, config) + return db.tx(t => { + return t.none(configSql, ['config', { config: newConfig }, true, NEW_SETTINGS_LOADER_SCHEMA_VERSION]) + .then(() => t.none('NOTIFY $1:name, $2', ['poller', JSON.stringify({ type: 'reload', schema: asyncLocalStorage.getStore().get('schema') })])) + }).catch(console.error) + }) +} + function resetConfig (schemaVersion) { return db.none( configSql, @@ -172,6 +183,7 @@ function migrate () { module.exports = { saveConfig, + migrationSaveConfig, resetConfig, saveAccounts, resetAccounts, diff --git a/migrations/1599523522436-migrate-config.js b/migrations/1599523522436-migrate-config.js index 3c9cf20d..6b950f95 100644 --- a/migrations/1599523522436-migrate-config.js +++ b/migrations/1599523522436-migrate-config.js @@ -1,6 +1,6 @@ const db = require('./db') const machineLoader = require('../lib/machine-loader') -const { saveConfig, saveAccounts, loadLatest } = require('../lib/new-settings-loader') +const { migrationSaveConfig, saveAccounts, loadLatest } = require('../lib/new-settings-loader') const { migrate } = require('../lib/config-migration') const _ = require('lodash/fp') @@ -11,7 +11,7 @@ module.exports.up = function (next) { function migrateConfig (settings) { const newSettings = migrate(settings.config, settings.accounts) return Promise.all([ - saveConfig(newSettings.config), + migrationSaveConfig(newSettings.config), saveAccounts(newSettings.accounts) ]) .then(() => next()) diff --git a/migrations/1617742522808-zeroConfLimit-migrate.js b/migrations/1617742522808-zeroConfLimit-migrate.js index 03de48d6..789c0656 100644 --- a/migrations/1617742522808-zeroConfLimit-migrate.js +++ b/migrations/1617742522808-zeroConfLimit-migrate.js @@ -33,7 +33,7 @@ exports.up = function (next) { } })(deviceIds) - return settingsLoader.saveConfig(config) + return settingsLoader.migrationSaveConfig(config) }) .then(() => next()) .catch(err => next(err)) diff --git a/migrations/1617983833835-add-default-advanced-trigger-settings.js b/migrations/1617983833835-add-default-advanced-trigger-settings.js index 049c7c42..d1f34522 100644 --- a/migrations/1617983833835-add-default-advanced-trigger-settings.js +++ b/migrations/1617983833835-add-default-advanced-trigger-settings.js @@ -1,4 +1,4 @@ -const { saveConfig } = require('../lib/new-settings-loader') +const { migrationSaveConfig } = require('../lib/new-settings-loader') exports.up = function (next) { const triggersDefault = { @@ -6,7 +6,7 @@ exports.up = function (next) { triggersConfig_automation: 'Automatic' } - return saveConfig(triggersDefault) + return migrationSaveConfig(triggersDefault) .then(() => next()) .catch(err => { console.log(err.message) diff --git a/migrations/1618507684019-rename-0-conf.js b/migrations/1618507684019-rename-0-conf.js index 4bf2034e..7a416239 100644 --- a/migrations/1618507684019-rename-0-conf.js +++ b/migrations/1618507684019-rename-0-conf.js @@ -13,7 +13,7 @@ exports.up = async function (next) { config[key] = 'none' } }, cryptoCodes) - return settingsLoader.saveConfig(config) + return settingsLoader.migrationSaveConfig(config) } exports.down = function (next) { diff --git a/migrations/1619968992683-fiat-balance-notification-to-percent.js b/migrations/1619968992683-fiat-balance-notification-to-percent.js index 1975e1fb..713761d7 100644 --- a/migrations/1619968992683-fiat-balance-notification-to-percent.js +++ b/migrations/1619968992683-fiat-balance-notification-to-percent.js @@ -1,5 +1,5 @@ const _ = require('lodash/fp') -const { saveConfig, loadLatest } = require('../lib/new-settings-loader') +const { migrationSaveConfig, loadLatest } = require('../lib/new-settings-loader') const { CASSETTE_MAX_CAPACITY } = require('../lib/constants') exports.up = function (next) { @@ -49,7 +49,7 @@ exports.up = function (next) { return newOverride }, config.notifications_fiatBalanceOverrides) } - return saveConfig(newConfig) + return migrationSaveConfig(newConfig) .then(() => next()) }) .catch(err => { diff --git a/migrations/1620319260238-timezones.js b/migrations/1620319260238-timezones.js index c610304b..c2d08484 100644 --- a/migrations/1620319260238-timezones.js +++ b/migrations/1620319260238-timezones.js @@ -6,7 +6,7 @@ exports.up = function (next) { .then(({ config }) => { if (!_.isEmpty(config)) config.locale_timezone = '0:0' - return settingsLoader.saveConfig(config) + return settingsLoader.migrationSaveConfig(config) }) .then(() => next()) .catch(err => next(err)) diff --git a/migrations/1620680439585-add-cashbox-reset-settings.js b/migrations/1620680439585-add-cashbox-reset-settings.js index ca17b4a6..582cb047 100644 --- a/migrations/1620680439585-add-cashbox-reset-settings.js +++ b/migrations/1620680439585-add-cashbox-reset-settings.js @@ -1,4 +1,4 @@ -const { saveConfig, loadLatest } = require('../lib/new-settings-loader') +const { migrationSaveConfig, loadLatest } = require('../lib/new-settings-loader') exports.up = function (next) { const newConfig = { @@ -6,7 +6,7 @@ exports.up = function (next) { } return loadLatest() .then(config => { - return saveConfig(newConfig) + return migrationSaveConfig(newConfig) .then(() => next()) .catch(err => { if (err.message === 'lamassu-server is not configured') { diff --git a/migrations/1620954224627-add-fee-priority.js b/migrations/1620954224627-add-fee-priority.js index e1a46496..fd8c81f4 100644 --- a/migrations/1620954224627-add-fee-priority.js +++ b/migrations/1620954224627-add-fee-priority.js @@ -1,5 +1,5 @@ const _ = require('lodash/fp') -const { saveConfig, loadLatest } = require('../lib/new-settings-loader') +const { migrationSaveConfig, loadLatest } = require('../lib/new-settings-loader') const { getCryptosFromWalletNamespace } = require('../lib/new-config-manager') exports.up = function (next) { @@ -8,7 +8,7 @@ exports.up = function (next) { .then(config => { const coins = getCryptosFromWalletNamespace(config) _.map(coin => { newConfig[`wallets_${coin}_feeMultiplier`] = '1' }, coins) - return saveConfig(newConfig) + return migrationSaveConfig(newConfig) }) .then(next) .catch(err => { diff --git a/migrations/1621430588944-notify-cashbox-removal.js b/migrations/1621430588944-notify-cashbox-removal.js index c41d30a0..df540854 100644 --- a/migrations/1621430588944-notify-cashbox-removal.js +++ b/migrations/1621430588944-notify-cashbox-removal.js @@ -1,5 +1,5 @@ const db = require('./db') -const { saveConfig, loadLatest } = require('../lib/new-settings-loader') +const { migrationSaveConfig, loadLatest } = require('../lib/new-settings-loader') exports.up = function (next) { const sql = [ @@ -19,7 +19,7 @@ exports.up = function (next) { newConfig.notifications_notificationCenter_security = true } - return saveConfig(newConfig) + return migrationSaveConfig(newConfig) .then(() => db.multi(sql, next)) .catch(err => { return next(err) diff --git a/migrations/1623975493095-add-crypto-units-to-config.js b/migrations/1623975493095-add-crypto-units-to-config.js index 512e14df..4453485b 100644 --- a/migrations/1623975493095-add-crypto-units-to-config.js +++ b/migrations/1623975493095-add-crypto-units-to-config.js @@ -1,4 +1,4 @@ -const { saveConfig, loadLatest } = require('../lib/new-settings-loader') +const { migrationSaveConfig, loadLatest } = require('../lib/new-settings-loader') const { getCryptosFromWalletNamespace } = require('../lib/new-config-manager.js') const { utils: coinUtils } = require('lamassu-coins') const _ = require('lodash/fp') @@ -14,7 +14,7 @@ exports.up = function (next) { newSettings[`wallets_${crypto}_cryptoUnits`] = defaultUnit return newSettings }, activeCryptos) - return saveConfig(newSettings) + return migrationSaveConfig(newSettings) }) .then(() => next()) .catch(err => { diff --git a/migrations/1630432869178-add-more-cassette-support.js b/migrations/1630432869178-add-more-cassette-support.js index b530b4ed..1ee32f9b 100644 --- a/migrations/1630432869178-add-more-cassette-support.js +++ b/migrations/1630432869178-add-more-cassette-support.js @@ -1,6 +1,6 @@ var db = require('./db') const _ = require('lodash/fp') -const { saveConfig, loadLatest } = require('../lib/new-settings-loader') +const { migrationSaveConfig, loadLatest } = require('../lib/new-settings-loader') const { getMachines } = require('../lib/machine-loader') exports.up = function (next) { @@ -40,7 +40,7 @@ exports.up = function (next) { return acc }, {}, formattedMachines) - return saveConfig(newConfig) + return migrationSaveConfig(newConfig) .then(() => db.multi(sql, next)) }) }