diff --git a/lib/graphql/resolvers.js b/lib/graphql/resolvers.js index 9b158ccf..cf4f4da0 100644 --- a/lib/graphql/resolvers.js +++ b/lib/graphql/resolvers.js @@ -3,6 +3,7 @@ const nmd = require('nano-markdown') const plugins = require('../plugins') const configManager = require('../new-config-manager') +const settingsLoader = require('../new-settings-loader') const { batchGetCustomInfoRequest, getCustomInfoRequests } = require('../new-admin/services/customInfoRequests') const state = require('../middlewares/state') const { getMachine } = require('../machine-loader') @@ -323,8 +324,7 @@ const terms = (parent, { currentConfigVersion, currentHash }, { deviceId, settin const isHashNew = hash !== currentHash const text = isHashNew ? latestTerms.text : null - return plugins(settings, deviceId) - .fetchCurrentConfigVersion() + return settingsLoader.fetchCurrentConfigVersion() .catch(() => null) .then(configVersion => isHashNew || _.isNil(currentConfigVersion) || currentConfigVersion < configVersion) .then(isVersionNew => isVersionNew ? _.omit(['text'], latestTerms) : null) diff --git a/lib/new-settings-loader.js b/lib/new-settings-loader.js index 70768037..09cb3e6a 100644 --- a/lib/new-settings-loader.js +++ b/lib/new-settings-loader.js @@ -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 = { saveConfig, migrationSaveConfig, @@ -238,5 +247,6 @@ module.exports = { loadLatestConfig, loadLatestConfigOrNone, load, - removeFromConfig + removeFromConfig, + fetchCurrentConfigVersion, } diff --git a/lib/plugins.js b/lib/plugins.js index bd7a1a92..1abb0489 100644 --- a/lib/plugins.js +++ b/lib/plugins.js @@ -11,6 +11,7 @@ const logger = require('./logger') const logs = require('./logs') const T = require('./time') const configManager = require('./new-config-manager') +const settingsLoader = require('./new-settings-loader') const ticker = require('./ticker') const wallet = require('./wallet') const walletScoring = require('./wallet-scoring') @@ -237,15 +238,6 @@ function plugins (settings, deviceId) { .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) { const [ cryptoCode, cryptoNetwork ] = coinParams const commissions = configManager.getCommissions(cryptoCode, deviceId, settings.config) @@ -287,7 +279,7 @@ function plugins (settings, deviceId) { return Promise.all([ buildAvailableCassettes(), buildAvailableRecyclers(), - fetchCurrentConfigVersion(), + settingsLoader.fetchCurrentConfigVersion(), millisecondsToMinutes(getTimezoneOffset(localeConfig.timezone)), loyalty.getNumberOfAvailablePromoCodes(), Promise.all(supportsBatchingPromise), @@ -1030,7 +1022,6 @@ function plugins (settings, deviceId) { sell, getNotificationConfig, notifyOperator, - fetchCurrentConfigVersion, pruneMachinesHeartbeat, rateAddress, isWalletScoringEnabled, diff --git a/lib/routes/termsAndConditionsRoutes.js b/lib/routes/termsAndConditionsRoutes.js index 5becd362..fef9f52d 100644 --- a/lib/routes/termsAndConditionsRoutes.js +++ b/lib/routes/termsAndConditionsRoutes.js @@ -4,7 +4,7 @@ const nmd = require('nano-markdown') const router = express.Router() const configManager = require('../new-config-manager') -const plugins = require('../plugins') +const settingsLoader = require('../new-settings-loader') const createTerms = terms => (terms.active && terms.text) ? ({ delay: terms.delay, @@ -18,15 +18,10 @@ const createTerms = terms => (terms.active && terms.text) ? ({ function getTermsConditions (req, res, next) { const deviceId = req.deviceId - const settings = req.settings - - const terms = configManager.getTermsConditions(settings.config) - - const pi = plugins(settings, deviceId) - - return pi.fetchCurrentConfigVersion().then(version => { - return res.json({ terms: createTerms(terms), version }) - }) + const { config } = req.settings + const terms = configManager.getTermsConditions(config) + return settingsLoader.fetchCurrentConfigVersion() + .then(version => res.json({ terms: createTerms(terms), version })) .catch(next) }