Built motion from commit (unavailable).|2.5.21
[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 _0x23f4=['Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','agentEmail','userEmail','length','userId','User\x20found:','Admin\x20selected','/api/lookup?q=','&entities=contact','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','endUserId','Contact\x20found\x20mobile_number:','work_number','Contact\x20created:','POST','/api/contacts','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','Creating\x20new\x20task','/api/tasks','getString','Subjects','Descriptions','add','ticketId','task','Task\x20created:','/contacts/','user:%s','emit','trigger:browser:url','Token\x20token=','apiKey','stripTrailingSlash','serverUrl','remoteUri','username','toLowerCase','destcalleridnum','calleridnum','callDirection','queue','unmanaged','outbound','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','[OUTBOUND]','Displaying\x20task\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20Freshsales\x20integration','inspect','request-promise','moment','bluebird','ioredis','./util','../../../../config/environment','../../../../config/logger','freshsales','redis','defaults','localhost','socket.io-emitter','GET','/api/selector/owners','headers','info','then','users','email','adminEmail','adminId','Admin\x20found:'];(function(_0xf3c800,_0x152d3d){var _0x40eee9=function(_0x24b3a8){while(--_0x24b3a8){_0xf3c800['push'](_0xf3c800['shift']());}};_0x40eee9(++_0x152d3d);}(_0x23f4,0x1ee));var _0x423f=function(_0x19d6fe,_0x26ef55){_0x19d6fe=_0x19d6fe-0x0;var _0x467fa7=_0x23f4[_0x19d6fe];return _0x467fa7;};'use strict';var _=require('lodash');var rp=require(_0x423f('0x0'));var md5=require('md5');var util=require('util');var moment=require(_0x423f('0x1'));var Promise=require(_0x423f('0x2'));var Redis=require(_0x423f('0x3'));var intUtil=require(_0x423f('0x4'));var config=require(_0x423f('0x5'));var logger=require(_0x423f('0x6'))(_0x423f('0x7'));config[_0x423f('0x8')]=_[_0x423f('0x9')](config['redis'],{'host':_0x423f('0xa'),'port':0x18eb});var io=require(_0x423f('0xb'))(new Redis(config['redis']));function getAdminId(_0x727b4e,_0x416fb1,_0xe4b068,_0x50301a){return new Promise(function(_0x5b5ee6,_0x4b8a90){var _0x4143a0=![];var _0x481c41={'method':_0x423f('0xc'),'uri':_0x50301a+_0x423f('0xd'),'json':!![]};_0x481c41[_0x423f('0xe')]=_0xe4b068;logger[_0x423f('0xf')]('Getting\x20admin\x20information');return rp(_0x481c41)[_0x423f('0x10')](function(_0x125f2c){if(_0x125f2c){var _0x3b6a1c=_0x125f2c[_0x423f('0x11')];var _0x216360=null;for(_0x216360=0x0;_0x216360<_0x3b6a1c['length'];_0x216360++){if(_0x3b6a1c[_0x216360][_0x423f('0x12')]===_0x727b4e[_0x423f('0x13')]){_0x727b4e[_0x423f('0x14')]=_0x3b6a1c[_0x216360]['id'];_0x4143a0=!![];}}if(_0x4143a0){logger[_0x423f('0xf')](_0x423f('0x15'),_0x727b4e[_0x423f('0x14')]);_0x5b5ee6(_0x727b4e);}else{_0x4b8a90({'statusCode':0x194,'message':_0x423f('0x16')});}}else{_0x4b8a90({'statusCode':0x194,'message':_0x423f('0x16')});}})[_0x423f('0x17')](function(_0x235c86){logger[_0x423f('0x18')]('['+[_0x416fb1[_0x423f('0x19')]()]+']',_0x235c86[_0x423f('0x1a')]);_0x4b8a90(_0x235c86);});});}function getUser(_0x1fef4d,_0x9d1487,_0x3ed5ce){return function(_0x3fd56d){return new Promise(function(_0x34e968,_0x26b6d1){var _0x5424e6={'method':_0x423f('0xc'),'uri':_0x3ed5ce+'/api/selector/owners','json':!![]};_0x5424e6['headers']=_0x9d1487;logger[_0x423f('0xf')]('Getting\x20user\x20list');return rp(_0x5424e6)[_0x423f('0x10')](function(_0xd7b80e){if(_0xd7b80e){var _0x4f6960=_0xd7b80e[_0x423f('0x11')];var _0x1fc317=![];var _0x56c21e=null;if(_0x3fd56d[_0x423f('0x1b')]!==null){logger[_0x423f('0xf')]('Getting\x20user\x20with\x20email',_0x3fd56d[_0x423f('0x1b')]);_0x3fd56d[_0x423f('0x1c')]=_0x3fd56d['agentEmail'];for(_0x56c21e=0x0;_0x56c21e<_0x4f6960[_0x423f('0x1d')];_0x56c21e++){if(_0x4f6960[_0x56c21e]['email']===_0x3fd56d[_0x423f('0x1b')]){_0x1fc317=!![];_0x3fd56d[_0x423f('0x1e')]=_0x4f6960[_0x56c21e]['id'];logger[_0x423f('0xf')](_0x423f('0x1f'),_0x3fd56d[_0x423f('0x1e')]);}}}if(!_0x1fc317){logger[_0x423f('0xf')](_0x423f('0x20'));_0x3fd56d[_0x423f('0x1c')]=_0x3fd56d[_0x423f('0x13')];_0x3fd56d[_0x423f('0x1e')]=_0x3fd56d[_0x423f('0x14')];_0x1fc317=!![];}if(_0x1fc317){_0x34e968(_0x3fd56d);}else{_0x26b6d1({'statusCode':0x194,'message':_0x423f('0x16')});}}else{_0x26b6d1({'statusCode':0x194,'message':_0x423f('0x16')});}})[_0x423f('0x17')](function(_0x4a98f2){logger[_0x423f('0x18')]('['+[_0x1fef4d[_0x423f('0x19')]()]+']',_0x4a98f2[_0x423f('0x1a')]);_0x26b6d1(_0x4a98f2);});});};}function searchContact(_0x593f9d,_0x4fc44d,_0x30a9bc,_0x496c25){return new Promise(function(_0x323c61,_0x4c2f21){var _0x5882ed={'method':_0x423f('0xc'),'headers':_0x4fc44d,'uri':_0x593f9d+_0x423f('0x21')+_0x496c25+'&f='+_0x30a9bc+_0x423f('0x22'),'json':!![]};rp(_0x5882ed)[_0x423f('0x10')](function(_0x3022a5){var _0x1da775=_['find'](_0x3022a5[_0x423f('0x23')][_0x423f('0x23')],[_0x30a9bc,_0x496c25]);_0x323c61(_0x1da775);})[_0x423f('0x17')](function(_0x15c0e8){_0x4c2f21(_0x15c0e8);});});}function getEndUser(_0x5616ab,_0x6145ff,_0x150846){return function(_0x200cfa){return new Promise(function(_0x8e7bcb,_0x341728){logger[_0x423f('0xf')](util[_0x423f('0x24')](_0x423f('0x25'),_0x200cfa[_0x423f('0x26')]));searchContact(_0x150846,_0x6145ff,_0x423f('0x27'),_0x200cfa['contactNumber'])[_0x423f('0x10')](function(_0x20377b){if(_0x20377b){_0x200cfa[_0x423f('0x28')]=_0x20377b['id'];logger['info'](_0x423f('0x29'),_0x200cfa['endUserId']);return _0x8e7bcb(_0x200cfa);}searchContact(_0x150846,_0x6145ff,_0x423f('0x2a'),_0x200cfa[_0x423f('0x26')])[_0x423f('0x10')](function(_0x40ee34){if(_0x40ee34){_0x200cfa[_0x423f('0x28')]=_0x40ee34['id'];logger['info']('Contact\x20found\x20work_number:',_0x200cfa[_0x423f('0x28')]);return _0x8e7bcb(_0x200cfa);}createEndUser(_0x200cfa,_0x5616ab,_0x6145ff,_0x150846)[_0x423f('0x10')](function(_0x239a49){logger[_0x423f('0xf')](_0x423f('0x2b'),_0x239a49[_0x423f('0x28')]);return _0x8e7bcb(_0x239a49);});});})[_0x423f('0x17')](function(_0x183665){_0x341728(_0x183665);});});};}function createEndUser(_0xd99eb0,_0x2bc0b9,_0x3aeb17,_0x38086d){return new Promise(function(_0x8ffb84,_0x4f6fdf){var _0x5bd9b2=moment();var _0x382f91={'method':_0x423f('0x2c'),'uri':_0x38086d+_0x423f('0x2d'),'body':{'contact':{'last_name':_0xd99eb0[_0x423f('0x26')],'work_number':_0xd99eb0[_0x423f('0x26')],'mobile_number':_0xd99eb0['contactNumber'],'owner_id':_0xd99eb0[_0x423f('0x1e')],'created_at':_0x5bd9b2[_0x423f('0x24')](_0x423f('0x2e'))}},'json':!![]};_0x382f91[_0x423f('0xe')]=_0x3aeb17;logger[_0x423f('0xf')](_0x423f('0x2f'));return rp(_0x382f91)[_0x423f('0x10')](function(_0x1d280f){_0xd99eb0[_0x423f('0x28')]=_0x1d280f[_0x423f('0x30')]['id'];_0x8ffb84(_0xd99eb0);})['catch'](function(_0x55e279){logger[_0x423f('0x18')]('['+[_0x2bc0b9[_0x423f('0x19')]()]+']',_0x55e279[_0x423f('0x1a')]);_0x4f6fdf(_0x55e279[_0x423f('0x1a')]);});});}function getTicket(_0x2316e8,_0x20660e,_0x56b564,_0x36ad04,_0x2af0bf){return function(_0x44e3a7){logger[_0x423f('0xf')](_0x423f('0x31'));return new Promise(function(_0x69e312,_0x21b720){var _0x1919aa=moment();var _0x518443={'method':_0x423f('0x2c'),'uri':_0x56b564+_0x423f('0x32'),'body':{'title':intUtil[_0x423f('0x33')](_0x36ad04[_0x423f('0x34')],_0x2af0bf,'\x20'),'description':intUtil[_0x423f('0x33')](_0x36ad04[_0x423f('0x35')],_0x2af0bf,'\x0a'),'owner_id':_0x44e3a7[_0x423f('0x1e')],'creater_id':_0x44e3a7[_0x423f('0x14')],'targetable_id':_0x44e3a7[_0x423f('0x28')],'targetable_type':'Contact','created_at':_0x1919aa[_0x423f('0x24')]('YYYY-MM-DDTHH:mm:ss'),'due_date':_0x1919aa[_0x423f('0x36')](0x1e,'m')[_0x423f('0x24')](_0x423f('0x2e'))},'json':!![]};_0x518443[_0x423f('0xe')]=_0x20660e;return rp(_0x518443)[_0x423f('0x10')](function(_0x3ad48c){_0x44e3a7[_0x423f('0x37')]=_0x3ad48c[_0x423f('0x38')]['id'];logger[_0x423f('0xf')](_0x423f('0x39'),_0x44e3a7[_0x423f('0x37')]);_0x69e312(_0x44e3a7);})[_0x423f('0x17')](function(_0x25612b){logger[_0x423f('0x18')]('['+[_0x2316e8[_0x423f('0x19')]()]+']',_0x25612b[_0x423f('0x1a')]);_0x21b720(_0x25612b[_0x423f('0x1a')]);});});};}function emit(_0x2715cf,_0x165a8a,_0x2145a5){var _0x580db1={'uri':_0x2715cf+_0x423f('0x3a')+_0x2145a5};io['to'](util['format'](_0x423f('0x3b'),_0x165a8a))[_0x423f('0x3c')](_0x423f('0x3d'),_0x580db1);}exports['cs']=function(_0x37035a,_0x57f5d6,_0x10bad3,_0x221b38,_0x265440,_0x20f72c,_0x471c95,_0x31b88e){var _0x2dcbec={};var _0x489894={'Authorization':_0x423f('0x3e')+_0x20f72c[_0x423f('0x3f')]};_0x20f72c['remoteUri']=intUtil[_0x423f('0x40')](_0x20f72c['remoteUri']);_0x20f72c[_0x423f('0x41')]=intUtil['stripTrailingSlash'](_0x20f72c['serverUrl']);var _0x286159=_0x20f72c[_0x423f('0x42')];_0x2dcbec[_0x423f('0x13')]=_0x20f72c[_0x423f('0x43')];_0x2dcbec['contactNumber']=_0x31b88e[_0x423f('0x44')]()==='outbound'?_0x57f5d6[_0x423f('0x45')]:_0x57f5d6[_0x423f('0x46')];_0x2dcbec[_0x423f('0x47')]=_0x31b88e===_0x423f('0x48')||_0x31b88e===_0x423f('0x49')?_0x423f('0x48'):_0x423f('0x4a');if(_0x221b38){_0x2dcbec[_0x423f('0x1b')]=_0x221b38[_0x423f('0x12')];}var _0x4e3003=util[_0x423f('0x24')](_0x423f('0x4b'),_0x20f72c['serverUrl'],_0x57f5d6[_0x423f('0x4c')],md5(_0x57f5d6['uniqueid']));if(_0x265440&&_0x265440[_0x423f('0x4d')]){logger[_0x423f('0xf')](_0x423f('0x4e'),_0x423f('0x4f'));_0x57f5d6[_0x423f('0x50')]=_0x4e3003;}else if(_0x471c95&&_0x471c95[_0x423f('0x51')]&&_0x471c95['recordingFormat']!=='none'){logger[_0x423f('0xf')](_0x423f('0x52'),_0x423f('0x4f'));_0x57f5d6[_0x423f('0x50')]=_0x4e3003;}else{_0x57f5d6[_0x423f('0x50')]='';}return getAdminId(_0x2dcbec,_0x31b88e,_0x489894,_0x286159)[_0x423f('0x10')](getUser(_0x31b88e,_0x489894,_0x286159))[_0x423f('0x10')](getEndUser(_0x31b88e,_0x489894,_0x286159))[_0x423f('0x10')](getTicket(_0x31b88e,_0x489894,_0x286159,_0x10bad3,_0x57f5d6))[_0x423f('0x10')](function(_0x5cec20){logger[_0x423f('0xf')](util[_0x423f('0x24')]('The\x20ticket\x20ID\x20is:\x20%s',_0x5cec20[_0x423f('0x37')]));if(_0x31b88e!=='unmanaged'){logger[_0x423f('0xf')]('['+[_0x31b88e[_0x423f('0x19')]()]+']',_0x423f('0x53'));emit(_0x286159,_0x221b38['name'],_0x5cec20['endUserId']);}})[_0x423f('0x17')](function(_0x31a86c){logger[_0x423f('0x18')]('['+[_0x31b88e['toUpperCase']()]+_0x423f('0x54'),util[_0x423f('0x55')](_0x31a86c,{'showHidden':!![],'depth':null}));});};