dotsleadvalidationinternational
Version:
DOTS Lead Validation International (LVI) evaluates international lead data and scores the data quality into pass/fail/review categories.
144 lines (137 loc) • 7.75 kB
JavaScript
function validateLeadInternational(FullName, Salutation, FirstName, LastName, BusinessName, BusinessDomain, BusinessEIN, Address1, Address2, Address3, Address4, Address5, Locality, AdminArea, PostalCode, Country, Phone1, Phone2, Email, IPAddress, Gender, DateOfBirth, UTCCaptureTime, OutputLanguage, TestType, LicenseKey, Environment, callback)
{
var URL = require('url').URL;
const primaryUrl = new URL('https://ws.serviceobjects.com/LVI/api.svc/json/ValidateLeadInternational?FullName=&Salutation=&FirstName=&LastName=&BusinessName=&BusinessDomain=&BusinessEIN=&Address1=&Address2=&Address3=&Address4=&Address5=&Locality=&AdminArea=&PostalCode=&Country=&Phone1=&Phone2=&Email=&IPAddress=&Gender=&DateOfBirth=&UTCCaptureTime=&OutputLanguage=&TestType=&LicenseKey=');
primaryUrl.searchParams.set('FullName', FullName);
primaryUrl.searchParams.set('Salutation', Salutation);
primaryUrl.searchParams.set('FirstName', FirstName);
primaryUrl.searchParams.set('LastName', LastName);
primaryUrl.searchParams.set('BusinessName', BusinessName);
primaryUrl.searchParams.set('BusinessDomain', BusinessDomain);
primaryUrl.searchParams.set('BusinessEIN', BusinessEIN);
primaryUrl.searchParams.set('Address1', Address1);
primaryUrl.searchParams.set('Address2', Address2);
primaryUrl.searchParams.set('Address3', Address3);
primaryUrl.searchParams.set('Address4', Address4);
primaryUrl.searchParams.set('Address5', Address5);
primaryUrl.searchParams.set('Locality', Locality);
primaryUrl.searchParams.set('AdminArea', AdminArea);
primaryUrl.searchParams.set('PostalCode', PostalCode);
primaryUrl.searchParams.set('Country', Country);
primaryUrl.searchParams.set('Phone1', Phone1);
primaryUrl.searchParams.set('Phone2', Phone2);
primaryUrl.searchParams.set('Email', Email);
primaryUrl.searchParams.set('IPAddress', IPAddress);
primaryUrl.searchParams.set('Gender', Gender);
primaryUrl.searchParams.set('DateOfBirth', DateOfBirth);
primaryUrl.searchParams.set('UTCCaptureTime', UTCCaptureTime);
primaryUrl.searchParams.set('OutputLanguage', OutputLanguage);
primaryUrl.searchParams.set('TestType', TestType);
primaryUrl.searchParams.set('LicenseKey', LicenseKey);
const backupUrl = new URL('https://wsbackup.serviceobjects.com/LVI/api.svc/json/ValidateLeadInternational?FullName=&Salutation=&FirstName=&LastName=&BusinessName=&BusinessDomain=&BusinessEIN=&Address1=&Address2=&Address3=&Address4=&Address5=&Locality=&AdminArea=&PostalCode=&Country=&Phone1=&Phone2=&Email=&IPAddress=&Gender=&DateOfBirth=&UTCCaptureTime=&OutputLanguage=&TestType=&LicenseKey=');
backupUrl.searchParams.set('FullName', FullName);
backupUrl.searchParams.set('Salutation', Salutation);
backupUrl.searchParams.set('FirstName', FirstName);
backupUrl.searchParams.set('LastName', LastName);
backupUrl.searchParams.set('BusinessName', BusinessName);
backupUrl.searchParams.set('BusinessDomain', BusinessDomain);
backupUrl.searchParams.set('BusinessEIN', BusinessEIN);
backupUrl.searchParams.set('Address1', Address1);
backupUrl.searchParams.set('Address2', Address2);
backupUrl.searchParams.set('Address3', Address3);
backupUrl.searchParams.set('Address4', Address4);
backupUrl.searchParams.set('Address5', Address5);
backupUrl.searchParams.set('Locality', Locality);
backupUrl.searchParams.set('AdminArea', AdminArea);
backupUrl.searchParams.set('PostalCode', PostalCode);
backupUrl.searchParams.set('Country', Country);
backupUrl.searchParams.set('Phone1', Phone1);
backupUrl.searchParams.set('Phone2', Phone2);
backupUrl.searchParams.set('Email', Email);
backupUrl.searchParams.set('IPAddress', IPAddress);
backupUrl.searchParams.set('Gender', Gender);
backupUrl.searchParams.set('DateOfBirth', DateOfBirth);
backupUrl.searchParams.set('UTCCaptureTime', UTCCaptureTime);
backupUrl.searchParams.set('OutputLanguage', OutputLanguage);
backupUrl.searchParams.set('TestType', TestType);
backupUrl.searchParams.set('LicenseKey', LicenseKey);
const trialUrl = new URL('https://trial.serviceobjects.com/LVI/api.svc/json/ValidateLeadInternational?FullName=&Salutation=&FirstName=&LastName=&BusinessName=&BusinessDomain=&BusinessEIN=&Address1=&Address2=&Address3=&Address4=&Address5=&Locality=&AdminArea=&PostalCode=&Country=&Phone1=&Phone2=&Email=&IPAddress=&Gender=&DateOfBirth=&UTCCaptureTime=&OutputLanguage=&TestType=&LicenseKey=');
trialUrl.searchParams.set('FullName', FullName);
trialUrl.searchParams.set('Salutation', Salutation);
trialUrl.searchParams.set('FirstName', FirstName);
trialUrl.searchParams.set('LastName', LastName);
trialUrl.searchParams.set('BusinessName', BusinessName);
trialUrl.searchParams.set('BusinessDomain', BusinessDomain);
trialUrl.searchParams.set('BusinessEIN', BusinessEIN);
trialUrl.searchParams.set('Address1', Address1);
trialUrl.searchParams.set('Address2', Address2);
trialUrl.searchParams.set('Address3', Address3);
trialUrl.searchParams.set('Address4', Address4);
trialUrl.searchParams.set('Address5', Address5);
trialUrl.searchParams.set('Locality', Locality);
trialUrl.searchParams.set('AdminArea', AdminArea);
trialUrl.searchParams.set('PostalCode', PostalCode);
trialUrl.searchParams.set('Country', Country);
trialUrl.searchParams.set('Phone1', Phone1);
trialUrl.searchParams.set('Phone2', Phone2);
trialUrl.searchParams.set('Email', Email);
trialUrl.searchParams.set('IPAddress', IPAddress);
trialUrl.searchParams.set('Gender', Gender);
trialUrl.searchParams.set('DateOfBirth', DateOfBirth);
trialUrl.searchParams.set('UTCCaptureTime', UTCCaptureTime);
trialUrl.searchParams.set('OutputLanguage', OutputLanguage);
trialUrl.searchParams.set('TestType', TestType);
trialUrl.searchParams.set('LicenseKey', LicenseKey);
if(Environment == "production"){
callWebService(primaryUrl, function(err, response){
//if an error or a Service Objects Fatal is returned, use the backup endpoint
if(err || (response != null && response.Error != null && response.Error.TypeCode == '3')){
callWebService(backupUrl, function(er, rez){
if(er){
return callback(er, null);
}
else{
return callback(null, rez);
}
});
}
else{
return callback(null, response);
}
});
}
else if(Environment == "trial"){
callWebService(trialUrl, function(er, rez){
if(er){
return callback(er, null);
}
else{
return callback(null, rez);
}
});
}
else{
return callback("Unsupported Environment", null);
}
}
function callWebService(url, callback){
try{
var http = require("https");
http.get(url, function(res) {
res.setEncoding('utf8');
var results = '';
res.on('data', function(data) {
results = results + data;
});
res.on('end', function() {
return callback(null, JSON.parse(results));
});
}).on('error', function(err){
return callback(err, null);
});
}
catch(err){
return callback(err, null);
}
}
module.exports = {validateLeadInternational};