Built motion from commit f861bcb808219e66da88ba48b61bddb35224a65e. Version 3.0.0...
[motion-next.git] / server / services / ami / trigger / integration / zendesk.js
1 'use strict';const a1338_0x2092=['type','serverUrl','\x20Error\x20running\x20Zendesk\x20integration','integrationTab','504122gSrilN','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','calleridnum','username','util','token','user','forEach','variable','count','1bOXWUn','82563JLRtpe','variableName','3rqCkEn','Basic\x20%s','Displaying\x20ticket\x20to\x20agent...','Creating\x20new\x20ticket...','destcalleridnum','[HTTP]','Admin\x20account\x20selected.','%s/users/me.json','results','newTab','info','%s/users.json','lodash','%s:%s','customVariable','filter','picklist','password','map','find','nameField','catch','emit','stringify','toString','authType','Descriptions','then','uniqueid','Subjects','defaults','[OUTBOUND]','string','email','The\x20User\x20ID\x20is:','The\x20Enduser\x20ID\x20is:','The\x20Ticket\x20ID\x20is:','outbound','stripTrailingSlash','60387IMlemC','toUpperCase','push','[QUEUE]','customField','content','GET','monitor_format','first','length','none','Authorization','type:user\x20role:agent\x20email:%s','ticket','custom_fields','%s/search.json','trigger:browser:url','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','md5','181156qOBSyT','unmanaged','Agent\x20found!','destcalleridname','%s/token:%s','1SEWJEU','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','calleridname','name','Variable','./util','error','queue','idField','Zendesk\x20account\x20type\x20not\x20recognized','294329gkCfui','[QUEUE]\x20Error\x20running\x20Zendesk\x20integration','Enduser\x20found!','695017bvUHWr','getString','Recording\x20is\x20enabled!','format','POST','Enduser\x20created.','[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration','toLowerCase','593904QHTilu','Ticket\x20created!','base64','%s/agent/tickets/%s','Caller\x20-\x20%s','recordingURL','inspect','from','remoteUri','Searching\x20enduser\x20with\x20phone','includes','%s/channels/voice/agents/%d/tickets/%d/display.json','lastevent','/api/v2'];const a1338_0x4142=function(_0x17fc38,_0x326a74){_0x17fc38=_0x17fc38-0x1e9;let _0x20925c=a1338_0x2092[_0x17fc38];return _0x20925c;};const a1338_0x437a80=a1338_0x4142;(function(_0x1824db,_0x49dec5){const _0x374602=a1338_0x4142;while(!![]){try{const _0x3cdbab=-parseInt(_0x374602(0x21a))+-parseInt(_0x374602(0x22c))+-parseInt(_0x374602(0x239))*-parseInt(_0x374602(0x200))+parseInt(_0x374602(0x1ed))+-parseInt(_0x374602(0x205))*-parseInt(_0x374602(0x212))+parseInt(_0x374602(0x20f))+-parseInt(_0x374602(0x236))*parseInt(_0x374602(0x237));if(_0x3cdbab===_0x49dec5)break;else _0x1824db['push'](_0x1824db['shift']());}catch(_0x54565f){_0x1824db['push'](_0x1824db['shift']());}}}(a1338_0x2092,0x64bc4));const _=require(a1338_0x437a80(0x245)),rp=require('request-promise-native'),md5=require(a1338_0x437a80(0x1ff)),util=require(a1338_0x437a80(0x230)),intUtil=require(a1338_0x437a80(0x20a)),logger=require('@config/logger')('zendesk'),{getSocket}=require('@rediscache'),io=getSocket();function emit(_0x5189ff,_0x50c4d8,_0x3d93ef){const _0x4a6c5c=a1338_0x437a80;io['to'](_0x5189ff)[_0x4a6c5c(0x24f)](_0x50c4d8,_0x3d93ef);}const headers={'Content-Type':'application/json','Accept':'application/json'};function getTicket(_0xf4d688,_0x55ec9e,_0x3632e5,_0x2e674d,_0x463aa1){const _0xfcf6cb=a1338_0x437a80;return logger[_0xfcf6cb(0x243)](_0xfcf6cb(0x23c)),request({'uri':util[_0xfcf6cb(0x215)]('%s/tickets.json',_0xf4d688[_0xfcf6cb(0x222)]),'method':'POST','body':{'ticket':_['merge']({'requester_id':_0x3632e5['id'],'submitter_id':_0x55ec9e?_0x55ec9e['id']:undefined,'assignee_id':_0x55ec9e?_0x55ec9e['id']:undefined,'tags':getTags(_0x2e674d['Tags'],_0xfcf6cb(0x208)),'subject':intUtil[_0xfcf6cb(0x213)](_0x2e674d[_0xfcf6cb(0x256)],_0x463aa1,'\x20'),'description':intUtil['getString'](_0x2e674d['Descriptions'],_0x463aa1,'\x0a'),'comment':{'public':![],'body':intUtil[_0xfcf6cb(0x213)](_0x2e674d[_0xfcf6cb(0x253)],_0x463aa1,'\x0a')}},getCustomFields(_0x2e674d['Fields'],_0x463aa1))}})[_0xfcf6cb(0x254)](function(_0x2027c7){const _0x56da56=_0xfcf6cb;return logger[_0x56da56(0x243)](_0x56da56(0x21b)),_0x2027c7[_0x56da56(0x1fa)];});}function getUser(_0xcf1719,_0x21f020){const _0x2800b7=a1338_0x437a80;return intUtil['validateEmail'](_0x21f020)?(logger['info']('Getting\x20agent\x20with\x20email',_0x21f020),request({'uri':util[_0x2800b7(0x215)]('%s/search.json',_0xcf1719[_0x2800b7(0x222)]),'qs':{'query':util[_0x2800b7(0x215)](_0x2800b7(0x1f9),_0x21f020)}})[_0x2800b7(0x254)](function(_0x25eb43){const _0x5706bc=_0x2800b7;return _0x25eb43[_0x5706bc(0x235)]?(logger['info'](_0x5706bc(0x202)),_[_0x5706bc(0x24c)](_0x25eb43[_0x5706bc(0x241)],{'email':_0x21f020,'role':'agent'})):(logger[_0x5706bc(0x243)](_0x5706bc(0x22d)),request({'uri':util[_0x5706bc(0x215)](_0x5706bc(0x240),_0xcf1719['remoteUri'])})[_0x5706bc(0x254)](function(_0x2b1627){const _0x419e16=_0x5706bc;return logger[_0x419e16(0x243)]('Admin\x20account\x20selected.'),_0x2b1627[_0x419e16(0x232)];}));})):(logger['info']('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!'),request({'uri':util['format'](_0x2800b7(0x240),_0xcf1719[_0x2800b7(0x222)])})[_0x2800b7(0x254)](function(_0x5c40e7){const _0x54ac37=_0x2800b7;return logger[_0x54ac37(0x243)](_0x54ac37(0x23f)),_0x5c40e7[_0x54ac37(0x232)];}));}function getEndUser(_0x252568,_0xcb54cb,_0x1ef9be){const _0x33a97f=a1338_0x437a80;return logger[_0x33a97f(0x243)](_0x33a97f(0x223),_0x1ef9be),request({'uri':util['format'](_0x33a97f(0x1fc),_0x252568[_0x33a97f(0x222)]),'qs':{'query':util[_0x33a97f(0x215)]('type:user\x20role:end-user\x20phone:%s',_0x1ef9be)}})[_0x33a97f(0x254)](function(_0x43ec75){const _0x3169dc=_0x33a97f;let _0x532f84;return _0x43ec75[_0x3169dc(0x241)][_0x3169dc(0x1f6)]&&(_0x43ec75[_0x3169dc(0x241)]=_[_0x3169dc(0x248)](_0x43ec75[_0x3169dc(0x241)],{'suspended':![],'role':'end-user'}),_0x43ec75[_0x3169dc(0x241)]['length']&&(_0x532f84=_[_0x3169dc(0x1f5)](_0x43ec75['results']))),_0x532f84?(logger[_0x3169dc(0x243)](_0x3169dc(0x211)),_0x532f84):(logger['info'](_0x3169dc(0x1fe)),request({'uri':util[_0x3169dc(0x215)](_0x3169dc(0x244),_0x252568[_0x3169dc(0x222)]),'method':_0x3169dc(0x216),'body':{'user':{'role':'end-user','name':util[_0x3169dc(0x215)](_0x3169dc(0x21e),_0xcb54cb||_0x1ef9be),'phone':_0x1ef9be}}})['then'](function(_0x24f2f6){const _0x3fa10e=_0x3169dc;return logger[_0x3fa10e(0x243)](_0x3fa10e(0x217)),_0x24f2f6[_0x3fa10e(0x232)];}));});}function getAuth(_0x555507){const _0x5485ec=a1338_0x437a80;let _0x2f55b8;if(_0x555507[_0x5485ec(0x252)]==='password')_0x2f55b8=util[_0x5485ec(0x215)](_0x5485ec(0x246),_0x555507[_0x5485ec(0x22f)],_0x555507[_0x5485ec(0x24a)]);else _0x555507[_0x5485ec(0x252)]===_0x5485ec(0x231)&&(_0x2f55b8=util['format'](_0x5485ec(0x204),_0x555507[_0x5485ec(0x22f)],_0x555507[_0x5485ec(0x231)]));return util[_0x5485ec(0x215)](_0x5485ec(0x23a),Buffer[_0x5485ec(0x221)](_0x2f55b8)[_0x5485ec(0x251)](_0x5485ec(0x21c)));}function request(_0x44f208){const _0x1f642f=a1338_0x437a80;return logger['debug'](_0x1f642f(0x23e),JSON[_0x1f642f(0x250)](_0x44f208)),rp(_[_0x1f642f(0x257)](_0x44f208,{'method':_0x1f642f(0x1f3),'headers':headers,'json':!![]}));}function getTags(_0x177df5,_0x451f48){const _0x3a5ee0=a1338_0x437a80;let _0x43cd66=[];return _0x177df5&&_0x177df5[_0x3a5ee0(0x1f6)]>0x0&&(_0x43cd66=_[_0x3a5ee0(0x24b)](_0x177df5,_0x451f48)),_0x43cd66;}function getCustomFields(_0x3f2f46,_0x1826f9){const _0x4f8efa=a1338_0x437a80,_0x3b48be={'custom_fields':[]};return _0x3f2f46[_0x4f8efa(0x1f6)]>0x0&&_[_0x4f8efa(0x233)](_0x3f2f46,function(_0x51c7fd){const _0x55b340=_0x4f8efa;if(_['includes']([_0x55b340(0x259),_0x55b340(0x249)],_0x51c7fd['type'])&&_0x51c7fd[_0x55b340(0x24d)]&&!_0x51c7fd[_0x55b340(0x1f1)])_0x3b48be[_0x51c7fd[_0x55b340(0x24d)][_0x55b340(0x219)]()]=_0x51c7fd[_0x55b340(0x1f2)][_0x55b340(0x251)]();else{if(_[_0x55b340(0x224)](['string',_0x55b340(0x249)],_0x51c7fd[_0x55b340(0x228)])&&_0x51c7fd['idField']&&_0x51c7fd[_0x55b340(0x1f1)])_0x3b48be[_0x55b340(0x1fb)][_0x55b340(0x1ef)]({'id':_0x51c7fd[_0x55b340(0x20d)],'value':_0x51c7fd[_0x55b340(0x1f2)][_0x55b340(0x251)]()});else{if(_0x51c7fd[_0x55b340(0x228)]===_0x55b340(0x234)&&_0x51c7fd['variableName']&&_0x51c7fd[_0x55b340(0x20d)]&&_0x51c7fd[_0x55b340(0x1f1)])_0x1826f9[_0x51c7fd['variableName']]&&_0x3b48be[_0x55b340(0x1fb)][_0x55b340(0x1ef)]({'id':_0x51c7fd[_0x55b340(0x20d)],'value':_0x1826f9[_0x51c7fd[_0x55b340(0x238)]][_0x55b340(0x251)]()});else _0x51c7fd['type']===_0x55b340(0x247)&&_0x51c7fd[_0x55b340(0x209)]&&_0x51c7fd['Variable'][_0x55b340(0x208)]&&_0x51c7fd['idField']&&_0x51c7fd[_0x55b340(0x1f1)]&&(_0x1826f9[_0x51c7fd['Variable'][_0x55b340(0x208)]['toLowerCase']()]&&_0x3b48be[_0x55b340(0x1fb)][_0x55b340(0x1ef)]({'id':_0x51c7fd[_0x55b340(0x20d)],'value':_0x1826f9[_0x51c7fd[_0x55b340(0x209)][_0x55b340(0x208)]['toLowerCase']()]['toString']()}));}}}),_0x3b48be;}exports[a1338_0x437a80(0x20c)]=function(_0x71b30e,_0x4d536a,_0x200bf2,_0x47baa6,_0x25ef65,_0x823a01){const _0x35c1c2=a1338_0x437a80;let _0x3a34ba,_0x3c5e77;return _0x823a01[_0x35c1c2(0x222)]=intUtil[_0x35c1c2(0x1ec)](_0x823a01['remoteUri']),_0x823a01[_0x35c1c2(0x229)]=intUtil[_0x35c1c2(0x1ec)](_0x823a01[_0x35c1c2(0x229)]),_0x25ef65&&_0x25ef65['monitor_format']?(logger[_0x35c1c2(0x243)]('[QUEUE]','Recording\x20is\x20enabled!'),_0x4d536a[_0x35c1c2(0x21f)]=util[_0x35c1c2(0x215)]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x823a01[_0x35c1c2(0x229)],_0x4d536a[_0x35c1c2(0x255)],md5(_0x4d536a[_0x35c1c2(0x255)]))):_0x4d536a[_0x35c1c2(0x21f)]='',headers[_0x35c1c2(0x1f8)]=getAuth(_0x823a01),getUser(_0x823a01,_0x47baa6[_0x35c1c2(0x25a)])[_0x35c1c2(0x254)](function(_0x5c2e94){const _0x4c5681=_0x35c1c2;return _0x3a34ba=_0x5c2e94,logger[_0x4c5681(0x243)](_0x4c5681(0x25b),_0x3a34ba['id']),getEndUser(_0x823a01,_0x4d536a[_0x4c5681(0x207)],_0x4d536a[_0x4c5681(0x22e)]);})['then'](function(_0x169588){const _0x602f0f=_0x35c1c2;return _0x3c5e77=_0x169588,logger[_0x602f0f(0x243)](_0x602f0f(0x1e9),_0x3c5e77['id']),getTicket(_0x823a01,_0x3a34ba,_0x3c5e77,_0x200bf2,_0x4d536a);})['then'](function(_0x241844){const _0x22998f=_0x35c1c2;if(_0x241844){logger['info'](_0x22998f(0x1ea),_0x241844['id']);switch(_0x823a01[_0x22998f(0x228)]){case'integrationTab':logger[_0x22998f(0x243)](_0x22998f(0x1f0),_0x22998f(0x23b));return request({'uri':util[_0x22998f(0x215)](_0x22998f(0x225),_0x823a01[_0x22998f(0x222)],_0x3a34ba['id'],_0x241844['id']),'method':'POST'});case _0x22998f(0x242):logger['info'](_0x22998f(0x1f0),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...'),emit(util[_0x22998f(0x215)]('user:%s',_0x47baa6[_0x22998f(0x208)]),'trigger:browser:url',{'uri':util[_0x22998f(0x215)](_0x22998f(0x21d),_0x823a01['remoteUri']['replace'](_0x22998f(0x227)),_0x241844['id'])});break;default:logger[_0x22998f(0x20b)]('[QUEUE]',_0x22998f(0x20e));}}})['catch'](function(_0x31374c){const _0x59fe41=_0x35c1c2;logger[_0x59fe41(0x20b)](_0x59fe41(0x210),util[_0x59fe41(0x220)](_0x31374c,{'showHidden':!![],'depth':null}));});},exports[a1338_0x437a80(0x1eb)]=function(_0x140dbf,_0x2a7d2e,_0x4407bc,_0x47ab04,_0x407562,_0x128de9,_0x5d61f5){const _0x3d555a=a1338_0x437a80;let _0x5b156d,_0x57de20;return _0x128de9['remoteUri']=intUtil[_0x3d555a(0x1ec)](_0x128de9[_0x3d555a(0x222)]),_0x128de9['serverUrl']=intUtil['stripTrailingSlash'](_0x128de9[_0x3d555a(0x229)]),_0x5d61f5&&_0x5d61f5['recordingFormat']&&_0x5d61f5['recordingFormat']!==_0x3d555a(0x1f7)&&(logger['info'](_0x3d555a(0x258),_0x3d555a(0x214)),_0x2a7d2e[_0x3d555a(0x21f)]=util[_0x3d555a(0x215)](_0x3d555a(0x206),_0x128de9[_0x3d555a(0x229)],_0x2a7d2e['uniqueid'],md5(_0x2a7d2e[_0x3d555a(0x255)]))),headers[_0x3d555a(0x1f8)]=getAuth(_0x128de9),getUser(_0x128de9,_0x47ab04[_0x3d555a(0x25a)])[_0x3d555a(0x254)](function(_0x36452e){const _0x2288cc=_0x3d555a;return _0x5b156d=_0x36452e,logger['info']('The\x20User\x20ID\x20is:',_0x5b156d['id']),getEndUser(_0x128de9,_0x2a7d2e[_0x2288cc(0x203)],_0x2a7d2e[_0x2288cc(0x23d)]);})['then'](function(_0x5c2c27){const _0x157bc1=_0x3d555a;return _0x57de20=_0x5c2c27,logger[_0x157bc1(0x243)](_0x157bc1(0x1e9),_0x57de20['id']),getTicket(_0x128de9,_0x5b156d,_0x57de20,_0x4407bc,_0x2a7d2e);})[_0x3d555a(0x254)](function(_0x3fefb2){const _0x572df4=_0x3d555a;if(_0x3fefb2){logger[_0x572df4(0x243)](_0x572df4(0x1ea),_0x3fefb2['id']);switch(_0x128de9['type']){case _0x572df4(0x22b):logger['info'](_0x572df4(0x258),_0x572df4(0x23b));return request({'uri':util['format'](_0x572df4(0x225),_0x128de9[_0x572df4(0x222)],_0x5b156d['id'],_0x3fefb2['id']),'method':_0x572df4(0x216)});case _0x572df4(0x242):logger[_0x572df4(0x243)](_0x572df4(0x258),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...'),emit(util[_0x572df4(0x215)]('user:%s',_0x47ab04['name']),_0x572df4(0x1fd),{'uri':util[_0x572df4(0x215)](_0x572df4(0x21d),_0x128de9[_0x572df4(0x222)]['replace'](_0x572df4(0x227)),_0x3fefb2['id'])});break;default:logger['error']('[OUTBOUND]',_0x572df4(0x20e));}}})['catch'](function(_0x1bf954){const _0x15af63=_0x3d555a;logger[_0x15af63(0x20b)](_0x15af63(0x218),util[_0x15af63(0x220)](_0x1bf954,{'showHidden':!![],'depth':null}));});},exports[a1338_0x437a80(0x201)]=function(_0x142a5e,_0x475c85,_0x159c2e,_0x3a5dea,_0x888c0e,_0x16dcf8){const _0x3f3a36=a1338_0x437a80;let _0x5a3d84,_0x406a93;return _0x16dcf8[_0x3f3a36(0x222)]=intUtil[_0x3f3a36(0x1ec)](_0x16dcf8[_0x3f3a36(0x222)]),_0x16dcf8['serverUrl']=intUtil[_0x3f3a36(0x1ec)](_0x16dcf8['serverUrl']),_0x888c0e&&_0x888c0e[_0x3f3a36(0x1f4)]?(logger[_0x3f3a36(0x243)]('['+_0x475c85[_0x3f3a36(0x226)][_0x3f3a36(0x1ee)]()+']',_0x3f3a36(0x214)),_0x475c85[_0x3f3a36(0x21f)]=util[_0x3f3a36(0x215)](_0x3f3a36(0x206),_0x16dcf8[_0x3f3a36(0x229)],_0x475c85[_0x3f3a36(0x255)],md5(_0x475c85[_0x3f3a36(0x255)]))):_0x475c85[_0x3f3a36(0x21f)]='',headers[_0x3f3a36(0x1f8)]=getAuth(_0x16dcf8),getUser(_0x16dcf8)[_0x3f3a36(0x254)](function(_0xa069d4){const _0x262576=_0x3f3a36;return _0x5a3d84=_0xa069d4,logger[_0x262576(0x243)](_0x262576(0x25b),_0x5a3d84['id']),getEndUser(_0x16dcf8,_0x475c85['calleridname'],_0x475c85['calleridnum']);})[_0x3f3a36(0x254)](function(_0x575cd5){const _0x275015=_0x3f3a36;return _0x406a93=_0x575cd5,logger['info'](_0x275015(0x1e9),_0x406a93['id']),getTicket(_0x16dcf8,_0x5a3d84,_0x406a93,_0x159c2e,_0x475c85);})[_0x3f3a36(0x254)](function(_0x220a13){_0x220a13&&logger['info']('The\x20Ticket\x20ID\x20is:',_0x220a13['id']);})[_0x3f3a36(0x24e)](function(_0x31cb6e){const _0x2bc64b=_0x3f3a36;logger[_0x2bc64b(0x20b)]('['+_0x475c85[_0x2bc64b(0x226)][_0x2bc64b(0x1ee)]()+']'+_0x2bc64b(0x22a),util[_0x2bc64b(0x220)](_0x31cb6e,{'showHidden':!![],'depth':null}));});};