Built motion from commit 129fb4d95212661e48f0db455e75d668addbaddf. Version 3.0.0...
[motion-next.git] / server / services / ami / trigger / integration / desk.js
1 const a1300_0x787b=['newTab','customVariable','xCALLY','token','integrationTab','phone','string','Creating\x20new\x20ticket...','toLowerCase','Authorization','/api/v2/users/%d','Tags','uniqueid','%s/customers/search','Motion','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','then','user:%s','queue','The\x20User\x20ID\x20is:','entries','[HTTP]','[OUTBOUND]','Searching\x20enduser\x20with\x20phone','https://xcally.desk.com/web/agent/case/%d','%s/token:%s','total_entries','Desk\x20account\x20type\x20not\x20recognized','username','catch','monitor_format','Recording\x20is\x20enabled!','variable','base64','type','_embedded','work','user','error','Ticket\x20created!','destcalleridnum','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','[QUEUE]','name','desk','idField','customField','recordingURL','email','CTI','authType','recordingFormat','length','Getting\x20agent\x20with\x20email','calleridname','POST','Fields','lastevent','toUpperCase','serverUrl','destcalleridname','application/json','lodash','trigger:desk:display','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','calleridnum','info','remoteUri','Basic\x20%s','defaults','format','from','Enduser\x20found!','toString','%s/customers','Agent\x20found!','%s/users','%s/users/me','new','stripTrailingSlash','Variable','merge','getString','%s/customers/%d/cases','content','password','find','variableName','Displaying\x20ticket\x20to\x20agent...','Descriptions','trigger:browser:url','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','outbound','The\x20Enduser\x20ID\x20is:','./util','map','custom_fields','priority','../../../../config/logger','stringify','The\x20Ticket\x20ID\x20is:','basic'];(function(_0x2b3966,_0x4e3642){const _0x787bae=function(_0x402edd){while(--_0x402edd){_0x2b3966['push'](_0x2b3966['shift']());}};_0x787bae(++_0x4e3642);}(a1300_0x787b,0x12b));const a1300_0x402e=function(_0x2b3966,_0x4e3642){_0x2b3966=_0x2b3966-0x1e2;let _0x787bae=a1300_0x787b[_0x2b3966];return _0x787bae;};const a1300_0x246c95=a1300_0x402e;'use strict';const _=require(a1300_0x246c95(0x227)),rp=require('request-promise-native'),md5=require('md5'),util=require('util'),intUtil=require(a1300_0x246c95(0x247)),logger=require(a1300_0x246c95(0x1e5))(a1300_0x246c95(0x215)),{getSocket}=require('../../../../rediscache'),io=getSocket();function emit(_0x30a30c,_0x1a3d80,_0x58770e){io['to'](_0x30a30c)['emit'](_0x1a3d80,_0x58770e);}const headers={'Content-Type':'application/json','Accept':a1300_0x246c95(0x226)};function getUser(_0x52214d,_0x4657f1){const _0x41a20a=a1300_0x246c95;return intUtil['validateEmail'](_0x4657f1)===!![]?(logger[_0x41a20a(0x22b)](_0x41a20a(0x21e),_0x4657f1),request({'uri':util[_0x41a20a(0x22f)](_0x41a20a(0x235),_0x52214d[_0x41a20a(0x22c)])})[_0x41a20a(0x1f9)](function(_0x1a68e2){const _0x346bfd=_0x41a20a;if(_0x1a68e2[_0x346bfd(0x203)])return _[_0x346bfd(0x23f)](_0x1a68e2[_0x346bfd(0x20c)]['entries'],{'email':_0x4657f1});})['then'](function(_0x3c8cd4){const _0x110755=_0x41a20a;return _0x3c8cd4?(logger[_0x110755(0x22b)](_0x110755(0x234)),_0x3c8cd4):(logger[_0x110755(0x22b)]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!'),request({'uri':util[_0x110755(0x22f)]('%s/users/me',_0x52214d['remoteUri'])}));})):(logger[_0x41a20a(0x22b)](_0x41a20a(0x244)),request({'uri':util[_0x41a20a(0x22f)](_0x41a20a(0x236),_0x52214d['remoteUri'])}));}function request(_0x4db9db){const _0x2f377e=a1300_0x246c95;return logger['debug'](_0x2f377e(0x1fe),JSON[_0x2f377e(0x1e6)](_0x4db9db)),rp(_[_0x2f377e(0x22e)](_0x4db9db,{'method':'GET','headers':headers,'json':!![]}));}function getAuth(_0x195428){const _0x5ce596=a1300_0x246c95;let _0x4020b5;if(_0x195428[_0x5ce596(0x21b)]===_0x5ce596(0x1e8))_0x4020b5=util[_0x5ce596(0x22f)]('%s:%s',_0x195428[_0x5ce596(0x205)],_0x195428[_0x5ce596(0x23e)]);else _0x195428[_0x5ce596(0x21b)]===_0x5ce596(0x1ec)&&(_0x4020b5=util[_0x5ce596(0x22f)](_0x5ce596(0x202),_0x195428[_0x5ce596(0x205)],_0x195428[_0x5ce596(0x1ec)]));return util[_0x5ce596(0x22f)](_0x5ce596(0x22d),Buffer[_0x5ce596(0x230)](_0x4020b5)[_0x5ce596(0x232)](_0x5ce596(0x20a)));}function getEndUser(_0x3e5154,_0x1acffc,_0x2b08f9){const _0x523ab8=a1300_0x246c95;return logger[_0x523ab8(0x22b)](_0x523ab8(0x200),_0x2b08f9),request({'uri':util['format'](_0x523ab8(0x1f6),_0x3e5154[_0x523ab8(0x22c)]),'qs':{'phone':_0x2b08f9}})['then'](function(_0x55f6b7){const _0x3bd134=_0x523ab8;return _0x55f6b7[_0x3bd134(0x203)]?(logger[_0x3bd134(0x22b)](_0x3bd134(0x231)),_0x55f6b7['_embedded'][_0x3bd134(0x1fd)][0x0]):(logger[_0x3bd134(0x22b)](_0x3bd134(0x212)),request({'uri':util[_0x3bd134(0x22f)](_0x3bd134(0x233),_0x3e5154[_0x3bd134(0x22c)]),'method':_0x3bd134(0x220),'body':{'first_name':_0x1acffc,'title':_0x1acffc,'phone_numbers':[{'type':_0x3bd134(0x20d),'value':_0x2b08f9}]}}));});}function getTags(_0x176647,_0x2a02d2){const _0x344a25=a1300_0x246c95;let _0x1b487e=[];return _0x176647&&_0x176647['length']>0x0&&(_0x1b487e=_[_0x344a25(0x1e2)](_0x176647,_0x2a02d2)),_0x1b487e;}function getCustomFields(_0x225ff1,_0x4c590e){const _0xa014e4=a1300_0x246c95,_0x2070f3={'custom_fields':{}};return _0x225ff1[_0xa014e4(0x21d)]>0x0&&_['forEach'](_0x225ff1,function(_0x225de3){const _0x4e29f0=_0xa014e4;if(_0x225de3['type']===_0x4e29f0(0x1ef)&&_0x225de3['nameField']&&!_0x225de3['customField'])_0x2070f3[_0x225de3['nameField'][_0x4e29f0(0x1f1)]()]=_0x225de3['content'][_0x4e29f0(0x232)]();else{if(_0x225de3['type']===_0x4e29f0(0x1ef)&&_0x225de3[_0x4e29f0(0x216)]&&_0x225de3[_0x4e29f0(0x217)])_0x2070f3['custom_fields'][_0x225de3[_0x4e29f0(0x216)]]=_0x225de3[_0x4e29f0(0x23d)][_0x4e29f0(0x232)]();else{if(_0x225de3[_0x4e29f0(0x20b)]===_0x4e29f0(0x209)&&_0x225de3[_0x4e29f0(0x240)]&&_0x225de3[_0x4e29f0(0x216)]&&_0x225de3[_0x4e29f0(0x217)])_0x4c590e[_0x225de3['variableName']]&&(_0x2070f3[_0x4e29f0(0x1e3)][_0x225de3[_0x4e29f0(0x216)]]=_0x4c590e[_0x225de3[_0x4e29f0(0x240)]][_0x4e29f0(0x232)]());else _0x225de3[_0x4e29f0(0x20b)]===_0x4e29f0(0x1ea)&&_0x225de3[_0x4e29f0(0x239)]&&_0x225de3[_0x4e29f0(0x239)]['name']&&_0x225de3[_0x4e29f0(0x216)]&&_0x225de3[_0x4e29f0(0x217)]&&(_0x4c590e[_0x225de3[_0x4e29f0(0x239)][_0x4e29f0(0x214)][_0x4e29f0(0x1f1)]()]&&(_0x2070f3[_0x4e29f0(0x1e3)][_0x225de3['idField']]=_0x4c590e[_0x225de3[_0x4e29f0(0x239)][_0x4e29f0(0x214)][_0x4e29f0(0x1f1)]()][_0x4e29f0(0x232)]()));}}}),_0x2070f3[_0xa014e4(0x1e4)]&&(_0x2070f3[_0xa014e4(0x1e4)]=Number(_0x2070f3[_0xa014e4(0x1e4)])),_0x2070f3;}function getTicket(_0x3f1783,_0x6360a3,_0x2f68cf,_0x571ddf,_0x482564){const _0x2b57c5=a1300_0x246c95;logger[_0x2b57c5(0x22b)](_0x2b57c5(0x1f0));const _0x2abf0e=_[_0x2b57c5(0x23a)]({'subject':intUtil[_0x2b57c5(0x23b)](_0x571ddf['Subjects'],_0x482564,'\x20'),'type':_0x2b57c5(0x1ee),'status':_0x2b57c5(0x237),'labels':[_0x2b57c5(0x1eb),_0x2b57c5(0x1f7),_0x2b57c5(0x21a)]['concat'](getTags(_0x571ddf[_0x2b57c5(0x1f4)],_0x2b57c5(0x214))),'description':intUtil[_0x2b57c5(0x23b)](_0x571ddf[_0x2b57c5(0x242)],_0x482564,'\x0a'),'_links':{'assigned_user':{'href':util[_0x2b57c5(0x22f)](_0x2b57c5(0x1f3),_0x6360a3['id']),'class':_0x2b57c5(0x20e)}},'message':{'direction':'in','body':intUtil['getString'](_0x571ddf[_0x2b57c5(0x242)],_0x482564,'\x0a')}},getCustomFields(_0x571ddf[_0x2b57c5(0x221)],_0x482564));return request({'uri':util[_0x2b57c5(0x22f)](_0x2b57c5(0x23c),_0x3f1783[_0x2b57c5(0x22c)],_0x2f68cf['id']),'method':_0x2b57c5(0x220),'body':_0x2abf0e});}exports[a1300_0x246c95(0x1fb)]=function(_0x4d0126,_0x67ca02,_0x173d1e,_0x3d2032,_0x52d0cd,_0x1aa2a7){const _0x347eab=a1300_0x246c95;let _0x5af46a,_0x1c2c5c;return _0x1aa2a7['remoteUri']=intUtil['stripTrailingSlash'](_0x1aa2a7['remoteUri']),_0x1aa2a7[_0x347eab(0x224)]=intUtil[_0x347eab(0x238)](_0x1aa2a7[_0x347eab(0x224)]),_0x52d0cd&&_0x52d0cd['monitor_format']?(logger['info']('[QUEUE]',_0x347eab(0x208)),_0x67ca02[_0x347eab(0x218)]=util[_0x347eab(0x22f)](_0x347eab(0x229),_0x1aa2a7['serverUrl'],_0x67ca02[_0x347eab(0x1f5)],md5(_0x67ca02['uniqueid']))):_0x67ca02[_0x347eab(0x218)]='',headers[_0x347eab(0x1f2)]=getAuth(_0x1aa2a7),getUser(_0x1aa2a7,_0x3d2032['email'])[_0x347eab(0x1f9)](function(_0x31e4cd){const _0x1c4713=_0x347eab;return _0x5af46a=_0x31e4cd,logger[_0x1c4713(0x22b)]('The\x20User\x20ID\x20is:',_0x5af46a['id']),getEndUser(_0x1aa2a7,_0x67ca02[_0x1c4713(0x21f)],_0x67ca02[_0x1c4713(0x22a)]);})[_0x347eab(0x1f9)](function(_0x4e2620){const _0x4f4f08=_0x347eab;return _0x1c2c5c=_0x4e2620,logger[_0x4f4f08(0x22b)](_0x4f4f08(0x246),_0x1c2c5c['id']),getTicket(_0x1aa2a7,_0x5af46a,_0x1c2c5c,_0x173d1e,_0x67ca02);})['then'](function(_0x2b5359){const _0x374fb5=_0x347eab;if(_0x2b5359){logger[_0x374fb5(0x22b)](_0x374fb5(0x210)),logger['info'](_0x374fb5(0x1e7),_0x2b5359['id']);switch(_0x1aa2a7[_0x374fb5(0x20b)]){case'integrationTab':logger[_0x374fb5(0x22b)](_0x374fb5(0x213),_0x374fb5(0x241)),emit(util['format'](_0x374fb5(0x1fa),_0x3d2032['name']),_0x374fb5(0x228),{'recordId':_0x2b5359['id']});break;case _0x374fb5(0x1e9):logger[_0x374fb5(0x22b)](_0x374fb5(0x213),_0x374fb5(0x1f8)),emit(util['format'](_0x374fb5(0x1fa),_0x3d2032[_0x374fb5(0x214)]),'trigger:browser:url',{'uri':util[_0x374fb5(0x22f)](_0x374fb5(0x201),_0x2b5359['id'])});break;default:logger[_0x374fb5(0x20f)]('[QUEUE]',_0x374fb5(0x204));}}})['catch'](function(_0x43c136){const _0x4f1ef9=_0x347eab;console['error'](_0x43c136),logger[_0x4f1ef9(0x20f)](_0x4f1ef9(0x213),JSON[_0x4f1ef9(0x1e6)](_0x43c136));});},exports[a1300_0x246c95(0x245)]=function(_0x4c29a5,_0x31c6e8,_0x10d7c5,_0x1dcd85,_0x1616ac,_0x50266a,_0x29a3a7){const _0x559623=a1300_0x246c95;let _0x3ad2b0,_0x133e92;return _0x50266a[_0x559623(0x22c)]=intUtil[_0x559623(0x238)](_0x50266a[_0x559623(0x22c)]),_0x50266a[_0x559623(0x224)]=intUtil[_0x559623(0x238)](_0x50266a[_0x559623(0x224)]),_0x29a3a7&&_0x29a3a7[_0x559623(0x21c)]&&_0x29a3a7[_0x559623(0x21c)]!=='none'&&(logger['info'](_0x559623(0x1ff),_0x559623(0x208)),_0x31c6e8[_0x559623(0x218)]=util[_0x559623(0x22f)]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x50266a[_0x559623(0x224)],_0x31c6e8[_0x559623(0x1f5)],md5(_0x31c6e8[_0x559623(0x1f5)]))),headers['Authorization']=getAuth(_0x50266a),getUser(_0x50266a,_0x1dcd85[_0x559623(0x219)])[_0x559623(0x1f9)](function(_0x419051){const _0x407ba7=_0x559623;return _0x3ad2b0=_0x419051,logger[_0x407ba7(0x22b)]('The\x20User\x20ID\x20is:',_0x3ad2b0['id']),getEndUser(_0x50266a,_0x31c6e8[_0x407ba7(0x225)],_0x31c6e8[_0x407ba7(0x211)]);})[_0x559623(0x1f9)](function(_0x4e7b48){const _0x4a4036=_0x559623;return _0x133e92=_0x4e7b48,logger[_0x4a4036(0x22b)](_0x4a4036(0x246),_0x133e92['id']),getTicket(_0x50266a,_0x3ad2b0,_0x133e92,_0x10d7c5,_0x31c6e8);})[_0x559623(0x1f9)](function(_0x2766c9){const _0x3fba1b=_0x559623;if(_0x2766c9){logger['info']('Ticket\x20created!'),logger[_0x3fba1b(0x22b)]('The\x20Ticket\x20ID\x20is:',_0x2766c9['id']);switch(_0x50266a[_0x3fba1b(0x20b)]){case _0x3fba1b(0x1ed):logger[_0x3fba1b(0x22b)](_0x3fba1b(0x213),_0x3fba1b(0x241)),emit(util['format'](_0x3fba1b(0x1fa),_0x1dcd85['name']),_0x3fba1b(0x228),{'recordId':_0x2766c9['id']});break;case _0x3fba1b(0x1e9):logger[_0x3fba1b(0x22b)](_0x3fba1b(0x213),_0x3fba1b(0x1f8)),emit(util['format']('user:%s',_0x1dcd85[_0x3fba1b(0x214)]),_0x3fba1b(0x243),{'uri':util[_0x3fba1b(0x22f)]('%s/agent/tickets/%s',_0x50266a[_0x3fba1b(0x22c)],_0x2766c9['id'])});break;default:logger[_0x3fba1b(0x20f)](_0x3fba1b(0x1ff),'Desk\x20account\x20type\x20not\x20recognized');}}})[_0x559623(0x206)](function(_0x4c7a36){const _0x8e8449=_0x559623;logger[_0x8e8449(0x20f)](_0x8e8449(0x1ff),JSON['stringify'](_0x4c7a36));});},exports['unmanaged']=function(_0x2762ad,_0x497d7f,_0x1d6ddd,_0x332a1d,_0x3ff1d4,_0x1f6127){const _0x361b87=a1300_0x246c95;let _0x42547,_0x1da6c4;return _0x1f6127[_0x361b87(0x22c)]=intUtil[_0x361b87(0x238)](_0x1f6127['remoteUri']),_0x1f6127[_0x361b87(0x224)]=intUtil['stripTrailingSlash'](_0x1f6127['serverUrl']),_0x3ff1d4&&_0x3ff1d4[_0x361b87(0x207)]?(logger[_0x361b87(0x22b)]('['+_0x497d7f[_0x361b87(0x222)]['toUpperCase']()+']',_0x361b87(0x208)),_0x497d7f[_0x361b87(0x218)]=util[_0x361b87(0x22f)](_0x361b87(0x229),_0x1f6127[_0x361b87(0x224)],_0x497d7f[_0x361b87(0x1f5)],md5(_0x497d7f['uniqueid']))):_0x497d7f['recordingURL']='',headers[_0x361b87(0x1f2)]=getAuth(_0x1f6127),getUser(_0x1f6127)['then'](function(_0x2218b5){const _0x2e9111=_0x361b87;return _0x42547=_0x2218b5,logger[_0x2e9111(0x22b)](_0x2e9111(0x1fc),_0x42547['id']),getEndUser(_0x1f6127,_0x497d7f[_0x2e9111(0x21f)],_0x497d7f[_0x2e9111(0x22a)]);})['then'](function(_0x10a801){return _0x1da6c4=_0x10a801,logger['info']('The\x20Enduser\x20ID\x20is:',_0x1da6c4['id']),getTicket(_0x1f6127,_0x42547,_0x1da6c4,_0x1d6ddd,_0x497d7f);})[_0x361b87(0x1f9)](function(_0x117257){const _0x23950c=_0x361b87;_0x117257&&(logger['info'](_0x23950c(0x210)),logger[_0x23950c(0x22b)](_0x23950c(0x1e7),_0x117257['id']));})['catch'](function(_0x34bc3c){const _0x5ea4ff=_0x361b87;logger['error']('['+_0x497d7f[_0x5ea4ff(0x222)][_0x5ea4ff(0x223)]()+']',JSON[_0x5ea4ff(0x1e6)](_0x34bc3c));});};