Built motion from commit (unavailable).|2.5.1
[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 _0xa6c6=['Contact\x20found:','Contact\x20created:','POST','/api/contacts','format','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','Creating\x20new\x20task','/api/tasks','getString','Subjects','Descriptions','YYYY-MM-DDTHH:mm:ss','add','ticketId','Task\x20created:','/contacts/','user:%s','emit','remoteUri','stripTrailingSlash','serverUrl','username','toLowerCase','outbound','destcalleridnum','calleridnum','callDirection','queue','uniqueid','[QUEUE]','Recording\x20is\x20enabled!','recordingFormat','none','recordingURL','unmanaged','Displaying\x20task\x20in\x20a\x20new\x20tab...','inspect','lodash','request-promise','md5','util','moment','bluebird','ioredis','./util','../../../../config/environment','../../../../config/logger','freshsales','redis','localhost','socket.io-emitter','headers','info','users','length','email','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','GET','/api/selector/owners','then','agentEmail','Getting\x20user\x20with\x20email','userEmail','User\x20found:','userId','Admin\x20selected','/api/contacts/filters','Getting\x20contacts\x20filter','filters','name','All\x20Contacts','Getting\x20contact\x20list','/api/contacts/view/','Searching\x20contact\x20with\x20phone','contacts','find','work_number','contactNumber','mobile_number','endUserId'];(function(_0x2b7764,_0x2606f1){var _0x848dcb=function(_0x1ae85b){while(--_0x1ae85b){_0x2b7764['push'](_0x2b7764['shift']());}};_0x848dcb(++_0x2606f1);}(_0xa6c6,0x12e));var _0x6a6c=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xa6c6[_0x2641f9];return _0x585741;};'use strict';var _=require(_0x6a6c('0x0'));var rp=require(_0x6a6c('0x1'));var md5=require(_0x6a6c('0x2'));var util=require(_0x6a6c('0x3'));var moment=require(_0x6a6c('0x4'));var Promise=require(_0x6a6c('0x5'));var Redis=require(_0x6a6c('0x6'));var intUtil=require(_0x6a6c('0x7'));var config=require(_0x6a6c('0x8'));var logger=require(_0x6a6c('0x9'))(_0x6a6c('0xa'));config[_0x6a6c('0xb')]=_['defaults'](config[_0x6a6c('0xb')],{'host':_0x6a6c('0xc'),'port':0x18eb});var io=require(_0x6a6c('0xd'))(new Redis(config['redis']));function getAdminId(_0x282b0c,_0x1e7f00,_0x54a3f0,_0x51acdc){return new Promise(function(_0x891302,_0xbeac5){var _0xb92990=![];var _0x1069a1={'method':'GET','uri':_0x51acdc+'/api/selector/owners','json':!![]};_0x1069a1[_0x6a6c('0xe')]=_0x54a3f0;logger[_0x6a6c('0xf')]('Getting\x20admin\x20information');return rp(_0x1069a1)['then'](function(_0x2956e2){if(_0x2956e2){var _0x37b464=_0x2956e2[_0x6a6c('0x10')];var _0x41b08e=null;for(_0x41b08e=0x0;_0x41b08e<_0x37b464[_0x6a6c('0x11')];_0x41b08e++){if(_0x37b464[_0x41b08e][_0x6a6c('0x12')]===_0x282b0c[_0x6a6c('0x13')]){_0x282b0c[_0x6a6c('0x14')]=_0x37b464[_0x41b08e]['id'];_0xb92990=!![];}}if(_0xb92990){logger[_0x6a6c('0xf')](_0x6a6c('0x15'),_0x282b0c[_0x6a6c('0x14')]);_0x891302(_0x282b0c);}else{_0xbeac5({'statusCode':0x194,'message':_0x6a6c('0x16')});}}else{_0xbeac5({'statusCode':0x194,'message':_0x6a6c('0x16')});}})[_0x6a6c('0x17')](function(_0x4eddb5){logger[_0x6a6c('0x18')]('['+[_0x1e7f00[_0x6a6c('0x19')]()]+']',_0x4eddb5[_0x6a6c('0x1a')]);_0xbeac5(_0x4eddb5);});});}function getUser(_0x55d2c2,_0x1aba56,_0x46841c){return function(_0x271009){return new Promise(function(_0x1720e2,_0x41b93c){var _0x3becc1={'method':_0x6a6c('0x1b'),'uri':_0x46841c+_0x6a6c('0x1c'),'json':!![]};_0x3becc1[_0x6a6c('0xe')]=_0x1aba56;logger[_0x6a6c('0xf')]('Getting\x20user\x20list');return rp(_0x3becc1)[_0x6a6c('0x1d')](function(_0x324f59){if(_0x324f59){var _0x1f2394=_0x324f59[_0x6a6c('0x10')];var _0x51f9c5=![];var _0x192f72=null;if(_0x271009[_0x6a6c('0x1e')]!==null){logger[_0x6a6c('0xf')](_0x6a6c('0x1f'),_0x271009[_0x6a6c('0x1e')]);_0x271009[_0x6a6c('0x20')]=_0x271009[_0x6a6c('0x1e')];for(_0x192f72=0x0;_0x192f72<_0x1f2394[_0x6a6c('0x11')];_0x192f72++){if(_0x1f2394[_0x192f72][_0x6a6c('0x12')]===_0x271009[_0x6a6c('0x1e')]){_0x51f9c5=!![];_0x271009['userId']=_0x1f2394[_0x192f72]['id'];logger[_0x6a6c('0xf')](_0x6a6c('0x21'),_0x271009[_0x6a6c('0x22')]);}}}if(!_0x51f9c5){logger[_0x6a6c('0xf')](_0x6a6c('0x23'));_0x271009[_0x6a6c('0x20')]=_0x271009[_0x6a6c('0x13')];_0x271009['userId']=_0x271009[_0x6a6c('0x14')];_0x51f9c5=!![];}if(_0x51f9c5){_0x1720e2(_0x271009);}else{_0x41b93c({'statusCode':0x194,'message':_0x6a6c('0x16')});}}else{_0x41b93c({'statusCode':0x194,'message':_0x6a6c('0x16')});}})[_0x6a6c('0x17')](function(_0x4a9e2a){logger[_0x6a6c('0x18')]('['+[_0x55d2c2[_0x6a6c('0x19')]()]+']',_0x4a9e2a[_0x6a6c('0x1a')]);_0x41b93c(_0x4a9e2a);});});};}function getEndUser(_0x5e800a,_0x12b08c,_0x5b483a){return function(_0x586302){return new Promise(function(_0x559219,_0xc7ffa4){var _0x437170=0x0;var _0x300e0f={'method':_0x6a6c('0x1b'),'uri':_0x5b483a+_0x6a6c('0x24'),'json':!![]};_0x300e0f[_0x6a6c('0xe')]=_0x12b08c;logger[_0x6a6c('0xf')](_0x6a6c('0x25'));return rp(_0x300e0f)['then'](function(_0x164818){_0x164818[_0x6a6c('0x26')]['forEach'](function(_0x167ff2){if(_0x167ff2[_0x6a6c('0x27')]===_0x6a6c('0x28')){_0x437170=_0x167ff2['id'];}});})[_0x6a6c('0x1d')](function(){logger[_0x6a6c('0xf')](_0x6a6c('0x29'));var _0x4e0120={'method':_0x6a6c('0x1b'),'uri':_0x5b483a+_0x6a6c('0x2a')+_0x437170,'json':!![]};_0x4e0120[_0x6a6c('0xe')]=_0x12b08c;return rp(_0x4e0120);})['then'](function(_0x3b84aa){logger[_0x6a6c('0xf')](_0x6a6c('0x2b'),_0x586302['contactNumber']);if(_0x3b84aa[_0x6a6c('0x2c')][_0x6a6c('0x11')]>0x0){var _0xfc53dc=_[_0x6a6c('0x2d')](_0x3b84aa[_0x6a6c('0x2c')],function(_0x132b8f){if(_0x132b8f[_0x6a6c('0x2e')]===_0x586302[_0x6a6c('0x2f')]||_0x132b8f[_0x6a6c('0x30')]===_0x586302[_0x6a6c('0x2f')]){return _0x132b8f;}});if(_0xfc53dc){_0x586302[_0x6a6c('0x31')]=_0xfc53dc['id'];logger[_0x6a6c('0xf')](_0x6a6c('0x32'),_0x586302['endUserId']);_0x559219(_0x586302);}else{return createEndUser(_0x586302,_0x5e800a,_0x12b08c,_0x5b483a)[_0x6a6c('0x1d')](function(_0x3fc2f8){logger[_0x6a6c('0xf')](_0x6a6c('0x33'),_0x586302[_0x6a6c('0x31')]);_0x559219(_0x3fc2f8);});}}else{return createEndUser(_0x586302,_0x5e800a,_0x12b08c,_0x5b483a)[_0x6a6c('0x1d')](function(_0x507490){logger['info'](_0x6a6c('0x33'),_0x586302[_0x6a6c('0x31')]);_0x559219(_0x507490);});}})[_0x6a6c('0x17')](function(_0x3d4062){throw new Error(_0x3d4062[_0x6a6c('0x1a')]);});});};}function createEndUser(_0x41c583,_0x59d91f,_0x438790,_0x2fb738){return new Promise(function(_0x82f5fe,_0x5578ee){var _0x1bd6f6=moment();var _0x5a7f3a={'method':_0x6a6c('0x34'),'uri':_0x2fb738+_0x6a6c('0x35'),'body':{'contact':{'last_name':_0x41c583[_0x6a6c('0x2f')],'work_number':_0x41c583[_0x6a6c('0x2f')],'mobile_number':_0x41c583[_0x6a6c('0x2f')],'owner_id':_0x41c583[_0x6a6c('0x22')],'created_at':_0x1bd6f6[_0x6a6c('0x36')]('YYYY-MM-DDTHH:mm:ss')}},'json':!![]};_0x5a7f3a['headers']=_0x438790;logger[_0x6a6c('0xf')](_0x6a6c('0x37'));return rp(_0x5a7f3a)[_0x6a6c('0x1d')](function(_0x2cbb5b){_0x41c583[_0x6a6c('0x31')]=_0x2cbb5b[_0x6a6c('0x38')]['id'];_0x82f5fe(_0x41c583);})[_0x6a6c('0x17')](function(_0x5baee1){logger[_0x6a6c('0x18')]('['+[_0x59d91f[_0x6a6c('0x19')]()]+']',_0x5baee1['message']);_0x5578ee(_0x5baee1[_0x6a6c('0x1a')]);});});}function getTicket(_0x4fa94e,_0x39ec56,_0x97e8d5,_0x467235,_0x2a000d){return function(_0x2c71bb){logger[_0x6a6c('0xf')](_0x6a6c('0x39'));return new Promise(function(_0x4a4f7f,_0xb0c40a){var _0x21fdca=moment();var _0x4cb4c4={'method':_0x6a6c('0x34'),'uri':_0x97e8d5+_0x6a6c('0x3a'),'body':{'title':intUtil[_0x6a6c('0x3b')](_0x467235[_0x6a6c('0x3c')],_0x2a000d,'\x20'),'description':intUtil[_0x6a6c('0x3b')](_0x467235[_0x6a6c('0x3d')],_0x2a000d,'\x0a'),'owner_id':_0x2c71bb[_0x6a6c('0x22')],'creater_id':_0x2c71bb['adminId'],'targetable_id':_0x2c71bb[_0x6a6c('0x31')],'targetable_type':'Contact','created_at':_0x21fdca[_0x6a6c('0x36')](_0x6a6c('0x3e')),'due_date':_0x21fdca[_0x6a6c('0x3f')](0x1e,'m')['format'](_0x6a6c('0x3e'))},'json':!![]};_0x4cb4c4[_0x6a6c('0xe')]=_0x39ec56;return rp(_0x4cb4c4)[_0x6a6c('0x1d')](function(_0x8e76fe){_0x2c71bb[_0x6a6c('0x40')]=_0x8e76fe['task']['id'];logger[_0x6a6c('0xf')](_0x6a6c('0x41'),_0x2c71bb['ticketId']);_0x4a4f7f(_0x2c71bb);})['catch'](function(_0x561a19){logger['error']('['+[_0x4fa94e['toUpperCase']()]+']',_0x561a19[_0x6a6c('0x1a')]);_0xb0c40a(_0x561a19[_0x6a6c('0x1a')]);});});};}function emit(_0x1a1d5e,_0x5fa2e2,_0x56296b){var _0x2c9afd={'uri':_0x1a1d5e+_0x6a6c('0x42')+_0x56296b};io['to'](util[_0x6a6c('0x36')](_0x6a6c('0x43'),_0x5fa2e2))[_0x6a6c('0x44')]('trigger:browser:url',_0x2c9afd);}exports['cs']=function(_0x2115e9,_0x31e0dc,_0x385808,_0xd08f7,_0x27087a,_0x3aec7e,_0x15764d,_0x562fee){var _0x278e89={};var _0x39b86a={'Authorization':'Token\x20token='+_0x3aec7e['apiKey']};_0x3aec7e[_0x6a6c('0x45')]=intUtil['stripTrailingSlash'](_0x3aec7e[_0x6a6c('0x45')]);_0x3aec7e['serverUrl']=intUtil[_0x6a6c('0x46')](_0x3aec7e[_0x6a6c('0x47')]);var _0x3a5664=_0x3aec7e[_0x6a6c('0x45')];_0x278e89['adminEmail']=_0x3aec7e[_0x6a6c('0x48')];_0x278e89[_0x6a6c('0x2f')]=_0x562fee[_0x6a6c('0x49')]()===_0x6a6c('0x4a')?_0x31e0dc[_0x6a6c('0x4b')]:_0x31e0dc[_0x6a6c('0x4c')];_0x278e89[_0x6a6c('0x4d')]=_0x562fee==='queue'||_0x562fee==='unmanaged'?_0x6a6c('0x4e'):_0x6a6c('0x4a');if(_0xd08f7){_0x278e89[_0x6a6c('0x1e')]=_0xd08f7[_0x6a6c('0x12')];}var _0x3f1f4f=util[_0x6a6c('0x36')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x3aec7e['serverUrl'],_0x31e0dc['uniqueid'],md5(_0x31e0dc[_0x6a6c('0x4f')]));if(_0x27087a&&_0x27087a['monitor_format']){logger[_0x6a6c('0xf')](_0x6a6c('0x50'),_0x6a6c('0x51'));_0x31e0dc['recordingURL']=_0x3f1f4f;}else if(_0x15764d&&_0x15764d[_0x6a6c('0x52')]&&_0x15764d[_0x6a6c('0x52')]!==_0x6a6c('0x53')){logger[_0x6a6c('0xf')]('[OUTBOUND]',_0x6a6c('0x51'));_0x31e0dc[_0x6a6c('0x54')]=_0x3f1f4f;}else{_0x31e0dc[_0x6a6c('0x54')]='';}return getAdminId(_0x278e89,_0x562fee,_0x39b86a,_0x3a5664)[_0x6a6c('0x1d')](getUser(_0x562fee,_0x39b86a,_0x3a5664))[_0x6a6c('0x1d')](getEndUser(_0x562fee,_0x39b86a,_0x3a5664))['then'](getTicket(_0x562fee,_0x39b86a,_0x3a5664,_0x385808,_0x31e0dc))[_0x6a6c('0x1d')](function(_0x5b5653){logger[_0x6a6c('0xf')](util[_0x6a6c('0x36')]('The\x20ticket\x20ID\x20is:\x20%s',_0x5b5653[_0x6a6c('0x40')]));if(_0x562fee!==_0x6a6c('0x55')){logger[_0x6a6c('0xf')]('['+[_0x562fee[_0x6a6c('0x19')]()]+']',_0x6a6c('0x56'));emit(_0x3a5664,_0xd08f7[_0x6a6c('0x27')],_0x5b5653['endUserId']);}})[_0x6a6c('0x17')](function(_0x4d239e){logger[_0x6a6c('0x18')]('['+[_0x562fee['toUpperCase']()]+']\x20Error\x20running\x20Freshsales\x20integration',util[_0x6a6c('0x57')](_0x4d239e,{'showHidden':!![],'depth':null}));});};