Built motion from commit 4a18b36e645f5fa4a517d36f9783bde259878164. Version 3.0.0...
[motion-next.git] / server / services / ami / trigger / integration / sugarcrm.js
1 const a1143_0x50fe=['destcalleridnum','toISOString','forEach','login','../../../../config/logger','format','user:%s','find','created_by','POST','The\x20User\x20ID\x20is:','name','duration_minutes','stripTrailingSlash','name_value_list','user_id','error','INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200','set_entry','description','PLAIN','username','users','monitor_format','Creating\x20new\x20ticket...','set_relationship','md5','%s/#bwc/index.php?module=Calls&action=EditView&record=%s','toUpperCase','version','first_name','../../../../rediscache','Agent\x20found!','%s/service/v4_1/rest.php','calleridname','Employees','./util','push','then','<unknown>','emit','get_server_info','resolve','charAt','%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s','serverUrl','Ticket\x20created!','uniqueid','[QUEUE]','info','parent_id','phone_home','parent_name','sessionID','unmanaged','Contacts','remoteUri','assigned_user_id','user_name','Descriptions','debug','entry_list','Fields','The\x20Ticket\x20ID\x20is:','outbound','date_start','catch','lastevent','Recording\x20is\x20enabled!','[OUTBOUND]','The\x20Enduser\x20ID\x20is:','get_entry_list','length','recordingFormat','Outbound','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','uri','Inbound','Enduser\x20found!','slice','calleridnum','recordingURL','none','destcalleridname','idField','Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!','merge','contacts','trigger:browser:url','JSON','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','value','stringify'];(function(_0x5c7411,_0x50fe12){const _0x1f3ab0=function(_0x214572){while(--_0x214572){_0x5c7411['push'](_0x5c7411['shift']());}};_0x1f3ab0(++_0x50fe12);}(a1143_0x50fe,0x1c9));const a1143_0x1f3a=function(_0x5c7411,_0x50fe12){_0x5c7411=_0x5c7411-0x0;let _0x1f3ab0=a1143_0x50fe[_0x5c7411];return _0x1f3ab0;};const _0x1e4396=a1143_0x1f3a;'use strict';const _=require('lodash'),rp=require('request-promise-native'),md5=require(_0x1e4396('0x27')),util=require('util'),intUtil=require(_0x1e4396('0x31')),logger=require(_0x1e4396('0x11'))('sugarcrm'),{getSocket}=require(_0x1e4396('0x2c')),io=getSocket(),def={'method':_0x1e4396('0x16'),'json':!![]};function emit(_0x214572,_0x153b58,_0x121398){const _0x59ba4e=_0x1e4396;io['to'](_0x214572)[_0x59ba4e('0x35')](_0x153b58,_0x121398);}function getTicket(_0x20b8f5,_0x5b1584,_0x33234d,_0x1a1a32,_0x31d8de,_0x1a6888,_0x46fa12,_0x346653){const _0x5bcaed=_0x1e4396;logger[_0x5bcaed('0x3e')](_0x5bcaed('0x25'));const _0x934b20=new Date(),_0x16996e=[{'name':_0x5bcaed('0x18'),'value':intUtil['getString'](_0x1a1a32['Subjects'],_0x31d8de,'\x20')},{'name':_0x5bcaed('0x46'),'value':_0x5b1584['id']},{'name':_0x5bcaed('0x15'),'value':_0x5b1584['id']},{'name':_0x5bcaed('0x20'),'value':intUtil['getString'](_0x1a1a32[_0x5bcaed('0x48')],_0x31d8de,'\x0a')},{'name':_0x5bcaed('0x4e'),'value':_0x934b20[_0x5bcaed('0xe')]()[_0x5bcaed('0x5c')](0x0,0x13)['replace']('T','\x20')},{'name':'duration_hours','value':'0'},{'name':_0x5bcaed('0x19'),'value':'15'},{'name':_0x5bcaed('0x3f'),'value':_0x33234d['id']},{'name':'parent_type','value':'Contacts'},{'name':_0x5bcaed('0x41'),'value':_0x33234d['name']},{'name':'direction','value':_0x346653}];return _0x1a6888[_0x5bcaed('0x55')]&&_[_0x5bcaed('0xf')](_0x1a6888,function(_0x67de21){const _0xc9ed73=_0x5bcaed;_0x31d8de[_0x67de21['variableName']]&&_0x16996e[_0xc9ed73('0x32')]({'name':_0x67de21[_0xc9ed73('0x3')],'value':_0x31d8de[_0x67de21['variableName']]});}),request({'form':{'method':_0x5bcaed('0x1f'),'input_type':'JSON','response_type':'JSON','rest_data':JSON[_0x5bcaed('0xc')]({'session':_0x46fa12['id'],'module_name':'Calls','name_value_list':_0x16996e})}});}function getServerInfo(_0x2fe9d7){const _0x3b006a=_0x1e4396;return request({'form':{'method':_0x3b006a('0x36'),'input_type':_0x3b006a('0x8'),'response_type':'JSON','rest_data':JSON['stringify']({'session':_0x2fe9d7['id']})}});}function getUser(_0x38e0c0,_0x30ca27,_0x414794){const _0x4a1034=_0x1e4396;return!_['isNil'](_0x30ca27)?(logger['info']('Getting\x20agent\x20with\x20name',_0x30ca27),request({'form':{'method':_0x4a1034('0x54'),'input_type':_0x4a1034('0x8'),'response_type':_0x4a1034('0x8'),'rest_data':JSON[_0x4a1034('0xc')]({'session':_0x414794['id'],'module_name':_0x4a1034('0x30'),'query':util[_0x4a1034('0x12')](_0x4a1034('0x1e'),_0x30ca27),'order_by':'','offset':'0','select_fields':['id',_0x4a1034('0x18'),'user_name'],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})['then'](function(_0x5e05cb){const _0x35182b=_0x4a1034;if(_0x5e05cb['entry_list']['length']){const _0x2e8986=_[_0x35182b('0x14')](_0x5e05cb['entry_list'],function(_0x5c949e){const _0x5a9483=_0x35182b;return _0x5c949e[_0x5a9483('0x1b')][_0x5a9483('0x47')]['value']===_0x30ca27;});if(_0x2e8986)return logger['info'](_0x35182b('0x2d')),Promise[_0x35182b('0x37')]({'id':_0x2e8986[_0x35182b('0x1b')]['id']['value'],'name':_0x2e8986[_0x35182b('0x1b')]['name'][_0x35182b('0xb')]});}return logger['info']('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!'),Promise[_0x35182b('0x37')]({'id':_0x414794[_0x35182b('0x1b')]['user_id'][_0x35182b('0xb')],'name':_0x414794[_0x35182b('0x1b')][_0x35182b('0x47')][_0x35182b('0xb')]});})):(logger[_0x4a1034('0x3e')](_0x4a1034('0x4')),Promise['resolve']({'id':_0x414794[_0x4a1034('0x1b')][_0x4a1034('0x1c')]['value'],'name':_0x414794['name_value_list']['user_name']['value']}));}function getEndUser(_0x2e18e2,_0x5d9d89,_0x8e57ac,_0x483507){const _0x4cc020=_0x1e4396;return logger[_0x4cc020('0x3e')]('Searching\x20enduser\x20with\x20phone',_0x8e57ac),request({'form':{'method':_0x4cc020('0x54'),'input_type':'JSON','response_type':_0x4cc020('0x8'),'rest_data':JSON['stringify']({'session':_0x483507['id'],'module_name':'Contacts','query':util[_0x4cc020('0x12')]('contacts.phone_home\x20=\x20\x22%s\x22',_0x8e57ac),'order_by':'','offset':'0','select_fields':['id',_0x4cc020('0x18'),'phone_home'],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0x4cc020('0x33')](function(_0x2df3d9){const _0x5a3205=_0x4cc020;if(_0x2df3d9['entry_list']['length']){const _0xef3745=_[_0x5a3205('0x14')](_0x2df3d9['entry_list'],function(_0x75886b){const _0x14242a=_0x5a3205;return _0x75886b[_0x14242a('0x1b')]['phone_home'][_0x14242a('0xb')]===_0x8e57ac;});if(_0xef3745)return logger[_0x5a3205('0x3e')](_0x5a3205('0x5b')),Promise['resolve']({'id':_0xef3745[_0x5a3205('0x1b')]['id'][_0x5a3205('0xb')],'name':_0xef3745[_0x5a3205('0x1b')][_0x5a3205('0x18')][_0x5a3205('0xb')],'phone':_0xef3745[_0x5a3205('0x1b')][_0x5a3205('0x40')][_0x5a3205('0xb')]});}else return logger[_0x5a3205('0x3e')]('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!'),request({'form':{'method':'set_entry','input_type':_0x5a3205('0x8'),'response_type':_0x5a3205('0x8'),'rest_data':JSON[_0x5a3205('0xc')]({'session':_0x483507['id'],'module_name':_0x5a3205('0x44'),'name_value_list':[{'name':_0x5a3205('0x2b'),'value':_0x5d9d89!==_0x5a3205('0x34')?_0x5d9d89:util[_0x5a3205('0x12')]('Caller\x20-\x20%s',_0x8e57ac)},{'name':_0x5a3205('0x40'),'value':_0x8e57ac}]})}})[_0x5a3205('0x33')](function(_0x4e2855){const _0x99b784=_0x5a3205;return logger[_0x99b784('0x3e')]('Enduser\x20created.'),Promise['resolve']({'id':_0x4e2855['id'],'name':_0x4e2855[_0x99b784('0x4a')][_0x99b784('0x2b')][_0x99b784('0xb')],'phone':_0x4e2855[_0x99b784('0x4a')][_0x99b784('0x40')][_0x99b784('0xb')]});});});}function request(_0x16500e){const _0xae7b54=_0x1e4396;return logger[_0xae7b54('0x49')]('[HTTP]',JSON[_0xae7b54('0xc')](_0x16500e)),rp(_[_0xae7b54('0x5')](def,_0x16500e));}function getConnection(_0xe530a){const _0x21098a=_0x1e4396;return request({'method':'POST','form':{'method':_0x21098a('0x10'),'input_type':'JSON','response_type':_0x21098a('0x8'),'rest_data':JSON[_0x21098a('0xc')]({'user_auth':{'user_name':_0xe530a[_0x21098a('0x22')],'password':_0xe530a['password'],'encryption':_0x21098a('0x21')},'application':'xCALLY\x20Motion\x20integration'})}})['then'](function(_0x56b5bd){const _0x485072=_0x21098a,_0x59330b=_0x56b5bd;if(_0x59330b['id'])return def[_0x485072('0x42')]=_0x59330b['id'],Promise[_0x485072('0x37')](_0x59330b);else throw new Error(util[_0x485072('0x12')]('Account\x20%d\x20is\x20not\x20valid',_0xe530a['id']));});}function setRelationship(_0x256aba,_0x408ff7,_0x36d328,_0x462704){const _0xdfb2ba=_0x1e4396;return request({'form':{'method':_0xdfb2ba('0x26'),'input_type':_0xdfb2ba('0x8'),'response_type':_0xdfb2ba('0x8'),'rest_data':JSON[_0xdfb2ba('0xc')]({'session':_0x256aba['id'],'module_name':'Calls','module_id':_0x36d328['id'],'link_field_name':_0x462704,'related_ids':[_0x408ff7['id']]})}});}exports[_0x1e4396('0x9')]=function(_0x194a1d,_0x195970,_0x50dfe3,_0x59a492,_0x297ebc,_0x31c7f9){const _0x29d387=_0x1e4396;let _0x338bfa,_0x10f592,_0x38a897,_0x802c7b;return _0x31c7f9['remoteUri']=intUtil[_0x29d387('0x1a')](_0x31c7f9[_0x29d387('0x45')]),_0x31c7f9[_0x29d387('0x3a')]=intUtil['stripTrailingSlash'](_0x31c7f9['serverUrl']),def[_0x29d387('0x59')]=util[_0x29d387('0x12')](_0x29d387('0x2e'),_0x31c7f9[_0x29d387('0x45')]),_0x297ebc&&_0x297ebc[_0x29d387('0x24')]?(logger[_0x29d387('0x3e')](_0x29d387('0x3d'),_0x29d387('0x51')),_0x195970['recordingURL']=util[_0x29d387('0x12')](_0x29d387('0xa'),_0x31c7f9[_0x29d387('0x3a')],_0x195970[_0x29d387('0x3c')],md5(_0x195970[_0x29d387('0x3c')]))):_0x195970[_0x29d387('0x0')]='',getConnection(_0x31c7f9)[_0x29d387('0x33')](function(_0x420da7){const _0x4f7a1f=_0x29d387;return _0x802c7b=_0x420da7,getUser(_0x31c7f9,_0x59a492[_0x4f7a1f('0x18')],_0x802c7b);})['then'](function(_0x95d28a){const _0x383920=_0x29d387;return _0x338bfa=_0x95d28a,logger[_0x383920('0x3e')](_0x383920('0x17'),_0x338bfa['id']),getEndUser(_0x31c7f9,_0x195970[_0x383920('0x2f')],_0x195970['calleridnum'],_0x802c7b);})[_0x29d387('0x33')](function(_0x4718b2){const _0x2055f2=_0x29d387;return _0x10f592=_0x4718b2,logger[_0x2055f2('0x3e')](_0x2055f2('0x53'),_0x10f592['id']),getTicket(_0x31c7f9,_0x338bfa,_0x10f592,_0x50dfe3,_0x195970,_0x50dfe3['Fields'],_0x802c7b,_0x2055f2('0x5a'));})[_0x29d387('0x33')](function(_0x4a23d5){const _0x9cc21f=_0x29d387;return _0x38a897=_0x4a23d5,logger[_0x9cc21f('0x3e')](_0x9cc21f('0x3b')),logger[_0x9cc21f('0x3e')](_0x9cc21f('0x4c'),_0x38a897['id']),setRelationship(_0x802c7b,_0x338bfa,_0x38a897,_0x9cc21f('0x23'));})[_0x29d387('0x33')](function(){const _0x4c65b6=_0x29d387;return setRelationship(_0x802c7b,_0x10f592,_0x38a897,_0x4c65b6('0x6'));})[_0x29d387('0x33')](function(){return getServerInfo(_0x802c7b);})[_0x29d387('0x33')](function(_0x4043b6){const _0xa5fc5a=_0x29d387,_0xf3a3c1=parseInt(_0x4043b6[_0xa5fc5a('0x2a')]['charAt'](0x0));let _0x24f12f=util[_0xa5fc5a('0x12')](_0xa5fc5a('0x39'),_0x31c7f9[_0xa5fc5a('0x45')],_0x38a897['id']);_0xf3a3c1>0x6&&(_0x24f12f=util[_0xa5fc5a('0x12')]('%s/#bwc/index.php?module=Calls&action=EditView&record=%s',_0x31c7f9[_0xa5fc5a('0x45')],_0x38a897['id'])),logger[_0xa5fc5a('0x3e')](_0xa5fc5a('0x3d'),_0xa5fc5a('0x58')),emit(util[_0xa5fc5a('0x12')](_0xa5fc5a('0x13'),_0x59a492[_0xa5fc5a('0x18')]),_0xa5fc5a('0x7'),{'uri':_0x24f12f});})[_0x29d387('0x4f')](function(_0x9bf1d4){const _0x39b73a=_0x29d387;logger['error']('[QUEUE]',JSON[_0x39b73a('0xc')](_0x9bf1d4));});},exports[_0x1e4396('0x4d')]=function(_0x1996d2,_0x13c669,_0x2ac996,_0x336e8d,_0x3e320f,_0x2aef34,_0x59f37d){const _0x45ff2e=_0x1e4396;let _0x14f520,_0x45d181,_0x5aef99,_0x5c5390;return _0x2aef34[_0x45ff2e('0x45')]=intUtil[_0x45ff2e('0x1a')](_0x2aef34[_0x45ff2e('0x45')]),_0x2aef34[_0x45ff2e('0x3a')]=intUtil[_0x45ff2e('0x1a')](_0x2aef34[_0x45ff2e('0x3a')]),def['uri']=util[_0x45ff2e('0x12')]('%s/service/v4_1/rest.php',_0x2aef34['remoteUri']),_0x59f37d&&_0x59f37d['recordingFormat']&&_0x59f37d[_0x45ff2e('0x56')]!==_0x45ff2e('0x1')&&(logger[_0x45ff2e('0x3e')](_0x45ff2e('0x52'),_0x45ff2e('0x51')),_0x13c669['recordingURL']=util[_0x45ff2e('0x12')](_0x45ff2e('0xa'),_0x2aef34['serverUrl'],_0x13c669[_0x45ff2e('0x3c')],md5(_0x13c669[_0x45ff2e('0x3c')]))),getConnection(_0x2aef34)[_0x45ff2e('0x33')](function(_0x38ea90){const _0x361058=_0x45ff2e;return _0x5c5390=_0x38ea90,getUser(_0x2aef34,_0x336e8d[_0x361058('0x18')],_0x5c5390);})[_0x45ff2e('0x33')](function(_0x22a2ae){const _0x2224be=_0x45ff2e;return _0x14f520=_0x22a2ae,logger[_0x2224be('0x3e')](_0x2224be('0x17'),_0x14f520['id']),getEndUser(_0x2aef34,_0x13c669[_0x2224be('0x2')],_0x13c669[_0x2224be('0xd')],_0x5c5390);})[_0x45ff2e('0x33')](function(_0x124d00){const _0x1cc2f1=_0x45ff2e;return _0x45d181=_0x124d00,logger['info'](_0x1cc2f1('0x53'),_0x45d181['id']),getTicket(_0x2aef34,_0x14f520,_0x45d181,_0x2ac996,_0x13c669,_0x2ac996['Fields'],_0x5c5390,_0x1cc2f1('0x57'));})['then'](function(_0x5a99ba){const _0x111571=_0x45ff2e;return _0x5aef99=_0x5a99ba,logger[_0x111571('0x3e')]('Ticket\x20created!'),logger['info'](_0x111571('0x4c'),_0x5aef99['id']),setRelationship(_0x5c5390,_0x14f520,_0x5aef99,'users');})['then'](function(){const _0x3368f6=_0x45ff2e;return setRelationship(_0x5c5390,_0x45d181,_0x5aef99,_0x3368f6('0x6'));})[_0x45ff2e('0x33')](function(){return getServerInfo(_0x5c5390);})['then'](function(_0x15e810){const _0x41d74f=_0x45ff2e,_0x43e310=parseInt(_0x15e810[_0x41d74f('0x2a')][_0x41d74f('0x38')](0x0));let _0x64d234=util[_0x41d74f('0x12')](_0x41d74f('0x39'),_0x2aef34[_0x41d74f('0x45')],_0x5aef99['id']);_0x43e310>0x6&&(_0x64d234=util['format'](_0x41d74f('0x28'),_0x2aef34['remoteUri'],_0x5aef99['id'])),logger['info']('[OUTBOUND]',_0x41d74f('0x58')),emit(util[_0x41d74f('0x12')]('user:%s',_0x336e8d[_0x41d74f('0x18')]),_0x41d74f('0x7'),{'uri':_0x64d234});})['catch'](function(_0x29df9a){const _0x5a5427=_0x45ff2e;logger[_0x5a5427('0x1d')]('[OUTBOUND]',JSON[_0x5a5427('0xc')](_0x29df9a));});},exports[_0x1e4396('0x43')]=function(_0x5844ae,_0x293c97,_0x806a1e,_0x42eddc,_0xe7932c,_0x16ea79){const _0x16726c=_0x1e4396;let _0x1ef4b1,_0x574135,_0x42e2a8,_0x2cb373;return _0x16ea79[_0x16726c('0x45')]=intUtil[_0x16726c('0x1a')](_0x16ea79[_0x16726c('0x45')]),_0x16ea79[_0x16726c('0x3a')]=intUtil[_0x16726c('0x1a')](_0x16ea79['serverUrl']),def[_0x16726c('0x59')]=util['format'](_0x16726c('0x2e'),_0x16ea79[_0x16726c('0x45')]),_0xe7932c&&_0xe7932c[_0x16726c('0x24')]?(logger[_0x16726c('0x3e')]('['+_0x293c97[_0x16726c('0x50')][_0x16726c('0x29')]()+']','Recording\x20is\x20enabled!'),_0x293c97['recordingURL']=util[_0x16726c('0x12')](_0x16726c('0xa'),_0x16ea79['serverUrl'],_0x293c97[_0x16726c('0x3c')],md5(_0x293c97[_0x16726c('0x3c')]))):_0x293c97[_0x16726c('0x0')]='',getConnection(_0x16ea79)[_0x16726c('0x33')](function(_0x205200){const _0x3d55f6=_0x16726c;return _0x2cb373=_0x205200,!_['isNil'](_0x42eddc)?getUser(_0x16ea79,_0x42eddc[_0x3d55f6('0x18')],_0x2cb373):getUser(_0x16ea79,null,_0x2cb373);})[_0x16726c('0x33')](function(_0x2ec178){const _0x27b243=_0x16726c;return _0x1ef4b1=_0x2ec178,logger[_0x27b243('0x3e')](_0x27b243('0x17'),_0x1ef4b1['id']),getEndUser(_0x16ea79,_0x293c97['calleridname'],_0x293c97[_0x27b243('0x5d')],_0x2cb373);})[_0x16726c('0x33')](function(_0x7c2f4e){const _0x191838=_0x16726c;return _0x574135=_0x7c2f4e,logger[_0x191838('0x3e')](_0x191838('0x53'),_0x574135['id']),getTicket(_0x16ea79,_0x1ef4b1,_0x574135,_0x806a1e,_0x293c97,_0x806a1e[_0x191838('0x4b')],_0x2cb373,_0x191838('0x5a'));})[_0x16726c('0x33')](function(_0x477a15){const _0x515dd7=_0x16726c;return _0x42e2a8=_0x477a15,logger[_0x515dd7('0x3e')]('Ticket\x20created!'),logger[_0x515dd7('0x3e')](_0x515dd7('0x4c'),_0x42e2a8['id']),setRelationship(_0x2cb373,_0x1ef4b1,_0x42e2a8,_0x515dd7('0x23'));})[_0x16726c('0x33')](function(){const _0x5a750c=_0x16726c;return setRelationship(_0x2cb373,_0x574135,_0x42e2a8,_0x5a750c('0x6'));})[_0x16726c('0x33')](function(){return getServerInfo(_0x2cb373);})[_0x16726c('0x4f')](function(_0x4c484d){const _0x4e68d8=_0x16726c;logger[_0x4e68d8('0x1d')]('['+_0x293c97[_0x4e68d8('0x50')]['toUpperCase']()+']',JSON[_0x4e68d8('0xc')](_0x4c484d));});};