Built motion from commit (unavailable).|2.5.0
[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 _0xb932=['abandoned','Displaying\x20task\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20Freshsales\x20integration','lodash','util','moment','bluebird','ioredis','./util','../../../../config/logger','freshsales','redis','defaults','localhost','GET','/api/selector/owners','headers','info','Getting\x20admin\x20information','users','length','email','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','Getting\x20user\x20list','agentEmail','userEmail','userId','User\x20found:','Admin\x20selected','message','/api/contacts/filters','Getting\x20contacts\x20filter','then','filters','forEach','name','All\x20Contacts','Getting\x20contact\x20list','/api/contacts/view/','Searching\x20contact\x20with\x20phone','contactNumber','contacts','find','work_number','endUserId','Contact\x20found:','Contact\x20created:','POST','format','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','Creating\x20new\x20task','Contact','add','ticketId','task','/contacts/','user:%s','emit','trigger:browser:url','Token\x20token=','remoteUri','stripTrailingSlash','serverUrl','username','outbound','destcalleridnum','calleridnum','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','[QUEUE]','Recording\x20is\x20enabled!','recordingFormat','none','[OUTBOUND]','recordingURL','The\x20ticket\x20ID\x20is:\x20%s'];(function(_0x34e79d,_0x1fb826){var _0x56afa8=function(_0x5177f4){while(--_0x5177f4){_0x34e79d['push'](_0x34e79d['shift']());}};_0x56afa8(++_0x1fb826);}(_0xb932,0x1a7));var _0x2b93=function(_0x44a3e1,_0xe3ee25){_0x44a3e1=_0x44a3e1-0x0;var _0x50c3f1=_0xb932[_0x44a3e1];return _0x50c3f1;};'use strict';var _=require(_0x2b93('0x0'));var rp=require('request-promise');var md5=require('md5');var util=require(_0x2b93('0x1'));var moment=require(_0x2b93('0x2'));var Promise=require(_0x2b93('0x3'));var Redis=require(_0x2b93('0x4'));var intUtil=require(_0x2b93('0x5'));var config=require('../../../../config/environment');var logger=require(_0x2b93('0x6'))(_0x2b93('0x7'));config[_0x2b93('0x8')]=_[_0x2b93('0x9')](config[_0x2b93('0x8')],{'host':_0x2b93('0xa'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x2b93('0x8')]));function getAdminId(_0x356e1a,_0x333917,_0x23af58,_0x1c6940){return new Promise(function(_0x390d2d,_0x1e5f74){var _0x56a7a2=![];var _0x15d36c={'method':_0x2b93('0xb'),'uri':_0x1c6940+_0x2b93('0xc'),'json':!![]};_0x15d36c[_0x2b93('0xd')]=_0x23af58;logger[_0x2b93('0xe')](_0x2b93('0xf'));return rp(_0x15d36c)['then'](function(_0x4fab3f){if(_0x4fab3f){var _0x5a4c74=_0x4fab3f[_0x2b93('0x10')];var _0x1d0706=null;for(_0x1d0706=0x0;_0x1d0706<_0x5a4c74[_0x2b93('0x11')];_0x1d0706++){if(_0x5a4c74[_0x1d0706][_0x2b93('0x12')]===_0x356e1a[_0x2b93('0x13')]){_0x356e1a[_0x2b93('0x14')]=_0x5a4c74[_0x1d0706]['id'];_0x56a7a2=!![];}}if(_0x56a7a2){logger['info'](_0x2b93('0x15'),_0x356e1a[_0x2b93('0x14')]);_0x390d2d(_0x356e1a);}else{_0x1e5f74({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x1e5f74({'statusCode':0x194,'message':_0x2b93('0x16')});}})[_0x2b93('0x17')](function(_0x35f10e){logger[_0x2b93('0x18')]('['+[_0x333917[_0x2b93('0x19')]()]+']',_0x35f10e['message']);_0x1e5f74(_0x35f10e);});});}function getUser(_0x22f38e,_0x34b9fe,_0x193a50){return function(_0x4d3bb8){return new Promise(function(_0x200540,_0x587772){var _0x161bfd={'method':_0x2b93('0xb'),'uri':_0x193a50+_0x2b93('0xc'),'json':!![]};_0x161bfd[_0x2b93('0xd')]=_0x34b9fe;logger['info'](_0x2b93('0x1a'));return rp(_0x161bfd)['then'](function(_0xe51a3c){if(_0xe51a3c){var _0x203d8b=_0xe51a3c[_0x2b93('0x10')];var _0x628444=![];var _0x514048=null;if(_0x4d3bb8[_0x2b93('0x1b')]!==null){logger[_0x2b93('0xe')]('Getting\x20user\x20with\x20email',_0x4d3bb8[_0x2b93('0x1b')]);_0x4d3bb8[_0x2b93('0x1c')]=_0x4d3bb8[_0x2b93('0x1b')];for(_0x514048=0x0;_0x514048<_0x203d8b[_0x2b93('0x11')];_0x514048++){if(_0x203d8b[_0x514048][_0x2b93('0x12')]===_0x4d3bb8[_0x2b93('0x1b')]){_0x628444=!![];_0x4d3bb8[_0x2b93('0x1d')]=_0x203d8b[_0x514048]['id'];logger[_0x2b93('0xe')](_0x2b93('0x1e'),_0x4d3bb8[_0x2b93('0x1d')]);}}}if(!_0x628444){logger['info'](_0x2b93('0x1f'));_0x4d3bb8[_0x2b93('0x1c')]=_0x4d3bb8[_0x2b93('0x13')];_0x4d3bb8[_0x2b93('0x1d')]=_0x4d3bb8[_0x2b93('0x14')];_0x628444=!![];}if(_0x628444){_0x200540(_0x4d3bb8);}else{_0x587772({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x587772({'statusCode':0x194,'message':_0x2b93('0x16')});}})['catch'](function(_0x4ac782){logger[_0x2b93('0x18')]('['+[_0x22f38e[_0x2b93('0x19')]()]+']',_0x4ac782[_0x2b93('0x20')]);_0x587772(_0x4ac782);});});};}function getEndUser(_0x4d4ed2,_0x237482,_0x5cc54b){return function(_0x1e6c6f){return new Promise(function(_0xb7727e,_0x3041a9){var _0x4bdc3c=0x0;var _0xe8db8f={'method':_0x2b93('0xb'),'uri':_0x5cc54b+_0x2b93('0x21'),'json':!![]};_0xe8db8f[_0x2b93('0xd')]=_0x237482;logger[_0x2b93('0xe')](_0x2b93('0x22'));return rp(_0xe8db8f)[_0x2b93('0x23')](function(_0x4fda25){_0x4fda25[_0x2b93('0x24')][_0x2b93('0x25')](function(_0x6a0ef0){if(_0x6a0ef0[_0x2b93('0x26')]===_0x2b93('0x27')){_0x4bdc3c=_0x6a0ef0['id'];}});})[_0x2b93('0x23')](function(){logger['info'](_0x2b93('0x28'));var _0x2cf3e3={'method':_0x2b93('0xb'),'uri':_0x5cc54b+_0x2b93('0x29')+_0x4bdc3c,'json':!![]};_0x2cf3e3[_0x2b93('0xd')]=_0x237482;return rp(_0x2cf3e3);})[_0x2b93('0x23')](function(_0x29a3e0){logger['info'](_0x2b93('0x2a'),_0x1e6c6f[_0x2b93('0x2b')]);if(_0x29a3e0[_0x2b93('0x2c')][_0x2b93('0x11')]>0x0){var _0x38a13b=_[_0x2b93('0x2d')](_0x29a3e0[_0x2b93('0x2c')],function(_0x1d43de){if(_0x1d43de[_0x2b93('0x2e')]===_0x1e6c6f[_0x2b93('0x2b')]||_0x1d43de['mobile_number']===_0x1e6c6f[_0x2b93('0x2b')]){return _0x1d43de;}});if(_0x38a13b){_0x1e6c6f[_0x2b93('0x2f')]=_0x38a13b['id'];logger[_0x2b93('0xe')](_0x2b93('0x30'),_0x1e6c6f['endUserId']);_0xb7727e(_0x1e6c6f);}else{return createEndUser(_0x1e6c6f,_0x4d4ed2,_0x237482,_0x5cc54b)[_0x2b93('0x23')](function(_0x285030){logger[_0x2b93('0xe')](_0x2b93('0x31'),_0x1e6c6f['endUserId']);_0xb7727e(_0x285030);});}}else{return createEndUser(_0x1e6c6f,_0x4d4ed2,_0x237482,_0x5cc54b)[_0x2b93('0x23')](function(_0x153f36){logger['info'](_0x2b93('0x31'),_0x1e6c6f[_0x2b93('0x2f')]);_0xb7727e(_0x153f36);});}})['catch'](function(_0x5a8f18){throw new Error(_0x5a8f18[_0x2b93('0x20')]);});});};}function createEndUser(_0x2134b6,_0xa9a872,_0x389caa,_0x57d0be){return new Promise(function(_0x301024,_0x35808f){var _0x12df0b=moment();var _0x2759da={'method':_0x2b93('0x32'),'uri':_0x57d0be+'/api/contacts','body':{'contact':{'last_name':_0x2134b6[_0x2b93('0x2b')],'work_number':_0x2134b6[_0x2b93('0x2b')],'mobile_number':_0x2134b6[_0x2b93('0x2b')],'owner_id':_0x2134b6[_0x2b93('0x1d')],'created_at':_0x12df0b[_0x2b93('0x33')](_0x2b93('0x34'))}},'json':!![]};_0x2759da[_0x2b93('0xd')]=_0x389caa;logger[_0x2b93('0xe')](_0x2b93('0x35'));return rp(_0x2759da)[_0x2b93('0x23')](function(_0x286bd8){_0x2134b6[_0x2b93('0x2f')]=_0x286bd8['contact']['id'];_0x301024(_0x2134b6);})['catch'](function(_0x51007f){logger[_0x2b93('0x18')]('['+[_0xa9a872['toUpperCase']()]+']',_0x51007f['message']);_0x35808f(_0x51007f['message']);});});}function getTicket(_0x390cb9,_0x2e2774,_0x277f17,_0x16c4c1,_0x574c2c){return function(_0x1214da){logger['info'](_0x2b93('0x36'));return new Promise(function(_0x3a7f12,_0x43e60a){var _0x70cf42=moment();var _0x25e376={'method':_0x2b93('0x32'),'uri':_0x277f17+'/api/tasks','body':{'title':intUtil['getString'](_0x16c4c1['Subjects'],_0x574c2c,'\x20'),'description':intUtil['getString'](_0x16c4c1['Descriptions'],_0x574c2c,'\x0a'),'owner_id':_0x1214da[_0x2b93('0x1d')],'creater_id':_0x1214da['adminId'],'targetable_id':_0x1214da[_0x2b93('0x2f')],'targetable_type':_0x2b93('0x37'),'created_at':_0x70cf42[_0x2b93('0x33')](_0x2b93('0x34')),'due_date':_0x70cf42[_0x2b93('0x38')](0x1e,'m')['format'](_0x2b93('0x34'))},'json':!![]};_0x25e376[_0x2b93('0xd')]=_0x2e2774;return rp(_0x25e376)['then'](function(_0x2b23e5){_0x1214da[_0x2b93('0x39')]=_0x2b23e5[_0x2b93('0x3a')]['id'];logger[_0x2b93('0xe')]('Task\x20created:',_0x1214da[_0x2b93('0x39')]);_0x3a7f12(_0x1214da);})[_0x2b93('0x17')](function(_0x279209){logger[_0x2b93('0x18')]('['+[_0x390cb9['toUpperCase']()]+']',_0x279209[_0x2b93('0x20')]);_0x43e60a(_0x279209[_0x2b93('0x20')]);});});};}function emit(_0x3f9e99,_0x11a12b,_0x21bdb4){var _0x2b8485={'uri':_0x3f9e99+_0x2b93('0x3b')+_0x21bdb4};io['to'](util[_0x2b93('0x33')](_0x2b93('0x3c'),_0x11a12b))[_0x2b93('0x3d')](_0x2b93('0x3e'),_0x2b8485);}exports['cs']=function(_0x54dd33,_0x11a3ee,_0x20ce41,_0x111e65,_0x3093dc,_0x563c40,_0x5d501b,_0x595b29){var _0x42d6d7={};var _0x4f6364={'Authorization':_0x2b93('0x3f')+_0x563c40['apiKey']};_0x563c40[_0x2b93('0x40')]=intUtil[_0x2b93('0x41')](_0x563c40[_0x2b93('0x40')]);_0x563c40[_0x2b93('0x42')]=intUtil[_0x2b93('0x41')](_0x563c40[_0x2b93('0x42')]);var _0x2d81bf=_0x563c40['remoteUri'];_0x42d6d7[_0x2b93('0x13')]=_0x563c40[_0x2b93('0x43')];_0x42d6d7[_0x2b93('0x2b')]=_0x595b29['toLowerCase']()===_0x2b93('0x44')?_0x11a3ee[_0x2b93('0x45')]:_0x11a3ee[_0x2b93('0x46')];_0x42d6d7['callDirection']=_0x595b29===_0x2b93('0x47')||_0x595b29==='abandoned'?_0x2b93('0x47'):_0x2b93('0x44');if(_0x111e65){_0x42d6d7[_0x2b93('0x1b')]=_0x111e65['email'];}var _0x28ce3f=util[_0x2b93('0x33')](_0x2b93('0x48'),_0x563c40[_0x2b93('0x42')],_0x11a3ee[_0x2b93('0x49')],md5(_0x11a3ee[_0x2b93('0x49')]));if(_0x3093dc&&_0x3093dc['monitor_format']){logger[_0x2b93('0xe')](_0x2b93('0x4a'),_0x2b93('0x4b'));_0x11a3ee['recordingURL']=_0x28ce3f;}else if(_0x5d501b&&_0x5d501b[_0x2b93('0x4c')]&&_0x5d501b[_0x2b93('0x4c')]!==_0x2b93('0x4d')){logger['info'](_0x2b93('0x4e'),_0x2b93('0x4b'));_0x11a3ee[_0x2b93('0x4f')]=_0x28ce3f;}else{_0x11a3ee[_0x2b93('0x4f')]='';}return getAdminId(_0x42d6d7,_0x595b29,_0x4f6364,_0x2d81bf)['then'](getUser(_0x595b29,_0x4f6364,_0x2d81bf))[_0x2b93('0x23')](getEndUser(_0x595b29,_0x4f6364,_0x2d81bf))[_0x2b93('0x23')](getTicket(_0x595b29,_0x4f6364,_0x2d81bf,_0x20ce41,_0x11a3ee))['then'](function(_0x257494){logger['info'](util[_0x2b93('0x33')](_0x2b93('0x50'),_0x257494[_0x2b93('0x39')]));if(_0x595b29!==_0x2b93('0x51')){logger['info']('['+[_0x595b29[_0x2b93('0x19')]()]+']',_0x2b93('0x52'));emit(_0x2d81bf,_0x111e65[_0x2b93('0x26')],_0x257494[_0x2b93('0x2f')]);}})[_0x2b93('0x17')](function(_0x530802){logger[_0x2b93('0x18')]('['+[_0x595b29['toUpperCase']()]+_0x2b93('0x53'),util['inspect'](_0x530802,{'showHidden':!![],'depth':null}));});};