Built motion from commit 3c2ce842.|2.6.31
[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 _0xe935=['agentEmail','Getting\x20user\x20with\x20email','userEmail','userId','User\x20found:','Admin\x20selected','message','/api/lookup?q=','&f=','&entities=contact','find','contacts','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','endUserId','Contact\x20found\x20mobile_number:','work_number','Contact\x20found\x20work_number:','/api/contacts','format','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','Creating\x20new\x20task','POST','/api/tasks','Subjects','getString','Descriptions','YYYY-MM-DDTHH:mm:ss','add','ticketId','Task\x20created:','/contacts/','emit','Token\x20token=','apiKey','remoteUri','stripTrailingSlash','username','toLowerCase','outbound','unmanaged','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','recordingURL','recordingFormat','Recording\x20is\x20enabled!','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','md5','util','moment','bluebird','ioredis','./util','../../../../config/environment','../../../../config/logger','freshsales','redis','defaults','localhost','socket.io-emitter','info','Getting\x20admin\x20information','then','users','length','email','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','/api/selector/owners','headers'];(function(_0x53a7a8,_0xed2bff){var _0x555f71=function(_0x48e696){while(--_0x48e696){_0x53a7a8['push'](_0x53a7a8['shift']());}};_0x555f71(++_0xed2bff);}(_0xe935,0x8a));var _0x5e93=function(_0x53d9d3,_0x416b2f){_0x53d9d3=_0x53d9d3-0x0;var _0x259ab3=_0xe935[_0x53d9d3];return _0x259ab3;};'use strict';var _=require(_0x5e93('0x0'));var rp=require(_0x5e93('0x1'));var md5=require(_0x5e93('0x2'));var util=require(_0x5e93('0x3'));var moment=require(_0x5e93('0x4'));var Promise=require(_0x5e93('0x5'));var Redis=require(_0x5e93('0x6'));var intUtil=require(_0x5e93('0x7'));var config=require(_0x5e93('0x8'));var logger=require(_0x5e93('0x9'))(_0x5e93('0xa'));config[_0x5e93('0xb')]=_[_0x5e93('0xc')](config['redis'],{'host':_0x5e93('0xd'),'port':0x18eb});var io=require(_0x5e93('0xe'))(new Redis(config[_0x5e93('0xb')]));function getAdminId(_0x3b9a0a,_0x550620,_0x47c607,_0x3b3248){return new Promise(function(_0x442790,_0x27df9d){var _0x1f9c53=![];var _0x120c4c={'method':'GET','uri':_0x3b3248+'/api/selector/owners','json':!![]};_0x120c4c['headers']=_0x47c607;logger[_0x5e93('0xf')](_0x5e93('0x10'));return rp(_0x120c4c)[_0x5e93('0x11')](function(_0x51fb64){if(_0x51fb64){var _0x2d3222=_0x51fb64[_0x5e93('0x12')];var _0xb5d83c=null;for(_0xb5d83c=0x0;_0xb5d83c<_0x2d3222[_0x5e93('0x13')];_0xb5d83c++){if(_0x2d3222[_0xb5d83c][_0x5e93('0x14')]===_0x3b9a0a[_0x5e93('0x15')]){_0x3b9a0a[_0x5e93('0x16')]=_0x2d3222[_0xb5d83c]['id'];_0x1f9c53=!![];}}if(_0x1f9c53){logger[_0x5e93('0xf')](_0x5e93('0x17'),_0x3b9a0a[_0x5e93('0x16')]);_0x442790(_0x3b9a0a);}else{_0x27df9d({'statusCode':0x194,'message':_0x5e93('0x18')});}}else{_0x27df9d({'statusCode':0x194,'message':_0x5e93('0x18')});}})[_0x5e93('0x19')](function(_0x48b558){logger[_0x5e93('0x1a')]('['+[_0x550620[_0x5e93('0x1b')]()]+']',_0x48b558['message']);_0x27df9d(_0x48b558);});});}function getUser(_0x4d1903,_0x4fe65b,_0x2b7465){return function(_0x55dc8b){return new Promise(function(_0x559806,_0x5d04b5){var _0x5934e9={'method':'GET','uri':_0x2b7465+_0x5e93('0x1c'),'json':!![]};_0x5934e9[_0x5e93('0x1d')]=_0x4fe65b;logger['info']('Getting\x20user\x20list');return rp(_0x5934e9)[_0x5e93('0x11')](function(_0x4717ce){if(_0x4717ce){var _0xd22b6e=_0x4717ce[_0x5e93('0x12')];var _0x1b56b3=![];var _0x4639ed=null;if(_0x55dc8b[_0x5e93('0x1e')]!==null){logger[_0x5e93('0xf')](_0x5e93('0x1f'),_0x55dc8b[_0x5e93('0x1e')]);_0x55dc8b[_0x5e93('0x20')]=_0x55dc8b['agentEmail'];for(_0x4639ed=0x0;_0x4639ed<_0xd22b6e[_0x5e93('0x13')];_0x4639ed++){if(_0xd22b6e[_0x4639ed][_0x5e93('0x14')]===_0x55dc8b[_0x5e93('0x1e')]){_0x1b56b3=!![];_0x55dc8b[_0x5e93('0x21')]=_0xd22b6e[_0x4639ed]['id'];logger[_0x5e93('0xf')](_0x5e93('0x22'),_0x55dc8b[_0x5e93('0x21')]);}}}if(!_0x1b56b3){logger[_0x5e93('0xf')](_0x5e93('0x23'));_0x55dc8b['userEmail']=_0x55dc8b['adminEmail'];_0x55dc8b[_0x5e93('0x21')]=_0x55dc8b[_0x5e93('0x16')];_0x1b56b3=!![];}if(_0x1b56b3){_0x559806(_0x55dc8b);}else{_0x5d04b5({'statusCode':0x194,'message':_0x5e93('0x18')});}}else{_0x5d04b5({'statusCode':0x194,'message':_0x5e93('0x18')});}})[_0x5e93('0x19')](function(_0x409e71){logger[_0x5e93('0x1a')]('['+[_0x4d1903[_0x5e93('0x1b')]()]+']',_0x409e71[_0x5e93('0x24')]);_0x5d04b5(_0x409e71);});});};}function searchContact(_0x57325a,_0xbba39b,_0x5b9d4d,_0x5a7afe){return new Promise(function(_0x1306a4,_0x1355a1){var _0x56744d={'method':'GET','headers':_0xbba39b,'uri':_0x57325a+_0x5e93('0x25')+_0x5a7afe+_0x5e93('0x26')+_0x5b9d4d+_0x5e93('0x27'),'json':!![]};rp(_0x56744d)['then'](function(_0x576411){var _0x120f8f=_[_0x5e93('0x28')](_0x576411[_0x5e93('0x29')][_0x5e93('0x29')],[_0x5b9d4d,_0x5a7afe]);_0x1306a4(_0x120f8f);})[_0x5e93('0x19')](function(_0x4cfd29){_0x1355a1(_0x4cfd29);});});}function getEndUser(_0x445c41,_0x50b95c,_0x448d3b){return function(_0x94d9b6){return new Promise(function(_0x3ab161,_0x3f0bbd){logger[_0x5e93('0xf')](util['format'](_0x5e93('0x2a'),_0x94d9b6[_0x5e93('0x2b')]));searchContact(_0x448d3b,_0x50b95c,_0x5e93('0x2c'),_0x94d9b6[_0x5e93('0x2b')])[_0x5e93('0x11')](function(_0x57c213){if(_0x57c213){_0x94d9b6[_0x5e93('0x2d')]=_0x57c213['id'];logger['info'](_0x5e93('0x2e'),_0x94d9b6[_0x5e93('0x2d')]);return _0x3ab161(_0x94d9b6);}searchContact(_0x448d3b,_0x50b95c,_0x5e93('0x2f'),_0x94d9b6[_0x5e93('0x2b')])['then'](function(_0x10585e){if(_0x10585e){_0x94d9b6[_0x5e93('0x2d')]=_0x10585e['id'];logger[_0x5e93('0xf')](_0x5e93('0x30'),_0x94d9b6[_0x5e93('0x2d')]);return _0x3ab161(_0x94d9b6);}createEndUser(_0x94d9b6,_0x445c41,_0x50b95c,_0x448d3b)[_0x5e93('0x11')](function(_0x2d3869){logger['info']('Contact\x20created:',_0x2d3869['endUserId']);return _0x3ab161(_0x2d3869);});});})[_0x5e93('0x19')](function(_0x9ecceb){_0x3f0bbd(_0x9ecceb);});});};}function createEndUser(_0x5025ce,_0x59e2da,_0x1a07fd,_0x4cd819){return new Promise(function(_0x5e86d6,_0x339d9d){var _0x53d7dc=moment();var _0x1f8bb6={'method':'POST','uri':_0x4cd819+_0x5e93('0x31'),'body':{'contact':{'last_name':_0x5025ce[_0x5e93('0x2b')],'work_number':_0x5025ce[_0x5e93('0x2b')],'mobile_number':_0x5025ce[_0x5e93('0x2b')],'owner_id':_0x5025ce['userId'],'created_at':_0x53d7dc[_0x5e93('0x32')]('YYYY-MM-DDTHH:mm:ss')}},'json':!![]};_0x1f8bb6[_0x5e93('0x1d')]=_0x1a07fd;logger[_0x5e93('0xf')](_0x5e93('0x33'));return rp(_0x1f8bb6)[_0x5e93('0x11')](function(_0x5b62a5){_0x5025ce[_0x5e93('0x2d')]=_0x5b62a5[_0x5e93('0x34')]['id'];_0x5e86d6(_0x5025ce);})[_0x5e93('0x19')](function(_0x367d12){logger[_0x5e93('0x1a')]('['+[_0x59e2da[_0x5e93('0x1b')]()]+']',_0x367d12[_0x5e93('0x24')]);_0x339d9d(_0x367d12['message']);});});}function getTicket(_0x19dfca,_0x48639b,_0x13bea8,_0x29fe42,_0x1b6125){return function(_0x4a0d79){logger[_0x5e93('0xf')](_0x5e93('0x35'));return new Promise(function(_0x21dabb,_0x5390bc){var _0x188e1a=moment();var _0x3a095c={'method':_0x5e93('0x36'),'uri':_0x13bea8+_0x5e93('0x37'),'body':{'title':intUtil['getString'](_0x29fe42[_0x5e93('0x38')],_0x1b6125,'\x20'),'description':intUtil[_0x5e93('0x39')](_0x29fe42[_0x5e93('0x3a')],_0x1b6125,'\x0a'),'owner_id':_0x4a0d79[_0x5e93('0x21')],'creater_id':_0x4a0d79['adminId'],'targetable_id':_0x4a0d79[_0x5e93('0x2d')],'targetable_type':'Contact','created_at':_0x188e1a['format'](_0x5e93('0x3b')),'due_date':_0x188e1a[_0x5e93('0x3c')](0x1e,'m')[_0x5e93('0x32')](_0x5e93('0x3b'))},'json':!![]};_0x3a095c[_0x5e93('0x1d')]=_0x48639b;return rp(_0x3a095c)[_0x5e93('0x11')](function(_0x195ae8){_0x4a0d79[_0x5e93('0x3d')]=_0x195ae8['task']['id'];logger[_0x5e93('0xf')](_0x5e93('0x3e'),_0x4a0d79[_0x5e93('0x3d')]);_0x21dabb(_0x4a0d79);})['catch'](function(_0x57469b){logger['error']('['+[_0x19dfca[_0x5e93('0x1b')]()]+']',_0x57469b[_0x5e93('0x24')]);_0x5390bc(_0x57469b[_0x5e93('0x24')]);});});};}function emit(_0x2941e5,_0x4fb851,_0x43d929){var _0xd5418a={'uri':_0x2941e5+_0x5e93('0x3f')+_0x43d929};io['to'](util[_0x5e93('0x32')]('user:%s',_0x4fb851))[_0x5e93('0x40')]('trigger:browser:url',_0xd5418a);}exports['cs']=function(_0x2e59a4,_0x3cafc4,_0x2eca2d,_0x1eb690,_0x546e51,_0x2b9a52,_0x4aed22,_0x453393){var _0x2be9a2={};var _0x5303a9={'Authorization':_0x5e93('0x41')+_0x2b9a52[_0x5e93('0x42')]};_0x2b9a52['remoteUri']=intUtil['stripTrailingSlash'](_0x2b9a52[_0x5e93('0x43')]);_0x2b9a52['serverUrl']=intUtil[_0x5e93('0x44')](_0x2b9a52['serverUrl']);var _0x3a61ba=_0x2b9a52['remoteUri'];_0x2be9a2[_0x5e93('0x15')]=_0x2b9a52[_0x5e93('0x45')];_0x2be9a2['contactNumber']=_0x453393[_0x5e93('0x46')]()===_0x5e93('0x47')?_0x3cafc4['destcalleridnum']:_0x3cafc4['calleridnum'];_0x2be9a2['callDirection']=_0x453393==='queue'||_0x453393===_0x5e93('0x48')?_0x5e93('0x49'):_0x5e93('0x47');if(_0x1eb690){_0x2be9a2[_0x5e93('0x1e')]=_0x1eb690[_0x5e93('0x14')];}var _0x581bd3=util[_0x5e93('0x32')](_0x5e93('0x4a'),_0x2b9a52[_0x5e93('0x4b')],_0x3cafc4['uniqueid'],md5(_0x3cafc4[_0x5e93('0x4c')]));if(_0x546e51&&_0x546e51['monitor_format']){logger[_0x5e93('0xf')]('[QUEUE]','Recording\x20is\x20enabled!');_0x3cafc4[_0x5e93('0x4d')]=_0x581bd3;}else if(_0x4aed22&&_0x4aed22[_0x5e93('0x4e')]&&_0x4aed22[_0x5e93('0x4e')]!=='none'){logger[_0x5e93('0xf')]('[OUTBOUND]',_0x5e93('0x4f'));_0x3cafc4['recordingURL']=_0x581bd3;}else{_0x3cafc4['recordingURL']='';}return getAdminId(_0x2be9a2,_0x453393,_0x5303a9,_0x3a61ba)[_0x5e93('0x11')](getUser(_0x453393,_0x5303a9,_0x3a61ba))[_0x5e93('0x11')](getEndUser(_0x453393,_0x5303a9,_0x3a61ba))[_0x5e93('0x11')](getTicket(_0x453393,_0x5303a9,_0x3a61ba,_0x2eca2d,_0x3cafc4))[_0x5e93('0x11')](function(_0x80fbea){logger['info'](util[_0x5e93('0x32')](_0x5e93('0x50'),_0x80fbea[_0x5e93('0x3d')]));if(_0x453393!==_0x5e93('0x48')){logger['info']('['+[_0x453393[_0x5e93('0x1b')]()]+']',_0x5e93('0x51'));emit(_0x3a61ba,_0x1eb690['name'],_0x80fbea[_0x5e93('0x2d')]);}})[_0x5e93('0x19')](function(_0x567723){logger[_0x5e93('0x1a')]('['+[_0x453393[_0x5e93('0x1b')]()]+_0x5e93('0x52'),util[_0x5e93('0x53')](_0x567723,{'showHidden':!![],'depth':null}));});};