refactor: move fetchCurrentConfigVersion() to settings loader

This commit is contained in:
siiky 2024-09-17 18:16:10 +01:00
parent d3d4042d97
commit bb440eedd6
4 changed files with 20 additions and 24 deletions

View file

@ -3,6 +3,7 @@ const nmd = require('nano-markdown')
const plugins = require('../plugins') const plugins = require('../plugins')
const configManager = require('../new-config-manager') const configManager = require('../new-config-manager')
const settingsLoader = require('../new-settings-loader')
const { batchGetCustomInfoRequest, getCustomInfoRequests } = require('../new-admin/services/customInfoRequests') const { batchGetCustomInfoRequest, getCustomInfoRequests } = require('../new-admin/services/customInfoRequests')
const state = require('../middlewares/state') const state = require('../middlewares/state')
const { getMachine } = require('../machine-loader') const { getMachine } = require('../machine-loader')
@ -323,8 +324,7 @@ const terms = (parent, { currentConfigVersion, currentHash }, { deviceId, settin
const isHashNew = hash !== currentHash const isHashNew = hash !== currentHash
const text = isHashNew ? latestTerms.text : null const text = isHashNew ? latestTerms.text : null
return plugins(settings, deviceId) return settingsLoader.fetchCurrentConfigVersion()
.fetchCurrentConfigVersion()
.catch(() => null) .catch(() => null)
.then(configVersion => isHashNew || _.isNil(currentConfigVersion) || currentConfigVersion < configVersion) .then(configVersion => isHashNew || _.isNil(currentConfigVersion) || currentConfigVersion < configVersion)
.then(isVersionNew => isVersionNew ? _.omit(['text'], latestTerms) : null) .then(isVersionNew => isVersionNew ? _.omit(['text'], latestTerms) : null)

View file

@ -228,6 +228,15 @@ function load (versionId) {
})) }))
} }
const fetchCurrentConfigVersion = () => {
const sql = `SELECT id FROM user_config
WHERE type = 'config'
AND valid
ORDER BY id DESC
LIMIT 1`
return db.one(sql).then(row => row.id)
}
module.exports = { module.exports = {
saveConfig, saveConfig,
migrationSaveConfig, migrationSaveConfig,
@ -238,5 +247,6 @@ module.exports = {
loadLatestConfig, loadLatestConfig,
loadLatestConfigOrNone, loadLatestConfigOrNone,
load, load,
removeFromConfig removeFromConfig,
fetchCurrentConfigVersion,
} }

View file

@ -11,6 +11,7 @@ const logger = require('./logger')
const logs = require('./logs') const logs = require('./logs')
const T = require('./time') const T = require('./time')
const configManager = require('./new-config-manager') const configManager = require('./new-config-manager')
const settingsLoader = require('./new-settings-loader')
const ticker = require('./ticker') const ticker = require('./ticker')
const wallet = require('./wallet') const wallet = require('./wallet')
const walletScoring = require('./wallet-scoring') const walletScoring = require('./wallet-scoring')
@ -237,15 +238,6 @@ function plugins (settings, deviceId) {
.then(([cassettes, recyclers]) => ({ cassettes: cassettes.cassettes, recyclers: recyclers.recyclers })) .then(([cassettes, recyclers]) => ({ cassettes: cassettes.cassettes, recyclers: recyclers.recyclers }))
} }
function fetchCurrentConfigVersion () {
const sql = `SELECT id FROM user_config
WHERE type = 'config'
AND valid
ORDER BY id DESC
LIMIT 1`
return db.one(sql).then(row => row.id)
}
function mapCoinSettings (coinParams) { function mapCoinSettings (coinParams) {
const [ cryptoCode, cryptoNetwork ] = coinParams const [ cryptoCode, cryptoNetwork ] = coinParams
const commissions = configManager.getCommissions(cryptoCode, deviceId, settings.config) const commissions = configManager.getCommissions(cryptoCode, deviceId, settings.config)
@ -287,7 +279,7 @@ function plugins (settings, deviceId) {
return Promise.all([ return Promise.all([
buildAvailableCassettes(), buildAvailableCassettes(),
buildAvailableRecyclers(), buildAvailableRecyclers(),
fetchCurrentConfigVersion(), settingsLoader.fetchCurrentConfigVersion(),
millisecondsToMinutes(getTimezoneOffset(localeConfig.timezone)), millisecondsToMinutes(getTimezoneOffset(localeConfig.timezone)),
loyalty.getNumberOfAvailablePromoCodes(), loyalty.getNumberOfAvailablePromoCodes(),
Promise.all(supportsBatchingPromise), Promise.all(supportsBatchingPromise),
@ -1030,7 +1022,6 @@ function plugins (settings, deviceId) {
sell, sell,
getNotificationConfig, getNotificationConfig,
notifyOperator, notifyOperator,
fetchCurrentConfigVersion,
pruneMachinesHeartbeat, pruneMachinesHeartbeat,
rateAddress, rateAddress,
isWalletScoringEnabled, isWalletScoringEnabled,

View file

@ -4,7 +4,7 @@ const nmd = require('nano-markdown')
const router = express.Router() const router = express.Router()
const configManager = require('../new-config-manager') const configManager = require('../new-config-manager')
const plugins = require('../plugins') const settingsLoader = require('../new-settings-loader')
const createTerms = terms => (terms.active && terms.text) ? ({ const createTerms = terms => (terms.active && terms.text) ? ({
delay: terms.delay, delay: terms.delay,
@ -18,15 +18,10 @@ const createTerms = terms => (terms.active && terms.text) ? ({
function getTermsConditions (req, res, next) { function getTermsConditions (req, res, next) {
const deviceId = req.deviceId const deviceId = req.deviceId
const settings = req.settings const { config } = req.settings
const terms = configManager.getTermsConditions(config)
const terms = configManager.getTermsConditions(settings.config) return settingsLoader.fetchCurrentConfigVersion()
.then(version => res.json({ terms: createTerms(terms), version }))
const pi = plugins(settings, deviceId)
return pi.fetchCurrentConfigVersion().then(version => {
return res.json({ terms: createTerms(terms), version })
})
.catch(next) .catch(next)
} }