Built motion from commit b0a9a629.|2.6.33
[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 _0x0660=['catch','toUpperCase','message','/api/selector/owners','Getting\x20user\x20list','agentEmail','Getting\x20user\x20with\x20email','userEmail','length','User\x20found:','userId','Admin\x20selected','Requested\x20Resource\x20not\x20Found','/api/lookup?q=','&f=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','endUserId','Contact\x20found\x20mobile_number:','work_number','Contact\x20found\x20work_number:','Contact\x20created:','POST','/api/contacts','YYYY-MM-DDTHH:mm:ss','headers','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','Creating\x20new\x20task','/api/tasks','getString','Subjects','Descriptions','add','ticketId','task','Task\x20created:','error','/contacts/','user:%s','trigger:browser:url','Token\x20token=','apiKey','stripTrailingSlash','remoteUri','serverUrl','username','outbound','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','unmanaged','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','request-promise','md5','util','moment','bluebird','ioredis','./util','../../../../config/environment','redis','defaults','socket.io-emitter','GET','info','Getting\x20admin\x20information','then','users','email','adminEmail','adminId','Admin\x20found:'];(function(_0x4f362c,_0x53c4b2){var _0x578f7f=function(_0x3ab23c){while(--_0x3ab23c){_0x4f362c['push'](_0x4f362c['shift']());}};_0x578f7f(++_0x53c4b2);}(_0x0660,0x148));var _0x0066=function(_0x372eab,_0x391b7f){_0x372eab=_0x372eab-0x0;var _0x52c69b=_0x0660[_0x372eab];return _0x52c69b;};'use strict';var _=require('lodash');var rp=require(_0x0066('0x0'));var md5=require(_0x0066('0x1'));var util=require(_0x0066('0x2'));var moment=require(_0x0066('0x3'));var Promise=require(_0x0066('0x4'));var Redis=require(_0x0066('0x5'));var intUtil=require(_0x0066('0x6'));var config=require(_0x0066('0x7'));var logger=require('../../../../config/logger')('freshsales');config[_0x0066('0x8')]=_[_0x0066('0x9')](config[_0x0066('0x8')],{'host':'localhost','port':0x18eb});var io=require(_0x0066('0xa'))(new Redis(config['redis']));function getAdminId(_0x441fed,_0x5bd58f,_0x3e7721,_0x16c5c6){return new Promise(function(_0x4dfbe1,_0x9d9681){var _0x1aa2f8=![];var _0x3399c8={'method':_0x0066('0xb'),'uri':_0x16c5c6+'/api/selector/owners','json':!![]};_0x3399c8['headers']=_0x3e7721;logger[_0x0066('0xc')](_0x0066('0xd'));return rp(_0x3399c8)[_0x0066('0xe')](function(_0x97511e){if(_0x97511e){var _0xa9b7df=_0x97511e[_0x0066('0xf')];var _0x24efd9=null;for(_0x24efd9=0x0;_0x24efd9<_0xa9b7df['length'];_0x24efd9++){if(_0xa9b7df[_0x24efd9][_0x0066('0x10')]===_0x441fed[_0x0066('0x11')]){_0x441fed[_0x0066('0x12')]=_0xa9b7df[_0x24efd9]['id'];_0x1aa2f8=!![];}}if(_0x1aa2f8){logger[_0x0066('0xc')](_0x0066('0x13'),_0x441fed[_0x0066('0x12')]);_0x4dfbe1(_0x441fed);}else{_0x9d9681({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x9d9681({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0x0066('0x14')](function(_0x4b116d){logger['error']('['+[_0x5bd58f[_0x0066('0x15')]()]+']',_0x4b116d[_0x0066('0x16')]);_0x9d9681(_0x4b116d);});});}function getUser(_0x5a2f65,_0x36e703,_0x2add5c){return function(_0x5ef5de){return new Promise(function(_0x5d4dce,_0x29acb5){var _0x8a0b51={'method':_0x0066('0xb'),'uri':_0x2add5c+_0x0066('0x17'),'json':!![]};_0x8a0b51['headers']=_0x36e703;logger[_0x0066('0xc')](_0x0066('0x18'));return rp(_0x8a0b51)['then'](function(_0x344b2d){if(_0x344b2d){var _0x274229=_0x344b2d[_0x0066('0xf')];var _0x26f2a7=![];var _0x519d03=null;if(_0x5ef5de[_0x0066('0x19')]!==null){logger['info'](_0x0066('0x1a'),_0x5ef5de[_0x0066('0x19')]);_0x5ef5de[_0x0066('0x1b')]=_0x5ef5de['agentEmail'];for(_0x519d03=0x0;_0x519d03<_0x274229[_0x0066('0x1c')];_0x519d03++){if(_0x274229[_0x519d03]['email']===_0x5ef5de[_0x0066('0x19')]){_0x26f2a7=!![];_0x5ef5de['userId']=_0x274229[_0x519d03]['id'];logger[_0x0066('0xc')](_0x0066('0x1d'),_0x5ef5de[_0x0066('0x1e')]);}}}if(!_0x26f2a7){logger[_0x0066('0xc')](_0x0066('0x1f'));_0x5ef5de[_0x0066('0x1b')]=_0x5ef5de[_0x0066('0x11')];_0x5ef5de['userId']=_0x5ef5de[_0x0066('0x12')];_0x26f2a7=!![];}if(_0x26f2a7){_0x5d4dce(_0x5ef5de);}else{_0x29acb5({'statusCode':0x194,'message':_0x0066('0x20')});}}else{_0x29acb5({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0x0066('0x14')](function(_0x1421e4){logger['error']('['+[_0x5a2f65[_0x0066('0x15')]()]+']',_0x1421e4[_0x0066('0x16')]);_0x29acb5(_0x1421e4);});});};}function searchContact(_0x2cec34,_0x5bdb77,_0xb87608,_0x5e0311){return new Promise(function(_0x33e32d,_0x1f38a2){var _0x2dd9a7={'method':_0x0066('0xb'),'headers':_0x5bdb77,'uri':_0x2cec34+_0x0066('0x21')+_0x5e0311+_0x0066('0x22')+_0xb87608+_0x0066('0x23'),'json':!![]};rp(_0x2dd9a7)[_0x0066('0xe')](function(_0x1431f0){var _0x2cdee0=_[_0x0066('0x24')](_0x1431f0['contacts'][_0x0066('0x25')],[_0xb87608,_0x5e0311]);_0x33e32d(_0x2cdee0);})[_0x0066('0x14')](function(_0xdf317f){_0x1f38a2(_0xdf317f);});});}function getEndUser(_0x4c91e8,_0x403810,_0x40fa86){return function(_0x5c8006){return new Promise(function(_0x40a766,_0x50d623){logger[_0x0066('0xc')](util[_0x0066('0x26')](_0x0066('0x27'),_0x5c8006[_0x0066('0x28')]));searchContact(_0x40fa86,_0x403810,_0x0066('0x29'),_0x5c8006[_0x0066('0x28')])[_0x0066('0xe')](function(_0x44017f){if(_0x44017f){_0x5c8006[_0x0066('0x2a')]=_0x44017f['id'];logger[_0x0066('0xc')](_0x0066('0x2b'),_0x5c8006[_0x0066('0x2a')]);return _0x40a766(_0x5c8006);}searchContact(_0x40fa86,_0x403810,_0x0066('0x2c'),_0x5c8006['contactNumber'])[_0x0066('0xe')](function(_0x3c5223){if(_0x3c5223){_0x5c8006['endUserId']=_0x3c5223['id'];logger[_0x0066('0xc')](_0x0066('0x2d'),_0x5c8006[_0x0066('0x2a')]);return _0x40a766(_0x5c8006);}createEndUser(_0x5c8006,_0x4c91e8,_0x403810,_0x40fa86)[_0x0066('0xe')](function(_0x198812){logger[_0x0066('0xc')](_0x0066('0x2e'),_0x198812[_0x0066('0x2a')]);return _0x40a766(_0x198812);});});})[_0x0066('0x14')](function(_0x5d05a2){_0x50d623(_0x5d05a2);});});};}function createEndUser(_0x1c5360,_0x41358d,_0x41000e,_0x35ce4a){return new Promise(function(_0x9f9631,_0x216d11){var _0x60d851=moment();var _0x401117={'method':_0x0066('0x2f'),'uri':_0x35ce4a+_0x0066('0x30'),'body':{'contact':{'last_name':_0x1c5360[_0x0066('0x28')],'work_number':_0x1c5360[_0x0066('0x28')],'mobile_number':_0x1c5360[_0x0066('0x28')],'owner_id':_0x1c5360[_0x0066('0x1e')],'created_at':_0x60d851[_0x0066('0x26')](_0x0066('0x31'))}},'json':!![]};_0x401117[_0x0066('0x32')]=_0x41000e;logger[_0x0066('0xc')](_0x0066('0x33'));return rp(_0x401117)[_0x0066('0xe')](function(_0x3238db){_0x1c5360[_0x0066('0x2a')]=_0x3238db[_0x0066('0x34')]['id'];_0x9f9631(_0x1c5360);})['catch'](function(_0x5bed2b){logger['error']('['+[_0x41358d['toUpperCase']()]+']',_0x5bed2b[_0x0066('0x16')]);_0x216d11(_0x5bed2b[_0x0066('0x16')]);});});}function getTicket(_0x1a813e,_0x47c07f,_0x52deff,_0xe0413b,_0x3fd095){return function(_0x38bf6e){logger['info'](_0x0066('0x35'));return new Promise(function(_0x5a9719,_0x5abcae){var _0x3c1618=moment();var _0x21fa49={'method':'POST','uri':_0x52deff+_0x0066('0x36'),'body':{'title':intUtil[_0x0066('0x37')](_0xe0413b[_0x0066('0x38')],_0x3fd095,'\x20'),'description':intUtil[_0x0066('0x37')](_0xe0413b[_0x0066('0x39')],_0x3fd095,'\x0a'),'owner_id':_0x38bf6e[_0x0066('0x1e')],'creater_id':_0x38bf6e[_0x0066('0x12')],'targetable_id':_0x38bf6e[_0x0066('0x2a')],'targetable_type':'Contact','created_at':_0x3c1618[_0x0066('0x26')](_0x0066('0x31')),'due_date':_0x3c1618[_0x0066('0x3a')](0x1e,'m')['format'](_0x0066('0x31'))},'json':!![]};_0x21fa49[_0x0066('0x32')]=_0x47c07f;return rp(_0x21fa49)[_0x0066('0xe')](function(_0x2c77ab){_0x38bf6e[_0x0066('0x3b')]=_0x2c77ab[_0x0066('0x3c')]['id'];logger[_0x0066('0xc')](_0x0066('0x3d'),_0x38bf6e[_0x0066('0x3b')]);_0x5a9719(_0x38bf6e);})[_0x0066('0x14')](function(_0x3aed7f){logger[_0x0066('0x3e')]('['+[_0x1a813e[_0x0066('0x15')]()]+']',_0x3aed7f[_0x0066('0x16')]);_0x5abcae(_0x3aed7f[_0x0066('0x16')]);});});};}function emit(_0x589ca5,_0x2795c8,_0x432624){var _0x44a322={'uri':_0x589ca5+_0x0066('0x3f')+_0x432624};io['to'](util['format'](_0x0066('0x40'),_0x2795c8))['emit'](_0x0066('0x41'),_0x44a322);}exports['cs']=function(_0x5709a0,_0x5e7a37,_0x5deda5,_0x5371fc,_0x47d672,_0x48742c,_0x2456cd,_0x389637){var _0x27a9c0={};var _0x55d8dc={'Authorization':_0x0066('0x42')+_0x48742c[_0x0066('0x43')]};_0x48742c['remoteUri']=intUtil[_0x0066('0x44')](_0x48742c[_0x0066('0x45')]);_0x48742c[_0x0066('0x46')]=intUtil['stripTrailingSlash'](_0x48742c[_0x0066('0x46')]);var _0x4908d4=_0x48742c[_0x0066('0x45')];_0x27a9c0[_0x0066('0x11')]=_0x48742c[_0x0066('0x47')];_0x27a9c0['contactNumber']=_0x389637['toLowerCase']()===_0x0066('0x48')?_0x5e7a37['destcalleridnum']:_0x5e7a37['calleridnum'];_0x27a9c0['callDirection']=_0x389637===_0x0066('0x49')||_0x389637==='unmanaged'?'queue':'outbound';if(_0x5371fc){_0x27a9c0[_0x0066('0x19')]=_0x5371fc[_0x0066('0x10')];}var _0x50e609=util[_0x0066('0x26')](_0x0066('0x4a'),_0x48742c[_0x0066('0x46')],_0x5e7a37['uniqueid'],md5(_0x5e7a37['uniqueid']));if(_0x47d672&&_0x47d672[_0x0066('0x4b')]){logger[_0x0066('0xc')](_0x0066('0x4c'),_0x0066('0x4d'));_0x5e7a37[_0x0066('0x4e')]=_0x50e609;}else if(_0x2456cd&&_0x2456cd[_0x0066('0x4f')]&&_0x2456cd[_0x0066('0x4f')]!==_0x0066('0x50')){logger[_0x0066('0xc')](_0x0066('0x51'),_0x0066('0x4d'));_0x5e7a37[_0x0066('0x4e')]=_0x50e609;}else{_0x5e7a37[_0x0066('0x4e')]='';}return getAdminId(_0x27a9c0,_0x389637,_0x55d8dc,_0x4908d4)[_0x0066('0xe')](getUser(_0x389637,_0x55d8dc,_0x4908d4))[_0x0066('0xe')](getEndUser(_0x389637,_0x55d8dc,_0x4908d4))['then'](getTicket(_0x389637,_0x55d8dc,_0x4908d4,_0x5deda5,_0x5e7a37))[_0x0066('0xe')](function(_0x5d8d49){logger[_0x0066('0xc')](util[_0x0066('0x26')](_0x0066('0x52'),_0x5d8d49['ticketId']));if(_0x389637!==_0x0066('0x53')){logger[_0x0066('0xc')]('['+[_0x389637[_0x0066('0x15')]()]+']',_0x0066('0x54'));emit(_0x4908d4,_0x5371fc[_0x0066('0x55')],_0x5d8d49[_0x0066('0x2a')]);}})[_0x0066('0x14')](function(_0xfad4f0){logger[_0x0066('0x3e')]('['+[_0x389637['toUpperCase']()]+_0x0066('0x56'),util['inspect'](_0xfad4f0,{'showHidden':!![],'depth':null}));});};