Built motion from commit ecf5ab8ec560fd4c6972692268e350fcef2f38e7. Version 3.0.0...
[motion-next.git] / server / services / ami / trigger / integration / freshdesk.js
1 const a1137_0x1abe=['apiKey','content','Caller\x20-\x20%s','lastevent','email','util','%s/api/v2/agents/me','%s/helpdesk/tickets/%d','Descriptions','Recording\x20is\x20enabled!','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','length','stripTrailingSlash','request-promise-native','../../../../rediscache','custom_fields','info','Admin\x20account\x20selected.','Subjects','idField','[OUTBOUND]','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','GET','unmanaged','merge','variable','The\x20Enduser\x20ID\x20is:','Variable','destcalleridname','POST','defaults','nameField','calleridname','variableName','Searching\x20enduser\x20with\x20phone','outbound','%s/api/v2/contacts','[QUEUE]','getString','type','The\x20User\x20ID\x20is:','map','customVariable','Creating\x20new\x20ticket...','none','value','format','catch','../../../../config/logger','application/json','Ticket\x20created!','remoteUri','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/api/v2/tickets','validateEmail','toString','from','toUpperCase','[HTTP]','keyBy','Tags','name','user:%s','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','string','recordingURL','queue','uniqueid','contact','<br>','customField','recordingFormat','debug','forEach','serverUrl','toLowerCase','emit','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','calleridnum','error','The\x20Ticket\x20ID\x20is:','Fields','monitor_format','mapValues','Authorization','%s/api/v2/agents','./util','push','stringify','then'];(function(_0x54abde,_0x1abe3c){const _0x3e80e8=function(_0x1056e0){while(--_0x1056e0){_0x54abde['push'](_0x54abde['shift']());}};_0x3e80e8(++_0x1abe3c);}(a1137_0x1abe,0x141));const a1137_0x3e80=function(_0x54abde,_0x1abe3c){_0x54abde=_0x54abde-0x0;let _0x3e80e8=a1137_0x1abe[_0x54abde];return _0x3e80e8;};const _0x217d56=a1137_0x3e80;'use strict';const _=require('lodash'),rp=require(_0x217d56('0x34')),md5=require('md5'),util=require(_0x217d56('0x2c')),intUtil=require(_0x217d56('0x23')),logger=require(_0x217d56('0x57'))('freshdesk'),{getSocket}=require(_0x217d56('0x35')),io=getSocket(),headers={'Content-Type':'application/json','Accept':_0x217d56('0x58')};function emit(_0x1056e0,_0x461dc1,_0x5a2052){const _0x1b9d6c=_0x217d56;io['to'](_0x1056e0)[_0x1b9d6c('0x19')](_0x461dc1,_0x5a2052);}function getTicket(_0x52513d,_0x433894,_0x4daa04,_0x426d81,_0x488e2c){const _0x5affe1=_0x217d56;logger[_0x5affe1('0x37')](_0x5affe1('0x52'));const _0xf60605=_[_0x5affe1('0x3f')]({'responder_id':_0x433894['id'],'requester_id':_0x4daa04['id'],'name':util[_0x5affe1('0x55')](_0x5affe1('0x29'),_0x488e2c[_0x5affe1('0x47')]),'phone':_0x488e2c[_0x5affe1('0x1b')],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil[_0x5affe1('0x4d')](_0x426d81[_0x5affe1('0x39')],_0x488e2c,'\x20'),'description':intUtil[_0x5affe1('0x4d')](_0x426d81[_0x5affe1('0x2f')],_0x488e2c,_0x5affe1('0x12')),'tags':getTags(_0x426d81[_0x5affe1('0x9')],'name')},getCustomFields(_0x426d81[_0x5affe1('0x1e')],_0x488e2c));return _0xf60605[_0x5affe1('0x36')]=_[_0x5affe1('0x20')](_[_0x5affe1('0x8')](_0xf60605[_0x5affe1('0x36')],'id'),_0x5affe1('0x54')),request({'uri':util[_0x5affe1('0x55')](_0x5affe1('0x2'),_0x52513d[_0x5affe1('0x0')]),'method':_0x5affe1('0x44'),'body':_0xf60605})[_0x5affe1('0x26')](function(_0x4d9756){const _0x24863b=_0x5affe1;return logger[_0x24863b('0x37')](_0x24863b('0x59')),_0x4d9756;});}function getUser(_0x4215c6,_0xcff957){const _0x10cd7c=_0x217d56;return intUtil[_0x10cd7c('0x3')](_0xcff957)?request({'uri':util[_0x10cd7c('0x55')](_0x10cd7c('0x22'),_0x4215c6['remoteUri']),'qs':{'email':_0xcff957}})[_0x10cd7c('0x26')](function(_0x3ccc03){const _0x3b4cd1=_0x10cd7c;return _0x3ccc03[_0x3b4cd1('0x32')]?(logger[_0x3b4cd1('0x37')]('Agent\x20found!'),_['find'](_0x3ccc03,function(_0x22713c){const _0x5b94a1=_0x3b4cd1;return _0x22713c[_0x5b94a1('0x11')][_0x5b94a1('0x2b')]===_0xcff957;})):(logger['info'](_0x3b4cd1('0x31')),request({'uri':util['format'](_0x3b4cd1('0x2d'),_0x4215c6['remoteUri'])})['then'](function(_0x3571e9){const _0x7e7e2=_0x3b4cd1;return logger[_0x7e7e2('0x37')](_0x7e7e2('0x38')),_0x3571e9;}));}):(logger['info'](_0x10cd7c('0x1a')),request({'uri':util[_0x10cd7c('0x55')](_0x10cd7c('0x2d'),_0x4215c6[_0x10cd7c('0x0')])})[_0x10cd7c('0x26')](function(_0x1499e0){const _0x179262=_0x10cd7c;return logger[_0x179262('0x37')](_0x179262('0x38')),_0x1499e0;}));}function getEndUser(_0x39c070,_0xf9a9c4,_0x2a90ee){const _0x4a3099=_0x217d56;return logger[_0x4a3099('0x37')](_0x4a3099('0x49'),_0x2a90ee),request({'uri':util[_0x4a3099('0x55')](_0x4a3099('0x4b'),_0x39c070[_0x4a3099('0x0')]),'qs':{'phone':_0x2a90ee}})[_0x4a3099('0x26')](function(_0x1833d0){const _0x67c409=_0x4a3099;return _0x1833d0[_0x67c409('0x32')]?(logger[_0x67c409('0x37')]('Enduser\x20found!'),_['find'](_0x1833d0,{'phone':_0x2a90ee})):(logger[_0x67c409('0x37')](_0x67c409('0x1')),request({'uri':util[_0x67c409('0x55')]('%s/api/v2/contacts',_0x39c070[_0x67c409('0x0')]),'method':_0x67c409('0x44'),'body':{'name':_0xf9a9c4,'phone':_0x2a90ee}})[_0x67c409('0x26')](function(_0x107f39){return logger['info']('Enduser\x20created.'),_0x107f39;}));});}function getAuth(_0x21e68d){const _0x349376=_0x217d56;return util[_0x349376('0x55')]('Basic\x20%s',Buffer[_0x349376('0x5')](_0x21e68d[_0x349376('0x27')]+':X')[_0x349376('0x4')]('base64'));}function request(_0x2507fa){const _0x4b2367=_0x217d56;return logger[_0x4b2367('0x15')](_0x4b2367('0x7'),JSON['stringify'](_0x2507fa)),rp(_[_0x4b2367('0x45')](_0x2507fa,{'method':_0x4b2367('0x3d'),'headers':headers,'json':!![]}));}function getTags(_0x39f174,_0x562724){const _0x548dcd=_0x217d56;let _0x3ec8d8=[];return _0x39f174&&_0x39f174[_0x548dcd('0x32')]>0x0&&(_0x3ec8d8=_[_0x548dcd('0x50')](_0x39f174,_0x562724)),_0x3ec8d8;}function getCustomFields(_0x5f3f79,_0x4cb43d){const _0x7cbf2a=_0x217d56,_0x1a9e7b={'custom_fields':[]};return _0x5f3f79['length']>0x0&&_[_0x7cbf2a('0x16')](_0x5f3f79,function(_0xe98b92){const _0x4b147d=_0x7cbf2a;if(_0xe98b92[_0x4b147d('0x4e')]===_0x4b147d('0xd')&&_0xe98b92[_0x4b147d('0x46')]&&!_0xe98b92[_0x4b147d('0x13')])_0x1a9e7b[_0xe98b92[_0x4b147d('0x46')][_0x4b147d('0x18')]()]=_0xe98b92[_0x4b147d('0x28')][_0x4b147d('0x4')]();else{if(_0xe98b92[_0x4b147d('0x4e')]===_0x4b147d('0xd')&&_0xe98b92['idField']&&_0xe98b92[_0x4b147d('0x13')])_0x1a9e7b['custom_fields'][_0x4b147d('0x24')]({'id':_0xe98b92[_0x4b147d('0x3a')],'value':_0xe98b92[_0x4b147d('0x28')][_0x4b147d('0x4')]()});else{if(_0xe98b92['type']===_0x4b147d('0x40')&&_0xe98b92[_0x4b147d('0x48')]&&_0xe98b92[_0x4b147d('0x3a')]&&_0xe98b92[_0x4b147d('0x13')])_0x4cb43d[_0xe98b92['variableName']]&&_0x1a9e7b[_0x4b147d('0x36')][_0x4b147d('0x24')]({'id':_0xe98b92[_0x4b147d('0x3a')],'value':_0x4cb43d[_0xe98b92[_0x4b147d('0x48')]][_0x4b147d('0x4')]()});else _0xe98b92[_0x4b147d('0x4e')]===_0x4b147d('0x51')&&_0xe98b92[_0x4b147d('0x42')]&&_0xe98b92[_0x4b147d('0x42')][_0x4b147d('0xa')]&&_0xe98b92[_0x4b147d('0x3a')]&&_0xe98b92[_0x4b147d('0x13')]&&(_0x4cb43d[_0xe98b92[_0x4b147d('0x42')][_0x4b147d('0xa')][_0x4b147d('0x18')]()]&&_0x1a9e7b['custom_fields'][_0x4b147d('0x24')]({'id':_0xe98b92[_0x4b147d('0x3a')],'value':_0x4cb43d[_0xe98b92[_0x4b147d('0x42')]['name'][_0x4b147d('0x18')]()][_0x4b147d('0x4')]()}));}}}),_0x1a9e7b;}exports[_0x217d56('0xf')]=function(_0x12f872,_0x17fe20,_0x1f07f8,_0xc5e34c,_0xfa32bd,_0x4d3097){const _0x32c3bd=_0x217d56;let _0x31104c,_0xd8de30;return _0x4d3097[_0x32c3bd('0x0')]=intUtil[_0x32c3bd('0x33')](_0x4d3097[_0x32c3bd('0x0')]),_0x4d3097['serverUrl']=intUtil[_0x32c3bd('0x33')](_0x4d3097['serverUrl']),_0xfa32bd&&_0xfa32bd['monitor_format']?(logger[_0x32c3bd('0x37')]('[QUEUE]',_0x32c3bd('0x30')),_0x17fe20[_0x32c3bd('0xe')]=util[_0x32c3bd('0x55')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x4d3097[_0x32c3bd('0x17')],_0x17fe20[_0x32c3bd('0x10')],md5(_0x17fe20[_0x32c3bd('0x10')]))):_0x17fe20['recordingURL']='',headers[_0x32c3bd('0x21')]=getAuth(_0x4d3097),getUser(_0x4d3097,_0xc5e34c[_0x32c3bd('0x2b')])[_0x32c3bd('0x26')](function(_0x2a7a3e){const _0xbe0ebc=_0x32c3bd;return _0x31104c=_0x2a7a3e,logger[_0xbe0ebc('0x37')](_0xbe0ebc('0x4f'),_0x31104c['id']),getEndUser(_0x4d3097,_0x17fe20[_0xbe0ebc('0x47')],_0x17fe20[_0xbe0ebc('0x1b')]);})[_0x32c3bd('0x26')](function(_0x4af9e7){const _0x5bc51d=_0x32c3bd;return _0xd8de30=_0x4af9e7,logger[_0x5bc51d('0x37')](_0x5bc51d('0x41'),_0xd8de30['id']),getTicket(_0x4d3097,_0x31104c,_0xd8de30,_0x1f07f8,_0x17fe20);})['then'](function(_0x2aab32){const _0x3966c5=_0x32c3bd;_0x2aab32&&_0x2aab32['id']&&(logger[_0x3966c5('0x37')](_0x3966c5('0x59')),logger[_0x3966c5('0x37')](_0x3966c5('0x1d'),_0x2aab32['id']),logger[_0x3966c5('0x37')](_0x3966c5('0x4c'),_0x3966c5('0x3c')),emit(util['format'](_0x3966c5('0xb'),_0xc5e34c['name']),'trigger:browser:url',{'uri':util['format'](_0x3966c5('0x2e'),_0x4d3097[_0x3966c5('0x0')],_0x2aab32['id'])}));})[_0x32c3bd('0x56')](function(_0xd59ed){const _0x57d705=_0x32c3bd;logger[_0x57d705('0x1c')](_0x57d705('0x4c'),JSON[_0x57d705('0x25')](_0xd59ed));});},exports[_0x217d56('0x4a')]=function(_0x301226,_0x4acf1c,_0x1a5583,_0x452b50,_0x5b74fb,_0xceb79,_0x4763fb){const _0x301828=_0x217d56;let _0x37b89c,_0x221105;return _0xceb79[_0x301828('0x0')]=intUtil['stripTrailingSlash'](_0xceb79['remoteUri']),_0xceb79[_0x301828('0x17')]=intUtil['stripTrailingSlash'](_0xceb79['serverUrl']),_0x4763fb&&_0x4763fb[_0x301828('0x14')]&&_0x4763fb['recordingFormat']!==_0x301828('0x53')&&(logger[_0x301828('0x37')]('[OUTBOUND]',_0x301828('0x30')),_0x4acf1c[_0x301828('0xe')]=util['format'](_0x301828('0xc'),_0xceb79['serverUrl'],_0x4acf1c[_0x301828('0x10')],md5(_0x4acf1c[_0x301828('0x10')]))),headers[_0x301828('0x21')]=getAuth(_0xceb79),getUser(_0xceb79,_0x452b50[_0x301828('0x2b')])[_0x301828('0x26')](function(_0x2ead73){const _0x511c04=_0x301828;return _0x37b89c=_0x2ead73,logger[_0x511c04('0x37')](_0x511c04('0x4f'),_0x37b89c['id']),getEndUser(_0xceb79,_0x4acf1c[_0x511c04('0x43')],_0x4acf1c['destcalleridnum']);})[_0x301828('0x26')](function(_0x45bbea){const _0x31619b=_0x301828;return _0x221105=_0x45bbea,logger[_0x31619b('0x37')](_0x31619b('0x41'),_0x221105['id']),getTicket(_0xceb79,_0x37b89c,_0x221105,_0x1a5583,_0x4acf1c);})['then'](function(_0x298d48){const _0x499018=_0x301828;_0x298d48&&_0x298d48['id']&&(logger[_0x499018('0x37')](_0x499018('0x59')),logger['info'](_0x499018('0x1d'),_0x298d48['id']),logger[_0x499018('0x37')]('[OUTBOUND]',_0x499018('0x3c')),emit(util[_0x499018('0x55')]('user:%s',_0x452b50[_0x499018('0xa')]),'trigger:browser:url',{'uri':util[_0x499018('0x55')](_0x499018('0x2e'),_0xceb79[_0x499018('0x0')],_0x298d48['id'])}));})[_0x301828('0x56')](function(_0xaf7be1){const _0xac38ea=_0x301828;logger['error'](_0xac38ea('0x3b'),JSON[_0xac38ea('0x25')](_0xaf7be1));});},exports[_0x217d56('0x3e')]=function(_0x493caf,_0x3d854b,_0x63eb00,_0x849641,_0xab3958,_0x1e308e){const _0x5a780c=_0x217d56;let _0x1e40a5,_0x45963c;return _0x1e308e['remoteUri']=intUtil[_0x5a780c('0x33')](_0x1e308e[_0x5a780c('0x0')]),_0x1e308e[_0x5a780c('0x17')]=intUtil[_0x5a780c('0x33')](_0x1e308e[_0x5a780c('0x17')]),_0xab3958&&_0xab3958[_0x5a780c('0x1f')]?(logger[_0x5a780c('0x37')]('['+_0x3d854b[_0x5a780c('0x2a')][_0x5a780c('0x6')]()+']','Recording\x20is\x20enabled!'),_0x3d854b[_0x5a780c('0xe')]=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x1e308e[_0x5a780c('0x17')],_0x3d854b[_0x5a780c('0x10')],md5(_0x3d854b[_0x5a780c('0x10')]))):_0x3d854b['recordingURL']='',headers['Authorization']=getAuth(_0x1e308e),getUser(_0x1e308e,'')['then'](function(_0x3a5421){const _0x5a9192=_0x5a780c;return _0x1e40a5=_0x3a5421,logger['info'](_0x5a9192('0x4f'),_0x1e40a5['id']),getEndUser(_0x1e308e,_0x3d854b[_0x5a9192('0x47')],_0x3d854b[_0x5a9192('0x1b')]);})[_0x5a780c('0x26')](function(_0x253d42){const _0x2e7acb=_0x5a780c;return _0x45963c=_0x253d42,logger['info'](_0x2e7acb('0x41'),_0x45963c['id']),getTicket(_0x1e308e,_0x1e40a5,_0x45963c,_0x63eb00,_0x3d854b);})[_0x5a780c('0x26')](function(_0xee3ae6){const _0x5dcbfa=_0x5a780c;_0xee3ae6&&(logger['info']('Ticket\x20created!'),logger[_0x5dcbfa('0x37')]('The\x20Ticket\x20ID\x20is:',_0xee3ae6['id']));})['catch'](function(_0x2dfeaf){const _0x2619e0=_0x5a780c;logger['error']('['+_0x3d854b['lastevent'][_0x2619e0('0x6')]()+']',JSON[_0x2619e0('0x25')](_0x2dfeaf));});};