diff --git a/packages/server/lib/app.js b/packages/server/lib/app.js index c3848f88..23cc74ea 100644 --- a/packages/server/lib/app.js +++ b/packages/server/lib/app.js @@ -11,6 +11,7 @@ const configManager = require('./new-config-manager') const complianceTriggers = require('./compliance-triggers') const ofac = require('./ofac/index') const ofacUpdate = require('./ofac/update') +const operator = require('./operator') const KEY_PATH = process.env.KEY_PATH const CERT_PATH = process.env.CERT_PATH @@ -78,6 +79,7 @@ async function startServer() { const port = argv.port || 3000 + await operator.getOperatorId('middleware').catch(logger.error) await new Promise(resolve => server.listen({ port }, resolve)) logger.info(`lamassu-server listening on port ${port}`) } diff --git a/packages/server/lib/graphql/resolvers.js b/packages/server/lib/graphql/resolvers.js index b400852f..a8326809 100644 --- a/packages/server/lib/graphql/resolvers.js +++ b/packages/server/lib/graphql/resolvers.js @@ -5,7 +5,6 @@ const nmd = require('nano-markdown') const plugins = require('../plugins') const configManager = require('../new-config-manager') -const settingsLoader = require('../new-settings-loader') const { batchGetCustomInfoRequest, getCustomInfoRequests, @@ -411,17 +410,13 @@ const terms = (parent, { currentConfigVersion, currentHash }, { settings }) => { const isHashNew = hash !== currentHash const text = isHashNew ? latestTerms.text : null - return settingsLoader - .fetchCurrentConfigVersion() - .catch(() => null) - .then( - configVersion => - isHashNew || - _.isNil(currentConfigVersion) || - currentConfigVersion < configVersion, - ) - .then(isVersionNew => (isVersionNew ? _.omit(['text'], latestTerms) : null)) - .then(details => ({ hash, details, text })) + const isVersionNew = + isHashNew || + _.isNil(currentConfigVersion) || + currentConfigVersion < settings.version + const details = isVersionNew ? _.omit(['text'], latestTerms) : null + + return { hash, details, text } } module.exports = { diff --git a/packages/server/lib/new-settings-loader.js b/packages/server/lib/new-settings-loader.js index a83ff7db..9c75cb52 100644 --- a/packages/server/lib/new-settings-loader.js +++ b/packages/server/lib/new-settings-loader.js @@ -256,6 +256,7 @@ function load(versionId) { t.batch([loadConfig(t, versionId), _loadAccounts(t)]).then( ([config, accounts]) => ({ config, + version: versionId, accounts, }), ) diff --git a/packages/server/lib/operator.js b/packages/server/lib/operator.js index 7cf8b8b2..f1d333a8 100644 --- a/packages/server/lib/operator.js +++ b/packages/server/lib/operator.js @@ -1,8 +1,14 @@ const db = require('./db') +let operatorId = {} + function getOperatorId(service) { + if (operatorId[service]) return Promise.resolve(operatorId[service]) + const sql = 'SELECT operator_id FROM operator_ids WHERE service = ${service}' - return db.oneOrNone(sql, { service }, ({ operator_id }) => operator_id) + return db.one(sql, { service }, ({ operator_id }) => { + return (operatorId[service] = operator_id) + }) } module.exports = { getOperatorId }