refactor: update LNBits migration to use configuration object

- Replaced SQL statements with a configuration object for LNBits settings, enhancing code clarity and maintainability.
- Simplified the migration process by utilizing the saveConfig function for applying configurations.
- Marked the down migration as a no-op to prevent breaking existing configurations.
This commit is contained in:
padreug 2025-09-12 21:09:23 +02:00
parent abe45c49f1
commit 0f64df1d69

View file

@ -1,34 +1,17 @@
const db = require('./db')
const { saveConfig } = require('../lib/new-settings-loader')
exports.up = function (next) {
const sql = [
`INSERT INTO user_config (name, display_name, type, data_type, config_type, enabled, secret, options)
VALUES
('lnbitsEndpoint', 'LNBits Server URL', 'text', 'string', 'wallets', false, false, null),
('lnbitsAdminKey', 'LNBits Admin Key', 'text', 'string', 'wallets', false, true, null)
ON CONFLICT (name) DO NOTHING`,
`INSERT INTO user_config (name, display_name, type, data_type, config_type, enabled, secret, options)
VALUES
('LN_wallet', 'Lightning Network Wallet', 'text', 'string', 'wallets', true, false,
'[{"code": "lnbits", "display": "LNBits"}, {"code": "galoy", "display": "Galoy (Blink)"}, {"code": "bitcoind", "display": "Bitcoin Core"}]')
ON CONFLICT (name)
DO UPDATE SET options = EXCLUDED.options
WHERE user_config.options NOT LIKE '%lnbits%'`
]
const config = {
'lnbits_endpoint': '',
'lnbits_adminKey': '',
'LN_wallet': 'lnbits'
}
db.multi(sql, next)
saveConfig(config).then(next).catch(next)
}
exports.down = function (next) {
const sql = [
`DELETE FROM user_config
WHERE name IN ('lnbitsEndpoint', 'lnbitsAdminKey')`,
`UPDATE user_config
SET options = REPLACE(options, ', {"code": "lnbits", "display": "LNBits"}', '')
WHERE name = 'LN_wallet'`
]
db.multi(sql, next)
// No-op - removing config entries is not typically done in down migrations
// as it could break existing configurations
next()
}