Built motion from commit (unavailable).|2.5.21
[motion2.git] / server / services / ami / trigger / integration / salesforce.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xd78d=['then','length','Email','Agent\x20%s\x20found.','resolve','Name','info','Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.','identity','display_name','user_id','moduleSearch','Contact','Lead','contact','lead','Case','Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.','Enduser\x20with\x20phone\x20%s\x20found.','Enduser\x20with\x20phone\x20%s\x20not\x20found.','<unknown>','format','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','moduleCreate','Company','No\x20Company','upperFirst','forEach','type','idField','content','variable','variableName','toString','Variable','name','toLowerCase','password','concat','securityToken','Connection','remoteUri','clientId','login','Connection\x20established.','queue','serverUrl','stripTrailingSlash','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','calleridname','Fields','integrationTab','user:%s','trigger:salesforce:display','trigger:browser:url','%s/%s/e','instanceUrl','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','catch','error','stringify','outbound','recordingFormat','none','[OUTBOUND]','email','destcalleridname','destcalleridnum','[OUTBOUND]\x20Ticket\x20%s\x20created.','newTab','Salesforce\x20account\x20type\x20not\x20recognized','unmanaged','monitor_format','toUpperCase','calleridnum','lastevent',']\x20Ticket\x20%s\x20created.','lodash','request-promise','moment','jsforce','util','ioredis','../../../../config/environment','salesforce','redis','defaults','localhost','socket.io-emitter','emit','Task','assign','utc','Subjects','getString','Descriptions','WhoId','ticketType','ContactId','sobject','isNil','User','find','execute'];(function(_0x275803,_0x24caad){var _0x422c17=function(_0x19019d){while(--_0x19019d){_0x275803['push'](_0x275803['shift']());}};_0x422c17(++_0x24caad);}(_0xd78d,0x126));var _0xdd78=function(_0x5bcf83,_0x3ffc79){_0x5bcf83=_0x5bcf83-0x0;var _0xa38a59=_0xd78d[_0x5bcf83];return _0xa38a59;};'use strict';var _=require(_0xdd78('0x0'));var rp=require(_0xdd78('0x1'));var moment=require(_0xdd78('0x2'));var BPromise=require('bluebird');var md5=require('md5');var jsforce=require(_0xdd78('0x3'));var util=require(_0xdd78('0x4'));var Redis=require(_0xdd78('0x5'));var intUtil=require('./util');var config=require(_0xdd78('0x6'));var logger=require('../../../../config/logger')(_0xdd78('0x7'));config[_0xdd78('0x8')]=_[_0xdd78('0x9')](config['redis'],{'host':_0xdd78('0xa'),'port':0x18eb});var io=require(_0xdd78('0xb'))(new Redis(config[_0xdd78('0x8')]));function emit(_0x3fa8f5,_0x22cc73,_0x3a105c){io['to'](_0x3fa8f5)[_0xdd78('0xc')](_0x22cc73,_0x3a105c);}function getTicket(_0x35f3c0,_0x1726ff,_0x189e45,_0x910cc1,_0x536c0f,_0x434b18,_0x436cc7,_0x3f6db6){var _0x2047f5={};if(_0x910cc1['ticketType']===_0xdd78('0xd')){_0x2047f5=Object[_0xdd78('0xe')]({},{'OwnerId':_0x1726ff['id'],'ActivityDate':moment[_0xdd78('0xf')](),'IsReminderSet':![],'IsRecurrence':![],'Subject':intUtil['getString'](_0x910cc1[_0xdd78('0x10')],_0x536c0f,'\x20'),'Description':intUtil[_0xdd78('0x11')](_0x910cc1[_0xdd78('0x12')],_0x536c0f,'\x0a')},getCustomFields(_0x434b18,_0x536c0f));if(_0x189e45){_0x2047f5[_0xdd78('0x13')]=_0x189e45['id'];}}else if(_0x910cc1[_0xdd78('0x14')]==='Case'){_0x2047f5=Object[_0xdd78('0xe')]({},{'OwnerId':_0x1726ff['id'],'Subject':intUtil[_0xdd78('0x11')](_0x910cc1['Subjects'],_0x536c0f,'\x20'),'Description':intUtil[_0xdd78('0x11')](_0x910cc1['Descriptions'],_0x536c0f,'\x0a')},getCustomFields(_0x434b18,_0x536c0f));if(_0x189e45){_0x2047f5[_0xdd78('0x15')]=_0x189e45['id'];}}return _0x436cc7[_0xdd78('0x16')](_0x910cc1[_0xdd78('0x14')])['create'](_0x2047f5);}function getUser(_0x526566,_0x2fbf94,_0x80cfdc){if(!_[_0xdd78('0x17')](_0x2fbf94)&&intUtil['validateEmail'](_0x2fbf94)){var _0x551d3e={'Email':_0x2fbf94};var _0x301bec={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0x80cfdc[_0xdd78('0x16')](_0xdd78('0x18'))[_0xdd78('0x19')](_0x551d3e,_0x301bec)[_0xdd78('0x1a')]()[_0xdd78('0x1b')](function(_0x506d1c){if(_0x506d1c[_0xdd78('0x1c')]){var _0x3204c8=_[_0xdd78('0x19')](_0x506d1c,function(_0x20fac2){return _0x20fac2[_0xdd78('0x1d')]===_0x2fbf94;});if(_0x3204c8){logger['info'](_0xdd78('0x1e'),_0x2fbf94);return BPromise[_0xdd78('0x1f')]({'id':_0x3204c8['Id'],'name':_0x3204c8[_0xdd78('0x20')]});}}else{logger[_0xdd78('0x21')](_0xdd78('0x22'),_0x2fbf94);return _0x80cfdc[_0xdd78('0x23')]()[_0xdd78('0x1b')](function(_0x2fd095){return BPromise[_0xdd78('0x1f')]({'id':_0x2fd095['user_id'],'name':_0x2fd095[_0xdd78('0x24')]});});}});}else{logger[_0xdd78('0x21')](_0xdd78('0x22'),_0x2fbf94);return _0x80cfdc[_0xdd78('0x23')]()[_0xdd78('0x1b')](function(_0x3e0b52){return BPromise['resolve']({'id':_0x3e0b52[_0xdd78('0x25')],'name':_0x3e0b52[_0xdd78('0x24')]});});}}function getEndUser(_0x10bc87,_0x7f13bb,_0x227224,_0x35e924,_0x154cec){var _0xc77c4b={'Phone':_0x35e924};var _0x1a5158={'Id':!![],'Name':!![],'Phone':!![]};return BPromise[_0xdd78('0x1f')]()[_0xdd78('0x1b')](function(){if(_0x7f13bb[_0xdd78('0x14')]===_0xdd78('0xd')){logger[_0xdd78('0x21')]('Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.',_0x35e924,_0x7f13bb[_0xdd78('0x26')]);switch(_0x7f13bb[_0xdd78('0x26')]){case'contact_lead':return _0x154cec[_0xdd78('0x16')](_0xdd78('0x27'))[_0xdd78('0x19')](_0xc77c4b,_0x1a5158)['execute']()[_0xdd78('0x1b')](function(_0x3de77d){if(_0x3de77d&&_0x3de77d['length']){return _0x3de77d;}else{return _0x154cec['sobject'](_0xdd78('0x28'))['find'](_0xc77c4b,_0x1a5158);}});case _0xdd78('0x29'):return _0x154cec[_0xdd78('0x16')](_0xdd78('0x27'))[_0xdd78('0x19')](_0xc77c4b,_0x1a5158)[_0xdd78('0x1a')]();case _0xdd78('0x2a'):return _0x154cec[_0xdd78('0x16')](_0xdd78('0x28'))['find'](_0xc77c4b,_0x1a5158);default:return null;}}else if(_0x7f13bb['ticketType']===_0xdd78('0x2b')){logger[_0xdd78('0x21')](_0xdd78('0x2c'),_0x35e924,_0xdd78('0x29'));return _0x154cec['sobject'](_0xdd78('0x27'))[_0xdd78('0x19')](_0xc77c4b,_0x1a5158)['execute']();}})[_0xdd78('0x1b')](function(_0x12a663){if(_0x12a663&&_0x12a663[_0xdd78('0x1c')]){var _0x2cb629=_[_0xdd78('0x19')](_0x12a663,function(_0x13c71a){return _0x13c71a['Phone']===_0x35e924;});if(_0x2cb629){return BPromise[_0xdd78('0x1f')]({'id':_0x2cb629['Id'],'name':_0x2cb629[_0xdd78('0x20')],'phone':_0x2cb629['Phone']});}}})['then'](function(_0x55487f){if(_0x55487f){logger[_0xdd78('0x21')](_0xdd78('0x2d'),_0x35e924);return BPromise['resolve'](_0x55487f);}else{logger[_0xdd78('0x21')](_0xdd78('0x2e'),_0x35e924);var _0x43d79d={'LastName':_0x227224!==_0xdd78('0x2f')?_0x227224:util[_0xdd78('0x30')]('Caller\x20-\x20%s',_0x35e924),'Phone':_0x35e924};if(_0x7f13bb['moduleCreate']){if(_0x7f13bb['moduleCreate']===_0xdd78('0x29')){logger['info'](_0xdd78('0x31'),_0x35e924,_0x7f13bb[_0xdd78('0x32')]);}else if(_0x7f13bb[_0xdd78('0x32')]==='lead'&&_0x7f13bb[_0xdd78('0x14')]==='Task'){logger[_0xdd78('0x21')](_0xdd78('0x31'),_0x35e924,_0x7f13bb['moduleCreate']);_0x43d79d[_0xdd78('0x33')]=_0xdd78('0x34');}else{return null;}}return _0x154cec['sobject'](_[_0xdd78('0x35')](_0x7f13bb[_0xdd78('0x32')]))['create'](_0x43d79d);}});}function getCustomFields(_0x4a5447,_0x518cce){var _0x266a83={};if(_0x4a5447[_0xdd78('0x1c')]>0x0){_[_0xdd78('0x36')](_0x4a5447,function(_0x41212c){if(_0x41212c[_0xdd78('0x37')]==='string'&&_0x41212c[_0xdd78('0x38')]){_0x266a83[_0x41212c[_0xdd78('0x38')]]=_0x41212c[_0xdd78('0x39')]['toString']();}else if(_0x41212c['type']===_0xdd78('0x3a')&&_0x41212c['variableName']&&_0x41212c[_0xdd78('0x38')]){_0x518cce[_0x41212c[_0xdd78('0x3b')]]&&(_0x266a83[_0x41212c[_0xdd78('0x38')]]=_0x518cce[_0x41212c['variableName']][_0xdd78('0x3c')]());}else if(_0x41212c['type']==='customVariable'&&_0x41212c[_0xdd78('0x3d')]&&_0x41212c[_0xdd78('0x3d')][_0xdd78('0x3e')]&&_0x41212c['idField']){_0x518cce[_0x41212c['Variable']['name'][_0xdd78('0x3f')]()]&&(_0x266a83[_0x41212c['idField']]=_0x518cce[_0x41212c['Variable']['name']['toLowerCase']()]['toString']());}});}return _0x266a83;}function getConnection(_0x25fc73){var _0x2189ab=_0x25fc73[_0xdd78('0x40')][_0xdd78('0x41')](_0x25fc73[_0xdd78('0x42')]);var _0x417c10=new jsforce[(_0xdd78('0x43'))]({'oauth2':{'loginUrl':_0x25fc73[_0xdd78('0x44')]||'https://login.salesforce.com','clientId':_0x25fc73[_0xdd78('0x45')],'clientSecret':_0x25fc73['clientSecret']}});return _0x417c10[_0xdd78('0x46')](_0x25fc73['username'],_0x2189ab)[_0xdd78('0x1b')](function(){logger['info'](_0xdd78('0x47'));return _0x417c10;});}exports[_0xdd78('0x48')]=function(_0x27a75b,_0x1ce727,_0x5b4a0b,_0x5c9c6b,_0x2ab6dc,_0x5d9421){var _0x3efd3d,_0x2ccabc,_0x27e880,_0x4efaa4;_0x5d9421[_0xdd78('0x49')]=intUtil[_0xdd78('0x4a')](_0x5d9421[_0xdd78('0x49')]);_0x5d9421[_0xdd78('0x44')]=intUtil[_0xdd78('0x4a')](_0x5d9421[_0xdd78('0x44')]);if(_0x2ab6dc&&_0x2ab6dc['monitor_format']){logger['info']('[QUEUE]',_0xdd78('0x4b'));_0x1ce727[_0xdd78('0x4c')]=util[_0xdd78('0x30')](_0xdd78('0x4d'),_0x5d9421[_0xdd78('0x49')],_0x1ce727[_0xdd78('0x4e')],md5(_0x1ce727[_0xdd78('0x4e')]));}else{_0x1ce727[_0xdd78('0x4c')]='';}return getConnection(_0x5d9421)['then'](function(_0x40edcf){_0x4efaa4=_0x40edcf;return getUser(_0x5d9421,_0x5c9c6b['email'],_0x4efaa4);})[_0xdd78('0x1b')](function(_0x4a9f24){_0x3efd3d=_0x4a9f24;return getEndUser(_0x5d9421,_0x5b4a0b,_0x1ce727[_0xdd78('0x4f')],_0x1ce727['calleridnum'],_0x4efaa4);})[_0xdd78('0x1b')](function(_0x50885a){_0x2ccabc=_0x50885a;return getTicket(_0x5d9421,_0x3efd3d,_0x2ccabc,_0x5b4a0b,_0x1ce727,_0x5b4a0b[_0xdd78('0x50')],_0x4efaa4,_0xdd78('0x48'));})['then'](function(_0x582959){_0x27e880=_0x582959;logger[_0xdd78('0x21')]('[QUEUE]\x20Ticket\x20%s\x20created',_0x27e880['id']);logger[_0xdd78('0x21')]('[QUEUE]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.',_0x27e880['id'],_0x5c9c6b[_0xdd78('0x3e')],_0x5d9421[_0xdd78('0x37')]);switch(_0x5d9421[_0xdd78('0x37')]){case _0xdd78('0x51'):emit(util[_0xdd78('0x30')](_0xdd78('0x52'),_0x5c9c6b[_0xdd78('0x3e')]),_0xdd78('0x53'),{'recordId':_0x27e880['id']});break;case'newTab':emit(util[_0xdd78('0x30')]('user:%s',_0x5c9c6b[_0xdd78('0x3e')]),_0xdd78('0x54'),{'uri':util[_0xdd78('0x30')](_0xdd78('0x55'),_0x4efaa4[_0xdd78('0x56')],_0x27e880['id'])});break;default:logger['error'](_0xdd78('0x57'));}})[_0xdd78('0x58')](function(_0x2f4ac0){logger[_0xdd78('0x59')]('[QUEUE]',JSON[_0xdd78('0x5a')](_0x2f4ac0));});};exports[_0xdd78('0x5b')]=function(_0x18e284,_0x3e1335,_0x8ba4e3,_0xb98d94,_0x450466,_0x58a7ef,_0x54ae93){var _0xaea8e9,_0x1a22e3,_0x589755,_0x546e74;_0x58a7ef[_0xdd78('0x49')]=intUtil[_0xdd78('0x4a')](_0x58a7ef[_0xdd78('0x49')]);_0x58a7ef[_0xdd78('0x44')]=intUtil[_0xdd78('0x4a')](_0x58a7ef[_0xdd78('0x44')]);if(_0x54ae93&&_0x54ae93[_0xdd78('0x5c')]&&_0x54ae93[_0xdd78('0x5c')]!==_0xdd78('0x5d')){logger[_0xdd78('0x21')](_0xdd78('0x5e'),_0xdd78('0x4b'));_0x3e1335[_0xdd78('0x4c')]=util[_0xdd78('0x30')](_0xdd78('0x4d'),_0x58a7ef[_0xdd78('0x49')],_0x3e1335[_0xdd78('0x4e')],md5(_0x3e1335['uniqueid']));}return getConnection(_0x58a7ef)[_0xdd78('0x1b')](function(_0x3790c6){_0x546e74=_0x3790c6;return getUser(_0x58a7ef,_0xb98d94[_0xdd78('0x5f')],_0x546e74);})[_0xdd78('0x1b')](function(_0x258e0c){_0xaea8e9=_0x258e0c;return getEndUser(_0x58a7ef,_0x8ba4e3,_0x3e1335[_0xdd78('0x60')],_0x3e1335[_0xdd78('0x61')],_0x546e74);})[_0xdd78('0x1b')](function(_0x20f8d3){_0x1a22e3=_0x20f8d3;return getTicket(_0x58a7ef,_0xaea8e9,_0x1a22e3,_0x8ba4e3,_0x3e1335,_0x8ba4e3['Fields'],_0x546e74,_0xdd78('0x5b'));})[_0xdd78('0x1b')](function(_0x599ca3){_0x589755=_0x599ca3;logger[_0xdd78('0x21')](_0xdd78('0x62'),_0x589755['id']);logger['info']('[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.',_0x589755['id'],_0xb98d94[_0xdd78('0x3e')],_0x58a7ef['type']);switch(_0x58a7ef['type']){case'integrationTab':emit(util['format'](_0xdd78('0x52'),_0xb98d94['name']),_0xdd78('0x53'),{'recordId':_0x589755['id']});break;case _0xdd78('0x63'):emit(util['format'](_0xdd78('0x52'),_0xb98d94[_0xdd78('0x3e')]),_0xdd78('0x54'),{'uri':util['format'](_0xdd78('0x55'),_0x546e74['instanceUrl'],_0x589755['id'])});break;default:logger[_0xdd78('0x59')](_0xdd78('0x5e'),_0xdd78('0x64'));}})[_0xdd78('0x58')](function(_0x3d0004){logger[_0xdd78('0x59')]('[OUTBOUND]',JSON[_0xdd78('0x5a')](_0x3d0004));});};exports[_0xdd78('0x65')]=function(_0x55a08f,_0x29df01,_0x160276,_0x537388,_0x59723a,_0x53d1b0){var _0x5e57fe,_0x531303,_0x177751,_0x47d537;_0x53d1b0[_0xdd78('0x49')]=intUtil[_0xdd78('0x4a')](_0x53d1b0['serverUrl']);_0x53d1b0[_0xdd78('0x44')]=intUtil[_0xdd78('0x4a')](_0x53d1b0[_0xdd78('0x44')]);if(_0x59723a&&_0x59723a[_0xdd78('0x66')]){logger[_0xdd78('0x21')]('['+_0x29df01['lastevent'][_0xdd78('0x67')]()+']',_0xdd78('0x4b'));_0x29df01[_0xdd78('0x4c')]=util['format'](_0xdd78('0x4d'),_0x53d1b0[_0xdd78('0x49')],_0x29df01[_0xdd78('0x4e')],md5(_0x29df01['uniqueid']));}else{_0x29df01[_0xdd78('0x4c')]='';}return getConnection(_0x53d1b0)[_0xdd78('0x1b')](function(_0x3a8971){_0x47d537=_0x3a8971;if(!_['isNil'](_0x537388)){return getUser(_0x53d1b0,_0x537388[_0xdd78('0x3e')],_0x47d537);}else{return getUser(_0x53d1b0,null,_0x47d537);}})[_0xdd78('0x1b')](function(_0x19e69b){_0x5e57fe=_0x19e69b;return getEndUser(_0x53d1b0,_0x160276,_0x29df01[_0xdd78('0x4f')],_0x29df01[_0xdd78('0x68')],_0x47d537);})[_0xdd78('0x1b')](function(_0x22ebf7){_0x531303=_0x22ebf7;return getTicket(_0x53d1b0,_0x5e57fe,_0x531303,_0x160276,_0x29df01,_0x160276[_0xdd78('0x50')],_0x47d537);})[_0xdd78('0x1b')](function(_0x44dfa2){_0x177751=_0x44dfa2;logger[_0xdd78('0x21')]('['+_0x29df01[_0xdd78('0x69')][_0xdd78('0x67')]()+_0xdd78('0x6a'),_0x177751['id']);logger[_0xdd78('0x21')]('['+_0x29df01[_0xdd78('0x69')]['toUpperCase']()+']\x20Integration\x20account\x20type\x20%s.',_0x53d1b0['type']);})[_0xdd78('0x58')](function(_0x51105f){logger['error']('['+_0x29df01['lastevent'][_0xdd78('0x67')]()+']',JSON[_0xdd78('0x5a')](_0x51105f));});};