Built motion from commit (unavailable).|2.5.24
[motion2.git] / server / services / ami / trigger / integration / freshsales.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 _0xd8af=['adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','GET','/api/selector/owners','then','agentEmail','Getting\x20user\x20with\x20email','userEmail','length','email','User\x20found:','userId','Admin\x20selected','/api/lookup?q=','&entities=contact','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','Contact\x20found\x20mobile_number:','endUserId','Contact\x20found\x20work_number:','Contact\x20created:','POST','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','/api/tasks','getString','Subjects','Descriptions','Contact','task','ticketId','/contacts/','user:%s','emit','trigger:browser:url','apiKey','remoteUri','stripTrailingSlash','serverUrl','username','toLowerCase','outbound','destcalleridnum','callDirection','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingFormat','none','recordingURL','The\x20ticket\x20ID\x20is:\x20%s','name','inspect','lodash','request-promise','md5','util','moment','ioredis','../../../../config/environment','../../../../config/logger','freshsales','defaults','localhost','socket.io-emitter','redis','headers','info','Getting\x20admin\x20information','users','adminEmail'];(function(_0x58f85d,_0x4ac08f){var _0x13d41e=function(_0x387f71){while(--_0x387f71){_0x58f85d['push'](_0x58f85d['shift']());}};_0x13d41e(++_0x4ac08f);}(_0xd8af,0x18d));var _0xfd8a=function(_0xe93e0,_0x454400){_0xe93e0=_0xe93e0-0x0;var _0x24c2a2=_0xd8af[_0xe93e0];return _0x24c2a2;};'use strict';var _=require(_0xfd8a('0x0'));var rp=require(_0xfd8a('0x1'));var md5=require(_0xfd8a('0x2'));var util=require(_0xfd8a('0x3'));var moment=require(_0xfd8a('0x4'));var Promise=require('bluebird');var Redis=require(_0xfd8a('0x5'));var intUtil=require('./util');var config=require(_0xfd8a('0x6'));var logger=require(_0xfd8a('0x7'))(_0xfd8a('0x8'));config['redis']=_[_0xfd8a('0x9')](config['redis'],{'host':_0xfd8a('0xa'),'port':0x18eb});var io=require(_0xfd8a('0xb'))(new Redis(config[_0xfd8a('0xc')]));function getAdminId(_0x1d1fb4,_0x5d2f8d,_0x39c7e0,_0x28b988){return new Promise(function(_0x2c7d72,_0x25cab2){var _0x203e62=![];var _0xc2a4c7={'method':'GET','uri':_0x28b988+'/api/selector/owners','json':!![]};_0xc2a4c7[_0xfd8a('0xd')]=_0x39c7e0;logger[_0xfd8a('0xe')](_0xfd8a('0xf'));return rp(_0xc2a4c7)['then'](function(_0x4f38cc){if(_0x4f38cc){var _0x4d4011=_0x4f38cc[_0xfd8a('0x10')];var _0x29469f=null;for(_0x29469f=0x0;_0x29469f<_0x4d4011['length'];_0x29469f++){if(_0x4d4011[_0x29469f]['email']===_0x1d1fb4[_0xfd8a('0x11')]){_0x1d1fb4[_0xfd8a('0x12')]=_0x4d4011[_0x29469f]['id'];_0x203e62=!![];}}if(_0x203e62){logger[_0xfd8a('0xe')](_0xfd8a('0x13'),_0x1d1fb4[_0xfd8a('0x12')]);_0x2c7d72(_0x1d1fb4);}else{_0x25cab2({'statusCode':0x194,'message':_0xfd8a('0x14')});}}else{_0x25cab2({'statusCode':0x194,'message':_0xfd8a('0x14')});}})[_0xfd8a('0x15')](function(_0xbace21){logger[_0xfd8a('0x16')]('['+[_0x5d2f8d[_0xfd8a('0x17')]()]+']',_0xbace21[_0xfd8a('0x18')]);_0x25cab2(_0xbace21);});});}function getUser(_0x215205,_0x25eed2,_0x28137a){return function(_0xf44ccd){return new Promise(function(_0x97ec09,_0x1d5e85){var _0x45428e={'method':_0xfd8a('0x19'),'uri':_0x28137a+_0xfd8a('0x1a'),'json':!![]};_0x45428e[_0xfd8a('0xd')]=_0x25eed2;logger[_0xfd8a('0xe')]('Getting\x20user\x20list');return rp(_0x45428e)[_0xfd8a('0x1b')](function(_0x9eade2){if(_0x9eade2){var _0x29c8e5=_0x9eade2['users'];var _0x34ff05=![];var _0x5cf865=null;if(_0xf44ccd[_0xfd8a('0x1c')]!==null){logger['info'](_0xfd8a('0x1d'),_0xf44ccd[_0xfd8a('0x1c')]);_0xf44ccd[_0xfd8a('0x1e')]=_0xf44ccd[_0xfd8a('0x1c')];for(_0x5cf865=0x0;_0x5cf865<_0x29c8e5[_0xfd8a('0x1f')];_0x5cf865++){if(_0x29c8e5[_0x5cf865][_0xfd8a('0x20')]===_0xf44ccd[_0xfd8a('0x1c')]){_0x34ff05=!![];_0xf44ccd['userId']=_0x29c8e5[_0x5cf865]['id'];logger[_0xfd8a('0xe')](_0xfd8a('0x21'),_0xf44ccd[_0xfd8a('0x22')]);}}}if(!_0x34ff05){logger[_0xfd8a('0xe')](_0xfd8a('0x23'));_0xf44ccd[_0xfd8a('0x1e')]=_0xf44ccd[_0xfd8a('0x11')];_0xf44ccd[_0xfd8a('0x22')]=_0xf44ccd[_0xfd8a('0x12')];_0x34ff05=!![];}if(_0x34ff05){_0x97ec09(_0xf44ccd);}else{_0x1d5e85({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x1d5e85({'statusCode':0x194,'message':_0xfd8a('0x14')});}})['catch'](function(_0x2af3c8){logger[_0xfd8a('0x16')]('['+[_0x215205[_0xfd8a('0x17')]()]+']',_0x2af3c8[_0xfd8a('0x18')]);_0x1d5e85(_0x2af3c8);});});};}function searchContact(_0x3355a6,_0x25417b,_0x23634c,_0x66c047){return new Promise(function(_0x4373ca,_0x4a5926){var _0x266f19={'method':_0xfd8a('0x19'),'headers':_0x25417b,'uri':_0x3355a6+_0xfd8a('0x24')+_0x66c047+'&f='+_0x23634c+_0xfd8a('0x25'),'json':!![]};rp(_0x266f19)[_0xfd8a('0x1b')](function(_0x321a51){var _0x214b72=_['find'](_0x321a51['contacts']['contacts'],[_0x23634c,_0x66c047]);_0x4373ca(_0x214b72);})[_0xfd8a('0x15')](function(_0x11f9e8){_0x4a5926(_0x11f9e8);});});}function getEndUser(_0x28404b,_0x50420f,_0x30d8e7){return function(_0x4fcbe4){return new Promise(function(_0x54a807,_0xb7b183){logger[_0xfd8a('0xe')](util[_0xfd8a('0x26')](_0xfd8a('0x27'),_0x4fcbe4[_0xfd8a('0x28')]));searchContact(_0x30d8e7,_0x50420f,_0xfd8a('0x29'),_0x4fcbe4[_0xfd8a('0x28')])[_0xfd8a('0x1b')](function(_0x5f4d2c){if(_0x5f4d2c){_0x4fcbe4['endUserId']=_0x5f4d2c['id'];logger[_0xfd8a('0xe')](_0xfd8a('0x2a'),_0x4fcbe4[_0xfd8a('0x2b')]);return _0x54a807(_0x4fcbe4);}searchContact(_0x30d8e7,_0x50420f,'work_number',_0x4fcbe4[_0xfd8a('0x28')])['then'](function(_0x32820b){if(_0x32820b){_0x4fcbe4[_0xfd8a('0x2b')]=_0x32820b['id'];logger[_0xfd8a('0xe')](_0xfd8a('0x2c'),_0x4fcbe4['endUserId']);return _0x54a807(_0x4fcbe4);}createEndUser(_0x4fcbe4,_0x28404b,_0x50420f,_0x30d8e7)[_0xfd8a('0x1b')](function(_0x218396){logger[_0xfd8a('0xe')](_0xfd8a('0x2d'),_0x218396[_0xfd8a('0x2b')]);return _0x54a807(_0x218396);});});})['catch'](function(_0x5903e7){_0xb7b183(_0x5903e7);});});};}function createEndUser(_0xf2e139,_0x987089,_0x3ad323,_0x4ddb0b){return new Promise(function(_0xac5b56,_0x4ee55e){var _0x4b705b=moment();var _0x4e7396={'method':_0xfd8a('0x2e'),'uri':_0x4ddb0b+'/api/contacts','body':{'contact':{'last_name':_0xf2e139[_0xfd8a('0x28')],'work_number':_0xf2e139[_0xfd8a('0x28')],'mobile_number':_0xf2e139[_0xfd8a('0x28')],'owner_id':_0xf2e139[_0xfd8a('0x22')],'created_at':_0x4b705b[_0xfd8a('0x26')](_0xfd8a('0x2f'))}},'json':!![]};_0x4e7396[_0xfd8a('0xd')]=_0x3ad323;logger['info'](_0xfd8a('0x30'));return rp(_0x4e7396)[_0xfd8a('0x1b')](function(_0x13ddd7){_0xf2e139[_0xfd8a('0x2b')]=_0x13ddd7[_0xfd8a('0x31')]['id'];_0xac5b56(_0xf2e139);})['catch'](function(_0x11eedf){logger[_0xfd8a('0x16')]('['+[_0x987089[_0xfd8a('0x17')]()]+']',_0x11eedf[_0xfd8a('0x18')]);_0x4ee55e(_0x11eedf[_0xfd8a('0x18')]);});});}function getTicket(_0xd1fb83,_0x221c35,_0x3f2be1,_0x197dff,_0xfcf9c8){return function(_0x17ad7b){logger[_0xfd8a('0xe')]('Creating\x20new\x20task');return new Promise(function(_0x1b90da,_0x391f3c){var _0x217075=moment();var _0x572091={'method':_0xfd8a('0x2e'),'uri':_0x3f2be1+_0xfd8a('0x32'),'body':{'title':intUtil[_0xfd8a('0x33')](_0x197dff[_0xfd8a('0x34')],_0xfcf9c8,'\x20'),'description':intUtil[_0xfd8a('0x33')](_0x197dff[_0xfd8a('0x35')],_0xfcf9c8,'\x0a'),'owner_id':_0x17ad7b[_0xfd8a('0x22')],'creater_id':_0x17ad7b[_0xfd8a('0x12')],'targetable_id':_0x17ad7b[_0xfd8a('0x2b')],'targetable_type':_0xfd8a('0x36'),'created_at':_0x217075[_0xfd8a('0x26')](_0xfd8a('0x2f')),'due_date':_0x217075['add'](0x1e,'m')[_0xfd8a('0x26')](_0xfd8a('0x2f'))},'json':!![]};_0x572091[_0xfd8a('0xd')]=_0x221c35;return rp(_0x572091)[_0xfd8a('0x1b')](function(_0x45ad19){_0x17ad7b['ticketId']=_0x45ad19[_0xfd8a('0x37')]['id'];logger['info']('Task\x20created:',_0x17ad7b[_0xfd8a('0x38')]);_0x1b90da(_0x17ad7b);})[_0xfd8a('0x15')](function(_0x2b9122){logger[_0xfd8a('0x16')]('['+[_0xd1fb83[_0xfd8a('0x17')]()]+']',_0x2b9122['message']);_0x391f3c(_0x2b9122[_0xfd8a('0x18')]);});});};}function emit(_0x2d1968,_0x1729e1,_0x39bcab){var _0x409481={'uri':_0x2d1968+_0xfd8a('0x39')+_0x39bcab};io['to'](util[_0xfd8a('0x26')](_0xfd8a('0x3a'),_0x1729e1))[_0xfd8a('0x3b')](_0xfd8a('0x3c'),_0x409481);}exports['cs']=function(_0x2ba888,_0x54034a,_0x2c4bbd,_0x3aa069,_0x57b7bf,_0x1b3ee2,_0x471cd5,_0x145194){var _0x227ee2={};var _0x3b0848={'Authorization':'Token\x20token='+_0x1b3ee2[_0xfd8a('0x3d')]};_0x1b3ee2[_0xfd8a('0x3e')]=intUtil[_0xfd8a('0x3f')](_0x1b3ee2['remoteUri']);_0x1b3ee2[_0xfd8a('0x40')]=intUtil[_0xfd8a('0x3f')](_0x1b3ee2[_0xfd8a('0x40')]);var _0x5e21ca=_0x1b3ee2[_0xfd8a('0x3e')];_0x227ee2[_0xfd8a('0x11')]=_0x1b3ee2[_0xfd8a('0x41')];_0x227ee2[_0xfd8a('0x28')]=_0x145194[_0xfd8a('0x42')]()===_0xfd8a('0x43')?_0x54034a[_0xfd8a('0x44')]:_0x54034a['calleridnum'];_0x227ee2[_0xfd8a('0x45')]=_0x145194===_0xfd8a('0x46')||_0x145194===_0xfd8a('0x47')?_0xfd8a('0x46'):_0xfd8a('0x43');if(_0x3aa069){_0x227ee2[_0xfd8a('0x1c')]=_0x3aa069[_0xfd8a('0x20')];}var _0x232f89=util[_0xfd8a('0x26')](_0xfd8a('0x48'),_0x1b3ee2[_0xfd8a('0x40')],_0x54034a[_0xfd8a('0x49')],md5(_0x54034a[_0xfd8a('0x49')]));if(_0x57b7bf&&_0x57b7bf[_0xfd8a('0x4a')]){logger[_0xfd8a('0xe')](_0xfd8a('0x4b'),_0xfd8a('0x4c'));_0x54034a['recordingURL']=_0x232f89;}else if(_0x471cd5&&_0x471cd5['recordingFormat']&&_0x471cd5[_0xfd8a('0x4d')]!==_0xfd8a('0x4e')){logger[_0xfd8a('0xe')]('[OUTBOUND]','Recording\x20is\x20enabled!');_0x54034a['recordingURL']=_0x232f89;}else{_0x54034a[_0xfd8a('0x4f')]='';}return getAdminId(_0x227ee2,_0x145194,_0x3b0848,_0x5e21ca)[_0xfd8a('0x1b')](getUser(_0x145194,_0x3b0848,_0x5e21ca))[_0xfd8a('0x1b')](getEndUser(_0x145194,_0x3b0848,_0x5e21ca))['then'](getTicket(_0x145194,_0x3b0848,_0x5e21ca,_0x2c4bbd,_0x54034a))['then'](function(_0x3a9a24){logger['info'](util[_0xfd8a('0x26')](_0xfd8a('0x50'),_0x3a9a24[_0xfd8a('0x38')]));if(_0x145194!=='unmanaged'){logger['info']('['+[_0x145194[_0xfd8a('0x17')]()]+']','Displaying\x20task\x20in\x20a\x20new\x20tab...');emit(_0x5e21ca,_0x3aa069[_0xfd8a('0x51')],_0x3a9a24[_0xfd8a('0x2b')]);}})[_0xfd8a('0x15')](function(_0x58ca71){logger[_0xfd8a('0x16')]('['+[_0x145194['toUpperCase']()]+']\x20Error\x20running\x20Freshsales\x20integration',util[_0xfd8a('0x52')](_0x58ca71,{'showHidden':!![],'depth':null}));});};