diff --git a/lib/plugins.js b/lib/plugins.js index 77aa2126..cf58490d 100644 --- a/lib/plugins.js +++ b/lib/plugins.js @@ -14,9 +14,10 @@ var db = null; var tickerPlugin = null; var traderPlugin = null; var walletPlugin = null; +var idVerifierPlugin = null; var cachedConfig = null; -var deviceCurrency = 'USD'; // Can 'USD' it be set as default? +var deviceCurrency = 'USD'; // Can 'USD' be set as default? var lastBalances = null; var lastRates = {}; @@ -127,6 +128,17 @@ exports.configure = function configure(config) { else traderPlugin = loadPlugin(traderName, traderConfig); } + + // [optional] ID Verifier + var verifierName = plugins.current.idVerifier; + if (verifierName) { // idVerifierPlugin may be disabled + var verifierConfig = plugins.settings[verifierName]; + + if (idVerifierPlugin) idVerifierPlugin.config(verifierConfig); + else loadPlugin(verifierName, verifierConfig); + } + + cachedConfig = config; pollBalance(); @@ -376,3 +388,14 @@ function executeTrades() { if (err) logger.error(err); }); }; + +/* + * ID Verifier functions + */ +exports.verifyUser = function verifyUser(rawData, callback) { + idVerifierPlugin.verifyUser(rawData, callback); +}; + +exports.verifyTransaction = function verifyTransaction(rawData, callback) { + idVerifier.verifyTransaction(rawData, callback); +}; diff --git a/lib/routes.js b/lib/routes.js index ef9da795..d4bfe8a0 100644 --- a/lib/routes.js +++ b/lib/routes.js @@ -2,7 +2,6 @@ var logger = require('./logger'); -var idVerifier = null; var mock = false; var plugins; @@ -75,11 +74,14 @@ function deviceEvent(req, res) { function verifyUser(req, res) { if (mock) return res.json({success: true}); - idVerifier.verifyUser(req.body, function (err, idResult) { + plugins.verifyUser(req.body, function (err, idResult) { if (err) { logger.error(err); - return res.json({err: 'Verification failed'}); + return res.json({ + err: 'Verification failed' + }); } + res.json(idResult); }); } @@ -87,11 +89,14 @@ function verifyUser(req, res) { function verifyTransaction(req, res) { if (mock) return res.json({success: true}); - idVerifier.verifyTransaction(req.body, function (err, idResult) { + plugins.verifyTransaction(req.body, function (err, idResult) { if (err) { logger.error(err); - return res.json({err: 'Verification failed'}); + return res.json({ + err: 'Verification failed' + }); } + res.json(idResult); }); } @@ -132,11 +137,6 @@ function init(localConfig) { var authMiddleware = localConfig.authMiddleware; var app = localConfig.app; - config.readExchangesConfig(function (err, res) { - var idVerifyConfig = res.exchanges.plugins.settings.identitymind; - idVerifier = require('lamassu-identitymind'); - idVerifier.init(idVerifyConfig); - }); app.get('/poll', authMiddleware, poll); app.post('/send', authMiddleware, send);