Built motion from commit b9b02fed.|2.6.5
[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 _0x30cb=['mobile_number','endUserId','work_number','/api/contacts','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','POST','/api/tasks','getString','Subjects','Descriptions','Contact','add','ticketId','task','Task\x20created:','/contacts/','user:%s','trigger:browser:url','Token\x20token=','apiKey','stripTrailingSlash','remoteUri','serverUrl','username','toLowerCase','outbound','destcalleridnum','callDirection','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','md5','bluebird','./util','../../../../config/environment','../../../../config/logger','freshsales','redis','localhost','socket.io-emitter','/api/selector/owners','headers','info','Getting\x20admin\x20information','then','users','length','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','GET','Getting\x20user\x20list','Getting\x20user\x20with\x20email','agentEmail','userEmail','email','userId','adminEmail','/api/lookup?q=','&f=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber'];(function(_0xf1ceb4,_0x3443e6){var _0x42ed45=function(_0x9ec7fa){while(--_0x9ec7fa){_0xf1ceb4['push'](_0xf1ceb4['shift']());}};_0x42ed45(++_0x3443e6);}(_0x30cb,0x1d5));var _0xb30c=function(_0x510000,_0x3ad84a){_0x510000=_0x510000-0x0;var _0x38f83b=_0x30cb[_0x510000];return _0x38f83b;};'use strict';var _=require(_0xb30c('0x0'));var rp=require(_0xb30c('0x1'));var md5=require(_0xb30c('0x2'));var util=require('util');var moment=require('moment');var Promise=require(_0xb30c('0x3'));var Redis=require('ioredis');var intUtil=require(_0xb30c('0x4'));var config=require(_0xb30c('0x5'));var logger=require(_0xb30c('0x6'))(_0xb30c('0x7'));config['redis']=_['defaults'](config[_0xb30c('0x8')],{'host':_0xb30c('0x9'),'port':0x18eb});var io=require(_0xb30c('0xa'))(new Redis(config[_0xb30c('0x8')]));function getAdminId(_0x168031,_0x36aeb9,_0x12a0ba,_0x58b059){return new Promise(function(_0x3cb9f7,_0x27ba11){var _0x355222=![];var _0x45e495={'method':'GET','uri':_0x58b059+_0xb30c('0xb'),'json':!![]};_0x45e495[_0xb30c('0xc')]=_0x12a0ba;logger[_0xb30c('0xd')](_0xb30c('0xe'));return rp(_0x45e495)[_0xb30c('0xf')](function(_0x2e63ec){if(_0x2e63ec){var _0x1e0c8f=_0x2e63ec[_0xb30c('0x10')];var _0x2bbb79=null;for(_0x2bbb79=0x0;_0x2bbb79<_0x1e0c8f[_0xb30c('0x11')];_0x2bbb79++){if(_0x1e0c8f[_0x2bbb79]['email']===_0x168031['adminEmail']){_0x168031[_0xb30c('0x12')]=_0x1e0c8f[_0x2bbb79]['id'];_0x355222=!![];}}if(_0x355222){logger[_0xb30c('0xd')](_0xb30c('0x13'),_0x168031[_0xb30c('0x12')]);_0x3cb9f7(_0x168031);}else{_0x27ba11({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x27ba11({'statusCode':0x194,'message':_0xb30c('0x14')});}})[_0xb30c('0x15')](function(_0xcea418){logger[_0xb30c('0x16')]('['+[_0x36aeb9[_0xb30c('0x17')]()]+']',_0xcea418[_0xb30c('0x18')]);_0x27ba11(_0xcea418);});});}function getUser(_0x538b54,_0xd1a836,_0x3ff676){return function(_0x58ec97){return new Promise(function(_0xdf6106,_0x57b150){var _0x2693dd={'method':_0xb30c('0x19'),'uri':_0x3ff676+'/api/selector/owners','json':!![]};_0x2693dd[_0xb30c('0xc')]=_0xd1a836;logger[_0xb30c('0xd')](_0xb30c('0x1a'));return rp(_0x2693dd)[_0xb30c('0xf')](function(_0x5db27b){if(_0x5db27b){var _0x18ad19=_0x5db27b[_0xb30c('0x10')];var _0x268624=![];var _0x5e124d=null;if(_0x58ec97['agentEmail']!==null){logger[_0xb30c('0xd')](_0xb30c('0x1b'),_0x58ec97[_0xb30c('0x1c')]);_0x58ec97[_0xb30c('0x1d')]=_0x58ec97['agentEmail'];for(_0x5e124d=0x0;_0x5e124d<_0x18ad19[_0xb30c('0x11')];_0x5e124d++){if(_0x18ad19[_0x5e124d][_0xb30c('0x1e')]===_0x58ec97[_0xb30c('0x1c')]){_0x268624=!![];_0x58ec97[_0xb30c('0x1f')]=_0x18ad19[_0x5e124d]['id'];logger[_0xb30c('0xd')]('User\x20found:',_0x58ec97[_0xb30c('0x1f')]);}}}if(!_0x268624){logger['info']('Admin\x20selected');_0x58ec97[_0xb30c('0x1d')]=_0x58ec97[_0xb30c('0x20')];_0x58ec97[_0xb30c('0x1f')]=_0x58ec97[_0xb30c('0x12')];_0x268624=!![];}if(_0x268624){_0xdf6106(_0x58ec97);}else{_0x57b150({'statusCode':0x194,'message':_0xb30c('0x14')});}}else{_0x57b150({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0xb30c('0x15')](function(_0x4df6da){logger['error']('['+[_0x538b54[_0xb30c('0x17')]()]+']',_0x4df6da['message']);_0x57b150(_0x4df6da);});});};}function searchContact(_0x173b65,_0x2fd05c,_0x32f5f2,_0x348b6f){return new Promise(function(_0x59c280,_0x46ccaa){var _0x40e430={'method':'GET','headers':_0x2fd05c,'uri':_0x173b65+_0xb30c('0x21')+_0x348b6f+_0xb30c('0x22')+_0x32f5f2+_0xb30c('0x23'),'json':!![]};rp(_0x40e430)['then'](function(_0x312a94){var _0x4d2221=_[_0xb30c('0x24')](_0x312a94[_0xb30c('0x25')][_0xb30c('0x25')],[_0x32f5f2,_0x348b6f]);_0x59c280(_0x4d2221);})[_0xb30c('0x15')](function(_0x2d9588){_0x46ccaa(_0x2d9588);});});}function getEndUser(_0x1fee7f,_0x149bf2,_0x405ad3){return function(_0x258571){return new Promise(function(_0x21cdf9,_0xf1d99d){logger['info'](util[_0xb30c('0x26')](_0xb30c('0x27'),_0x258571[_0xb30c('0x28')]));searchContact(_0x405ad3,_0x149bf2,_0xb30c('0x29'),_0x258571[_0xb30c('0x28')])[_0xb30c('0xf')](function(_0x36eca4){if(_0x36eca4){_0x258571[_0xb30c('0x2a')]=_0x36eca4['id'];logger[_0xb30c('0xd')]('Contact\x20found\x20mobile_number:',_0x258571['endUserId']);return _0x21cdf9(_0x258571);}searchContact(_0x405ad3,_0x149bf2,_0xb30c('0x2b'),_0x258571[_0xb30c('0x28')])['then'](function(_0x165df1){if(_0x165df1){_0x258571[_0xb30c('0x2a')]=_0x165df1['id'];logger[_0xb30c('0xd')]('Contact\x20found\x20work_number:',_0x258571[_0xb30c('0x2a')]);return _0x21cdf9(_0x258571);}createEndUser(_0x258571,_0x1fee7f,_0x149bf2,_0x405ad3)[_0xb30c('0xf')](function(_0x57566d){logger[_0xb30c('0xd')]('Contact\x20created:',_0x57566d['endUserId']);return _0x21cdf9(_0x57566d);});});})[_0xb30c('0x15')](function(_0x11979b){_0xf1d99d(_0x11979b);});});};}function createEndUser(_0x14b3be,_0x5799a7,_0x29a9f7,_0x360cbc){return new Promise(function(_0x302b18,_0x2d7a66){var _0x12ca60=moment();var _0x342d65={'method':'POST','uri':_0x360cbc+_0xb30c('0x2c'),'body':{'contact':{'last_name':_0x14b3be[_0xb30c('0x28')],'work_number':_0x14b3be[_0xb30c('0x28')],'mobile_number':_0x14b3be['contactNumber'],'owner_id':_0x14b3be[_0xb30c('0x1f')],'created_at':_0x12ca60['format'](_0xb30c('0x2d'))}},'json':!![]};_0x342d65[_0xb30c('0xc')]=_0x29a9f7;logger[_0xb30c('0xd')](_0xb30c('0x2e'));return rp(_0x342d65)['then'](function(_0x1e6d9b){_0x14b3be[_0xb30c('0x2a')]=_0x1e6d9b[_0xb30c('0x2f')]['id'];_0x302b18(_0x14b3be);})[_0xb30c('0x15')](function(_0x4549ea){logger[_0xb30c('0x16')]('['+[_0x5799a7['toUpperCase']()]+']',_0x4549ea[_0xb30c('0x18')]);_0x2d7a66(_0x4549ea[_0xb30c('0x18')]);});});}function getTicket(_0x32fa7b,_0x12325b,_0x581949,_0x22d75e,_0x1b0870){return function(_0x4e8345){logger[_0xb30c('0xd')]('Creating\x20new\x20task');return new Promise(function(_0x556927,_0x27dccd){var _0x5b5844=moment();var _0x2ab4d5={'method':_0xb30c('0x30'),'uri':_0x581949+_0xb30c('0x31'),'body':{'title':intUtil[_0xb30c('0x32')](_0x22d75e[_0xb30c('0x33')],_0x1b0870,'\x20'),'description':intUtil[_0xb30c('0x32')](_0x22d75e[_0xb30c('0x34')],_0x1b0870,'\x0a'),'owner_id':_0x4e8345[_0xb30c('0x1f')],'creater_id':_0x4e8345[_0xb30c('0x12')],'targetable_id':_0x4e8345['endUserId'],'targetable_type':_0xb30c('0x35'),'created_at':_0x5b5844[_0xb30c('0x26')](_0xb30c('0x2d')),'due_date':_0x5b5844[_0xb30c('0x36')](0x1e,'m')[_0xb30c('0x26')](_0xb30c('0x2d'))},'json':!![]};_0x2ab4d5[_0xb30c('0xc')]=_0x12325b;return rp(_0x2ab4d5)[_0xb30c('0xf')](function(_0x20ba01){_0x4e8345[_0xb30c('0x37')]=_0x20ba01[_0xb30c('0x38')]['id'];logger[_0xb30c('0xd')](_0xb30c('0x39'),_0x4e8345['ticketId']);_0x556927(_0x4e8345);})[_0xb30c('0x15')](function(_0x344308){logger['error']('['+[_0x32fa7b['toUpperCase']()]+']',_0x344308[_0xb30c('0x18')]);_0x27dccd(_0x344308[_0xb30c('0x18')]);});});};}function emit(_0x1fb0b8,_0x117ada,_0x23a14e){var _0x5a6686={'uri':_0x1fb0b8+_0xb30c('0x3a')+_0x23a14e};io['to'](util[_0xb30c('0x26')](_0xb30c('0x3b'),_0x117ada))['emit'](_0xb30c('0x3c'),_0x5a6686);}exports['cs']=function(_0x3f8c05,_0x417111,_0x22ed08,_0x32f207,_0x5da123,_0x425ee3,_0x99372,_0x38773a){var _0x3cd0ac={};var _0x1ad25a={'Authorization':_0xb30c('0x3d')+_0x425ee3[_0xb30c('0x3e')]};_0x425ee3['remoteUri']=intUtil[_0xb30c('0x3f')](_0x425ee3[_0xb30c('0x40')]);_0x425ee3[_0xb30c('0x41')]=intUtil[_0xb30c('0x3f')](_0x425ee3[_0xb30c('0x41')]);var _0x2d828e=_0x425ee3[_0xb30c('0x40')];_0x3cd0ac[_0xb30c('0x20')]=_0x425ee3[_0xb30c('0x42')];_0x3cd0ac['contactNumber']=_0x38773a[_0xb30c('0x43')]()===_0xb30c('0x44')?_0x417111[_0xb30c('0x45')]:_0x417111['calleridnum'];_0x3cd0ac[_0xb30c('0x46')]=_0x38773a===_0xb30c('0x47')||_0x38773a===_0xb30c('0x48')?_0xb30c('0x47'):_0xb30c('0x44');if(_0x32f207){_0x3cd0ac['agentEmail']=_0x32f207[_0xb30c('0x1e')];}var _0x1377e5=util[_0xb30c('0x26')](_0xb30c('0x49'),_0x425ee3[_0xb30c('0x41')],_0x417111[_0xb30c('0x4a')],md5(_0x417111[_0xb30c('0x4a')]));if(_0x5da123&&_0x5da123['monitor_format']){logger[_0xb30c('0xd')](_0xb30c('0x4b'),_0xb30c('0x4c'));_0x417111[_0xb30c('0x4d')]=_0x1377e5;}else if(_0x99372&&_0x99372[_0xb30c('0x4e')]&&_0x99372[_0xb30c('0x4e')]!==_0xb30c('0x4f')){logger[_0xb30c('0xd')](_0xb30c('0x50'),_0xb30c('0x4c'));_0x417111[_0xb30c('0x4d')]=_0x1377e5;}else{_0x417111[_0xb30c('0x4d')]='';}return getAdminId(_0x3cd0ac,_0x38773a,_0x1ad25a,_0x2d828e)[_0xb30c('0xf')](getUser(_0x38773a,_0x1ad25a,_0x2d828e))['then'](getEndUser(_0x38773a,_0x1ad25a,_0x2d828e))[_0xb30c('0xf')](getTicket(_0x38773a,_0x1ad25a,_0x2d828e,_0x22ed08,_0x417111))[_0xb30c('0xf')](function(_0x1d4939){logger[_0xb30c('0xd')](util['format'](_0xb30c('0x51'),_0x1d4939[_0xb30c('0x37')]));if(_0x38773a!==_0xb30c('0x48')){logger[_0xb30c('0xd')]('['+[_0x38773a['toUpperCase']()]+']','Displaying\x20task\x20in\x20a\x20new\x20tab...');emit(_0x2d828e,_0x32f207[_0xb30c('0x52')],_0x1d4939[_0xb30c('0x2a')]);}})[_0xb30c('0x15')](function(_0x2bff12){logger[_0xb30c('0x16')]('['+[_0x38773a[_0xb30c('0x17')]()]+_0xb30c('0x53'),util[_0xb30c('0x54')](_0x2bff12,{'showHidden':!![],'depth':null}));});};