Built motion from commit (unavailable).|2.5.4
[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 _0xe0c5=['Getting\x20admin\x20information','then','users','length','adminId','info','error','toUpperCase','message','agentEmail','Getting\x20user\x20with\x20email','userEmail','email','User\x20found:','userId','Admin\x20selected','adminEmail','Requested\x20Resource\x20not\x20Found','Getting\x20contacts\x20filter','filters','Getting\x20contact\x20list','/api/contacts/view/','Searching\x20contact\x20with\x20phone','contactNumber','contacts','find','work_number','mobile_number','endUserId','Contact\x20found:','Contact\x20created:','/api/contacts','format','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','catch','Creating\x20new\x20task','POST','/api/tasks','Contact','YYYY-MM-DDTHH:mm:ss','add','ticketId','task','Task\x20created:','/contacts/','emit','trigger:browser:url','Token\x20token=','remoteUri','serverUrl','username','destcalleridnum','calleridnum','callDirection','queue','unmanaged','outbound','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','[OUTBOUND]','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','md5','util','moment','bluebird','ioredis','../../../../config/environment','freshsales','redis','defaults','GET','/api/selector/owners','headers'];(function(_0x172632,_0xe78590){var _0x1c6e1e=function(_0x126e9b){while(--_0x126e9b){_0x172632['push'](_0x172632['shift']());}};_0x1c6e1e(++_0xe78590);}(_0xe0c5,0x98));var _0x5e0c=function(_0x26d9a8,_0x4b92c3){_0x26d9a8=_0x26d9a8-0x0;var _0x1533f6=_0xe0c5[_0x26d9a8];return _0x1533f6;};'use strict';var _=require(_0x5e0c('0x0'));var rp=require(_0x5e0c('0x1'));var md5=require(_0x5e0c('0x2'));var util=require(_0x5e0c('0x3'));var moment=require(_0x5e0c('0x4'));var Promise=require(_0x5e0c('0x5'));var Redis=require(_0x5e0c('0x6'));var intUtil=require('./util');var config=require(_0x5e0c('0x7'));var logger=require('../../../../config/logger')(_0x5e0c('0x8'));config[_0x5e0c('0x9')]=_[_0x5e0c('0xa')](config[_0x5e0c('0x9')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x5e0c('0x9')]));function getAdminId(_0x90dfa3,_0x284adc,_0x22e80e,_0x43cffd){return new Promise(function(_0x3da310,_0x32e4ae){var _0x2a81de=![];var _0xf61c18={'method':_0x5e0c('0xb'),'uri':_0x43cffd+_0x5e0c('0xc'),'json':!![]};_0xf61c18[_0x5e0c('0xd')]=_0x22e80e;logger['info'](_0x5e0c('0xe'));return rp(_0xf61c18)[_0x5e0c('0xf')](function(_0x115351){if(_0x115351){var _0x15a1ff=_0x115351[_0x5e0c('0x10')];var _0x1eb1b7=null;for(_0x1eb1b7=0x0;_0x1eb1b7<_0x15a1ff[_0x5e0c('0x11')];_0x1eb1b7++){if(_0x15a1ff[_0x1eb1b7]['email']===_0x90dfa3['adminEmail']){_0x90dfa3[_0x5e0c('0x12')]=_0x15a1ff[_0x1eb1b7]['id'];_0x2a81de=!![];}}if(_0x2a81de){logger[_0x5e0c('0x13')]('Admin\x20found:',_0x90dfa3[_0x5e0c('0x12')]);_0x3da310(_0x90dfa3);}else{_0x32e4ae({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x32e4ae({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})['catch'](function(_0x374f68){logger[_0x5e0c('0x14')]('['+[_0x284adc[_0x5e0c('0x15')]()]+']',_0x374f68[_0x5e0c('0x16')]);_0x32e4ae(_0x374f68);});});}function getUser(_0x206d7b,_0x370fc3,_0x55caa9){return function(_0x23a59a){return new Promise(function(_0x1fe792,_0x3b6a04){var _0x40f1cd={'method':_0x5e0c('0xb'),'uri':_0x55caa9+_0x5e0c('0xc'),'json':!![]};_0x40f1cd['headers']=_0x370fc3;logger['info']('Getting\x20user\x20list');return rp(_0x40f1cd)[_0x5e0c('0xf')](function(_0x272581){if(_0x272581){var _0x270404=_0x272581[_0x5e0c('0x10')];var _0x1b49e8=![];var _0x56842a=null;if(_0x23a59a[_0x5e0c('0x17')]!==null){logger['info'](_0x5e0c('0x18'),_0x23a59a['agentEmail']);_0x23a59a[_0x5e0c('0x19')]=_0x23a59a[_0x5e0c('0x17')];for(_0x56842a=0x0;_0x56842a<_0x270404[_0x5e0c('0x11')];_0x56842a++){if(_0x270404[_0x56842a][_0x5e0c('0x1a')]===_0x23a59a[_0x5e0c('0x17')]){_0x1b49e8=!![];_0x23a59a['userId']=_0x270404[_0x56842a]['id'];logger[_0x5e0c('0x13')](_0x5e0c('0x1b'),_0x23a59a[_0x5e0c('0x1c')]);}}}if(!_0x1b49e8){logger[_0x5e0c('0x13')](_0x5e0c('0x1d'));_0x23a59a['userEmail']=_0x23a59a[_0x5e0c('0x1e')];_0x23a59a[_0x5e0c('0x1c')]=_0x23a59a[_0x5e0c('0x12')];_0x1b49e8=!![];}if(_0x1b49e8){_0x1fe792(_0x23a59a);}else{_0x3b6a04({'statusCode':0x194,'message':_0x5e0c('0x1f')});}}else{_0x3b6a04({'statusCode':0x194,'message':_0x5e0c('0x1f')});}})['catch'](function(_0x4bfd90){logger['error']('['+[_0x206d7b['toUpperCase']()]+']',_0x4bfd90['message']);_0x3b6a04(_0x4bfd90);});});};}function getEndUser(_0x14b316,_0x19cead,_0xabe577){return function(_0x483241){return new Promise(function(_0x163af0,_0x3a5cc9){var _0x2c5e27=0x0;var _0x3be293={'method':_0x5e0c('0xb'),'uri':_0xabe577+'/api/contacts/filters','json':!![]};_0x3be293[_0x5e0c('0xd')]=_0x19cead;logger['info'](_0x5e0c('0x20'));return rp(_0x3be293)['then'](function(_0x383349){_0x383349[_0x5e0c('0x21')]['forEach'](function(_0x488852){if(_0x488852['name']==='All\x20Contacts'){_0x2c5e27=_0x488852['id'];}});})['then'](function(){logger[_0x5e0c('0x13')](_0x5e0c('0x22'));var _0x2ff0c7={'method':_0x5e0c('0xb'),'uri':_0xabe577+_0x5e0c('0x23')+_0x2c5e27,'json':!![]};_0x2ff0c7['headers']=_0x19cead;return rp(_0x2ff0c7);})[_0x5e0c('0xf')](function(_0x52dda1){logger[_0x5e0c('0x13')](_0x5e0c('0x24'),_0x483241[_0x5e0c('0x25')]);if(_0x52dda1[_0x5e0c('0x26')][_0x5e0c('0x11')]>0x0){var _0x4ba796=_[_0x5e0c('0x27')](_0x52dda1[_0x5e0c('0x26')],function(_0x51f0be){if(_0x51f0be[_0x5e0c('0x28')]===_0x483241[_0x5e0c('0x25')]||_0x51f0be[_0x5e0c('0x29')]===_0x483241[_0x5e0c('0x25')]){return _0x51f0be;}});if(_0x4ba796){_0x483241[_0x5e0c('0x2a')]=_0x4ba796['id'];logger['info'](_0x5e0c('0x2b'),_0x483241[_0x5e0c('0x2a')]);_0x163af0(_0x483241);}else{return createEndUser(_0x483241,_0x14b316,_0x19cead,_0xabe577)[_0x5e0c('0xf')](function(_0x5cb2c1){logger[_0x5e0c('0x13')]('Contact\x20created:',_0x483241[_0x5e0c('0x2a')]);_0x163af0(_0x5cb2c1);});}}else{return createEndUser(_0x483241,_0x14b316,_0x19cead,_0xabe577)[_0x5e0c('0xf')](function(_0x47fcf3){logger[_0x5e0c('0x13')](_0x5e0c('0x2c'),_0x483241[_0x5e0c('0x2a')]);_0x163af0(_0x47fcf3);});}})['catch'](function(_0x40baa3){throw new Error(_0x40baa3[_0x5e0c('0x16')]);});});};}function createEndUser(_0x185be1,_0x19b3fc,_0x1a90a3,_0x159031){return new Promise(function(_0x186d83,_0x1ef314){var _0x50f49e=moment();var _0x4db416={'method':'POST','uri':_0x159031+_0x5e0c('0x2d'),'body':{'contact':{'last_name':_0x185be1[_0x5e0c('0x25')],'work_number':_0x185be1['contactNumber'],'mobile_number':_0x185be1[_0x5e0c('0x25')],'owner_id':_0x185be1['userId'],'created_at':_0x50f49e[_0x5e0c('0x2e')]('YYYY-MM-DDTHH:mm:ss')}},'json':!![]};_0x4db416['headers']=_0x1a90a3;logger[_0x5e0c('0x13')](_0x5e0c('0x2f'));return rp(_0x4db416)[_0x5e0c('0xf')](function(_0x233295){_0x185be1[_0x5e0c('0x2a')]=_0x233295[_0x5e0c('0x30')]['id'];_0x186d83(_0x185be1);})[_0x5e0c('0x31')](function(_0x508a7e){logger[_0x5e0c('0x14')]('['+[_0x19b3fc[_0x5e0c('0x15')]()]+']',_0x508a7e['message']);_0x1ef314(_0x508a7e[_0x5e0c('0x16')]);});});}function getTicket(_0x39c6ce,_0x4b872c,_0x36a729,_0x1dd7e5,_0x56beb0){return function(_0x2503f6){logger[_0x5e0c('0x13')](_0x5e0c('0x32'));return new Promise(function(_0x12c0a1,_0x132a5b){var _0x10d9bd=moment();var _0x75a261={'method':_0x5e0c('0x33'),'uri':_0x36a729+_0x5e0c('0x34'),'body':{'title':intUtil['getString'](_0x1dd7e5['Subjects'],_0x56beb0,'\x20'),'description':intUtil['getString'](_0x1dd7e5['Descriptions'],_0x56beb0,'\x0a'),'owner_id':_0x2503f6['userId'],'creater_id':_0x2503f6[_0x5e0c('0x12')],'targetable_id':_0x2503f6[_0x5e0c('0x2a')],'targetable_type':_0x5e0c('0x35'),'created_at':_0x10d9bd[_0x5e0c('0x2e')](_0x5e0c('0x36')),'due_date':_0x10d9bd[_0x5e0c('0x37')](0x1e,'m')['format']('YYYY-MM-DDTHH:mm:ss')},'json':!![]};_0x75a261[_0x5e0c('0xd')]=_0x4b872c;return rp(_0x75a261)[_0x5e0c('0xf')](function(_0x47a2d5){_0x2503f6[_0x5e0c('0x38')]=_0x47a2d5[_0x5e0c('0x39')]['id'];logger[_0x5e0c('0x13')](_0x5e0c('0x3a'),_0x2503f6[_0x5e0c('0x38')]);_0x12c0a1(_0x2503f6);})[_0x5e0c('0x31')](function(_0x5ed86d){logger['error']('['+[_0x39c6ce['toUpperCase']()]+']',_0x5ed86d[_0x5e0c('0x16')]);_0x132a5b(_0x5ed86d['message']);});});};}function emit(_0x52477d,_0x5bd685,_0x3a19f7){var _0x446879={'uri':_0x52477d+_0x5e0c('0x3b')+_0x3a19f7};io['to'](util[_0x5e0c('0x2e')]('user:%s',_0x5bd685))[_0x5e0c('0x3c')](_0x5e0c('0x3d'),_0x446879);}exports['cs']=function(_0x3077ee,_0x19a912,_0x303369,_0x8f323c,_0x559296,_0x227158,_0x3ac1ab,_0x169ee8){var _0x1818fa={};var _0xde33f6={'Authorization':_0x5e0c('0x3e')+_0x227158['apiKey']};_0x227158[_0x5e0c('0x3f')]=intUtil['stripTrailingSlash'](_0x227158[_0x5e0c('0x3f')]);_0x227158[_0x5e0c('0x40')]=intUtil['stripTrailingSlash'](_0x227158['serverUrl']);var _0x3a93be=_0x227158[_0x5e0c('0x3f')];_0x1818fa[_0x5e0c('0x1e')]=_0x227158[_0x5e0c('0x41')];_0x1818fa[_0x5e0c('0x25')]=_0x169ee8['toLowerCase']()==='outbound'?_0x19a912[_0x5e0c('0x42')]:_0x19a912[_0x5e0c('0x43')];_0x1818fa[_0x5e0c('0x44')]=_0x169ee8===_0x5e0c('0x45')||_0x169ee8===_0x5e0c('0x46')?_0x5e0c('0x45'):_0x5e0c('0x47');if(_0x8f323c){_0x1818fa[_0x5e0c('0x17')]=_0x8f323c[_0x5e0c('0x1a')];}var _0x31e740=util[_0x5e0c('0x2e')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x227158[_0x5e0c('0x40')],_0x19a912[_0x5e0c('0x48')],md5(_0x19a912[_0x5e0c('0x48')]));if(_0x559296&&_0x559296[_0x5e0c('0x49')]){logger[_0x5e0c('0x13')](_0x5e0c('0x4a'),_0x5e0c('0x4b'));_0x19a912[_0x5e0c('0x4c')]=_0x31e740;}else if(_0x3ac1ab&&_0x3ac1ab[_0x5e0c('0x4d')]&&_0x3ac1ab[_0x5e0c('0x4d')]!==_0x5e0c('0x4e')){logger[_0x5e0c('0x13')](_0x5e0c('0x4f'),_0x5e0c('0x4b'));_0x19a912[_0x5e0c('0x4c')]=_0x31e740;}else{_0x19a912[_0x5e0c('0x4c')]='';}return getAdminId(_0x1818fa,_0x169ee8,_0xde33f6,_0x3a93be)[_0x5e0c('0xf')](getUser(_0x169ee8,_0xde33f6,_0x3a93be))[_0x5e0c('0xf')](getEndUser(_0x169ee8,_0xde33f6,_0x3a93be))[_0x5e0c('0xf')](getTicket(_0x169ee8,_0xde33f6,_0x3a93be,_0x303369,_0x19a912))[_0x5e0c('0xf')](function(_0x2dab00){logger[_0x5e0c('0x13')](util['format']('The\x20ticket\x20ID\x20is:\x20%s',_0x2dab00[_0x5e0c('0x38')]));if(_0x169ee8!==_0x5e0c('0x46')){logger[_0x5e0c('0x13')]('['+[_0x169ee8['toUpperCase']()]+']','Displaying\x20task\x20in\x20a\x20new\x20tab...');emit(_0x3a93be,_0x8f323c[_0x5e0c('0x50')],_0x2dab00[_0x5e0c('0x2a')]);}})[_0x5e0c('0x31')](function(_0x129fe0){logger[_0x5e0c('0x14')]('['+[_0x169ee8[_0x5e0c('0x15')]()]+_0x5e0c('0x51'),util[_0x5e0c('0x52')](_0x129fe0,{'showHidden':!![],'depth':null}));});};