diff --git a/lib/middlewares/populateSettings.js b/lib/middlewares/populateSettings.js index 6bc04dc1..18add0d1 100644 --- a/lib/middlewares/populateSettings.js +++ b/lib/middlewares/populateSettings.js @@ -100,7 +100,9 @@ const populateSettings = function (req, res, next) { return newSettingsLoader.loadLatest() .then(settings => { + const versionId = settings.version settingsCache.set(`${operatorId}-latest`, settings) + settingsCache.set(`${operatorId}-v${versionId}`, settings) if (!!needsSettingsReload[operatorId]) delete needsSettingsReload[operatorId] req.settings = settings }) diff --git a/lib/new-settings-loader.js b/lib/new-settings-loader.js index f97a794a..1b10db64 100644 --- a/lib/new-settings-loader.js +++ b/lib/new-settings-loader.js @@ -151,10 +151,11 @@ function resetConfig (schemaVersion) { } function loadLatest (schemaVersion) { - return Promise.all([loadLatestConfigOrNone(schemaVersion), loadAccounts(schemaVersion)]) - .then(([config, accounts]) => ({ - config, - accounts + return Promise.all([loadLatestConfigOrNoneReturningVersion(schemaVersion), loadAccounts(schemaVersion)]) + .then(([configObj, accounts]) => ({ + config: configObj.config, + accounts, + version: configObj.version })) } @@ -174,6 +175,18 @@ function loadLatestConfig () { }) } +function loadLatestConfigOrNoneReturningVersion (schemaVersion) { + const sql = `select data, id + from user_config + where type=$1 + and schema_version=$2 + order by id desc + limit 1` + + return db.oneOrNone(sql, ['config', schemaVersion || NEW_SETTINGS_LOADER_SCHEMA_VERSION]) + .then(row => row ? { config: row.data.config, version: row.id } : {}) +} + function loadLatestConfigOrNone (schemaVersion) { const sql = `select data from user_config diff --git a/new-lamassu-admin/src/pages/Triggers/helper.js b/new-lamassu-admin/src/pages/Triggers/helper.js index e25a51eb..7ede67b2 100644 --- a/new-lamassu-admin/src/pages/Triggers/helper.js +++ b/new-lamassu-admin/src/pages/Triggers/helper.js @@ -557,7 +557,7 @@ const requirementOptions = [ // { display: 'Super user', code: 'superuser' }, { display: 'Suspend', code: 'suspend' }, { display: 'Block', code: 'block' }, - { display: 'External Verification', code: 'external' } + { display: 'External verification', code: 'external' } ] const hasRequirementError = (errors, touched, values) => @@ -640,7 +640,7 @@ const Requirement = ({ const titleClass = { [classes.error]: - (!!errors.requirement && !isSuspend && !isCustom) || + (!!errors.requirement && !isSuspend && !isCustom && !isExternal) || (isSuspend && hasRequirementError(errors, touched, values)) || (isCustom && hasCustomRequirementError(errors, touched, values)) || (isExternal && hasExternalRequirementError(errors, touched, values)) @@ -804,7 +804,7 @@ const RequirementView = ({ R.find(customReqIdMatches(customInfoRequestId))(customInfoRequests) ) ?? '' : requirement === 'external' - ? `External Verification (${onlyFirstToUpper(externalService)})` + ? `External verification (${onlyFirstToUpper(externalService)})` : getView(requirementOptions, 'display')(requirement) const isSuspend = requirement === 'suspend' return (