bridge-node-server/node_server/utils/diligence/diligence.js
Martin Donnelly 57bd6c8e6a init
2018-06-24 21:15:03 +01:00

50 lines
1.6 KiB
JavaScript

'use strict';
/**
* Functions to interact with 3rd party, online due-diligence services for
* Anti-money laundering etc.
*/
var Q = require('q');
var featureFlags = require(global.pathPrefix + '../utils/feature-flags/feature-flags.js');
var errors = require(global.pathPrefix + '../utils/diligence/diligence_errors.js');
var tracesmartIduAml = require(global.pathPrefix + '../utils/diligence/tracesmart-idu-aml.js');
const defaultProvider = 'tracesmart-idu-aml';
module.exports = {
ERRORS: errors.ERRORS,
WARNINGS: errors.WARNINGS,
verifyIdentity: verifyIdentity
};
/**
* Verifies the identity of the person using the provided information
*
* @param {Object} client - The client object for this person
* @param {Object} address - The address object for this _person_ (not credit card!)
* @param {Object} provider - The provider to use (or undefined for default provider)
*
* @return {Promise} - A promise for the completion of the verification
*/
function verifyIdentity(client, address, provider) {
//
// If this feature isn't enabled for this client, then return a success
//
if (!featureFlags.isEnabled('diligence', client)) {
return Q.resolve({
Smartscore: 999 // Use an excesively high number to indicate didn't run
});
}
//
// If the feature is enabled then get the right provider and progress
//
provider = provider || defaultProvider;
switch (provider) {
case 'tracesmart-idu-aml':
return tracesmartIduAml.verifyIdentity(client, address);
default:
return Q.reject({name: errors.ERRORS.UNKNOWN_PROVIDER});
}
}