diff --git a/lib/cloudspokes.js b/lib/cloudspokes.js index fe9b1ae..9710706 100644 --- a/lib/cloudspokes.js +++ b/lib/cloudspokes.js @@ -5,7 +5,7 @@ var nforce = require('nforce') var oauth; -exports.updateMember = function(memberId) { +exports.updateMember = function(memberId, memberTabs) { var org = nforce.createConnection({ clientId: process.env.DATABASEDOTCOM_CLIENT_ID, @@ -22,12 +22,54 @@ exports.updateMember = function(memberId) { oauth = resp; console.log('Updating memberId: '+memberId); - org.query('select id, name from member__c where id = \''+memberId+'\'', oauth, function(err, resp){ + var query = 'select id, name from member__c where id = \''+memberId+'\''; + org.query(query, oauth, function(err, resp){ + console.log(resp); var member = resp.records[0]; member.Paperwork_Received__c = 'Paper Work Received'; member.Paperwork_Year__c = new Date().getFullYear(); + // challenge 2026 + // update member info here + var memberTextTabs = memberTabs.textTabs; + + console.log(memberTabs.textTabs); + + // loop through text tabs and set member's fields + for(var i = 0; i < memberTextTabs.length; i++) { + var label = memberTextTabs[i].tabLabel; + var value = memberTextTabs[i].value; + + console.log(label +' -> '+ value); + + // tabs 2 fields pairing here + // please refer to this JSON output for tabs - https://gist.github.com/4599410 + + if(label == 'Name') { // First_Name__c and Last_Name__c + var chunks = value.split(' '); + + member.First_Name__c = chunks[0].trim(); + + member.Last_Name__c = ''; + for(var i = 1; i < chunks.length; i++) { + member.Last_Name__c += ' '+ chunks[i].trim(); + } + } else if(label == 'Address') { // Address_Line1__c + member.Address_Line1__c = value; + } else if(label == 'CityStateZip') { + // maybe split the string by comma? + + var chunks = value.split(','); + + if(chunks[0]) member.City__c = chunks[0].trim(); + if(chunks[1]) member.State__c = chunks[1].trim(); + if(chunks[2]) member.Zip__c = chunks[2].trim(); + } + + } + console.log(member); + org.update(member, oauth, function(err, resp){ if(!err) console.log('Member successfully updated'); }); diff --git a/routes/index.js b/routes/index.js index 294e80a..e8e8e59 100644 --- a/routes/index.js +++ b/routes/index.js @@ -19,7 +19,7 @@ exports.root = function(req, res) { exports.embeddedSigning = function (req, res) { console.log("embedded signing"); console.log(req.params) - res.render ('embeddedSigning', { title: "DocuSign CloudSpokes Documents", data: req.params } ); + res.render ('embeddedSigning', { title: "DocuSign CloudSpokes Documents", data: req.params } ); } @@ -36,7 +36,10 @@ exports.embeddedSigningComplete = function(req, res) { // // jeff?: do you want to do anything if this fails? // - cs.updateMember(userId); + + // challenge 2026 + // moved inside processGetEnvelope and extended the function + // cs.updateMember(userId); res.render('SigningComplete/success' , { title: "Signing Complete Success!", user: userId }); @@ -66,7 +69,10 @@ exports.embeddedSigningComplete = function(req, res) { // function processGetEnvelope(arguments) { - console.log(JSON.stringify(arguments)); + // challenge 2026 + // pass userTabs + var userTabs = arguments[1].replace(/(\r\n|\n|\r)/gm,""); + cs.updateMember(userId, JSON.parse(userTabs).signers[0].tabs); } function loginComplete (arguments) {