61858c286c2310b3f8ddb8e6bf0ec263edc13891
[motion2.git] / server / services / ami / trigger / integration / sugarcrm.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 _0xfb2c=['get_entry_list','stringify','Employees','user_name','then','entry_list','length','find','name_value_list','Agent\x20found!','resolve','value','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','user_id','Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!','Searching\x20enduser\x20with\x20phone','phone_home','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','set_entry','first_name','Caller\x20-\x20%s','Enduser\x20created.','debug','[HTTP]','type','nameField','customField','toLowerCase','string','variable','custom_fields','Variable','username','password','PLAIN','xCALLY\x20Motion\x20integration','sessionID','Account\x20%d\x20is\x20not\x20valid','set_relationship','queue','remoteUri','stripTrailingSlash','serverUrl','uri','%s/service/v4_1/rest.php','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','uniqueid','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','Fields','Inbound','The\x20Ticket\x20ID\x20is:','users','contacts','version','charAt','%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','error','outbound','recordingFormat','none','[OUTBOUND]','destcalleridnum','Outbound','%s/#bwc/index.php?module=Calls&action=EditView&record=%s','unmanaged','lastevent','toUpperCase','Ticket\x20created!','catch','request-promise','bluebird','md5','util','ioredis','./util','../../../../config/environment','../../../../config/logger','sugarcrm','redis','defaults','localhost','socket.io-emitter','POST','emit','info','Creating\x20new\x20ticket...','name','getString','Subjects','assigned_user_id','created_by','description','toISOString','replace','duration_minutes','parent_id','parent_type','Contacts','parent_name','direction','forEach','variableName','push','idField','JSON','Calls','format','toString','base64','get_server_info','isNil','Getting\x20agent\x20with\x20name'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0xfb2c,0x1bd));var _0xcfb2=function(_0x110c3d,_0x12ee06){_0x110c3d=_0x110c3d-0x0;var _0x226d67=_0xfb2c[_0x110c3d];return _0x226d67;};'use strict';var _=require('lodash');var rp=require(_0xcfb2('0x0'));var BPromise=require(_0xcfb2('0x1'));var md5=require(_0xcfb2('0x2'));var util=require(_0xcfb2('0x3'));var Redis=require(_0xcfb2('0x4'));var intUtil=require(_0xcfb2('0x5'));var config=require(_0xcfb2('0x6'));var logger=require(_0xcfb2('0x7'))(_0xcfb2('0x8'));config[_0xcfb2('0x9')]=_[_0xcfb2('0xa')](config['redis'],{'host':_0xcfb2('0xb'),'port':0x18eb});var io=require(_0xcfb2('0xc'))(new Redis(config[_0xcfb2('0x9')]));var def={'method':_0xcfb2('0xd'),'json':!![]};function emit(_0x511e0a,_0x4e3f78,_0x1608b8){io['to'](_0x511e0a)[_0xcfb2('0xe')](_0x4e3f78,_0x1608b8);}function getTicket(_0x1993ec,_0x9de0e4,_0x311f66,_0x363178,_0x2c5a8d,_0x4c9bbd,_0xfb3044,_0x6de5c3){logger[_0xcfb2('0xf')](_0xcfb2('0x10'));var _0x2a2c12=new Date();var _0x22d673=[{'name':_0xcfb2('0x11'),'value':intUtil[_0xcfb2('0x12')](_0x363178[_0xcfb2('0x13')],_0x2c5a8d,'\x20')},{'name':_0xcfb2('0x14'),'value':_0x9de0e4['id']},{'name':_0xcfb2('0x15'),'value':_0x9de0e4['id']},{'name':_0xcfb2('0x16'),'value':intUtil['getString'](_0x363178['Descriptions'],_0x2c5a8d,'\x0a')},{'name':'date_start','value':_0x2a2c12[_0xcfb2('0x17')]()['slice'](0x0,0x13)[_0xcfb2('0x18')]('T','\x20')},{'name':'duration_hours','value':'0'},{'name':_0xcfb2('0x19'),'value':'15'},{'name':_0xcfb2('0x1a'),'value':_0x311f66['id']},{'name':_0xcfb2('0x1b'),'value':_0xcfb2('0x1c')},{'name':_0xcfb2('0x1d'),'value':_0x311f66[_0xcfb2('0x11')]},{'name':_0xcfb2('0x1e'),'value':_0x6de5c3}];if(_0x4c9bbd['length']){_[_0xcfb2('0x1f')](_0x4c9bbd,function(_0x5ca454){if(_0x2c5a8d[_0x5ca454[_0xcfb2('0x20')]]){_0x22d673[_0xcfb2('0x21')]({'name':_0x5ca454[_0xcfb2('0x22')],'value':_0x2c5a8d[_0x5ca454[_0xcfb2('0x20')]]});}});}return request({'form':{'method':'set_entry','input_type':_0xcfb2('0x23'),'response_type':_0xcfb2('0x23'),'rest_data':JSON['stringify']({'session':_0xfb3044['id'],'module_name':_0xcfb2('0x24'),'name_value_list':_0x22d673})}});}function getAuth(_0x11748c){return util[_0xcfb2('0x25')]('Basic\x20%s',new Buffer(_0x11748c['apiKey']+':X')[_0xcfb2('0x26')](_0xcfb2('0x27')));}function getServerInfo(_0x2fd263){return request({'form':{'method':_0xcfb2('0x28'),'input_type':_0xcfb2('0x23'),'response_type':_0xcfb2('0x23'),'rest_data':JSON['stringify']({'session':_0x2fd263['id']})}});}function getUser(_0x5b8b15,_0x331349,_0x1d8422){if(!_[_0xcfb2('0x29')](_0x331349)){logger[_0xcfb2('0xf')](_0xcfb2('0x2a'),_0x331349);return request({'form':{'method':_0xcfb2('0x2b'),'input_type':_0xcfb2('0x23'),'response_type':'JSON','rest_data':JSON[_0xcfb2('0x2c')]({'session':_0x1d8422['id'],'module_name':_0xcfb2('0x2d'),'query':util[_0xcfb2('0x25')]('INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200',_0x331349),'order_by':'','offset':'0','select_fields':['id',_0xcfb2('0x11'),_0xcfb2('0x2e')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0xcfb2('0x2f')](function(_0x26651a){if(_0x26651a[_0xcfb2('0x30')][_0xcfb2('0x31')]){var _0x2ce6c9=_[_0xcfb2('0x32')](_0x26651a[_0xcfb2('0x30')],function(_0x2cdc36){return _0x2cdc36[_0xcfb2('0x33')][_0xcfb2('0x2e')]['value']===_0x331349;});if(_0x2ce6c9){logger['info'](_0xcfb2('0x34'));return BPromise[_0xcfb2('0x35')]({'id':_0x2ce6c9[_0xcfb2('0x33')]['id']['value'],'name':_0x2ce6c9[_0xcfb2('0x33')][_0xcfb2('0x11')][_0xcfb2('0x36')]});}}logger[_0xcfb2('0xf')](_0xcfb2('0x37'));return BPromise[_0xcfb2('0x35')]({'id':_0x1d8422[_0xcfb2('0x33')][_0xcfb2('0x38')][_0xcfb2('0x36')],'name':_0x1d8422['name_value_list']['user_name'][_0xcfb2('0x36')]});});}else{logger[_0xcfb2('0xf')](_0xcfb2('0x39'));return BPromise['resolve']({'id':_0x1d8422[_0xcfb2('0x33')][_0xcfb2('0x38')][_0xcfb2('0x36')],'name':_0x1d8422['name_value_list'][_0xcfb2('0x2e')][_0xcfb2('0x36')]});}}function getEndUser(_0x41f660,_0x64168b,_0x2a5994,_0x57416d){logger['info'](_0xcfb2('0x3a'),_0x2a5994);return request({'form':{'method':_0xcfb2('0x2b'),'input_type':_0xcfb2('0x23'),'response_type':_0xcfb2('0x23'),'rest_data':JSON['stringify']({'session':_0x57416d['id'],'module_name':'Contacts','query':util[_0xcfb2('0x25')]('contacts.phone_home\x20=\x20\x22%s\x22',_0x2a5994),'order_by':'','offset':'0','select_fields':['id','name',_0xcfb2('0x3b')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0xcfb2('0x2f')](function(_0x1ecad4){if(_0x1ecad4[_0xcfb2('0x30')][_0xcfb2('0x31')]){var _0x1859b1=_[_0xcfb2('0x32')](_0x1ecad4['entry_list'],function(_0xc5bb70){return _0xc5bb70[_0xcfb2('0x33')][_0xcfb2('0x3b')][_0xcfb2('0x36')]===_0x2a5994;});if(_0x1859b1){logger[_0xcfb2('0xf')](_0xcfb2('0x3c'));return BPromise[_0xcfb2('0x35')]({'id':_0x1859b1['name_value_list']['id'][_0xcfb2('0x36')],'name':_0x1859b1['name_value_list'][_0xcfb2('0x11')][_0xcfb2('0x36')],'phone':_0x1859b1['name_value_list'][_0xcfb2('0x3b')][_0xcfb2('0x36')]});}}else{logger['info'](_0xcfb2('0x3d'));return request({'form':{'method':_0xcfb2('0x3e'),'input_type':_0xcfb2('0x23'),'response_type':_0xcfb2('0x23'),'rest_data':JSON[_0xcfb2('0x2c')]({'session':_0x57416d['id'],'module_name':_0xcfb2('0x1c'),'name_value_list':[{'name':_0xcfb2('0x3f'),'value':_0x64168b!=='<unknown>'?_0x64168b:util['format'](_0xcfb2('0x40'),_0x2a5994)},{'name':_0xcfb2('0x3b'),'value':_0x2a5994}]})}})[_0xcfb2('0x2f')](function(_0x3e5490){logger[_0xcfb2('0xf')](_0xcfb2('0x41'));return BPromise[_0xcfb2('0x35')]({'id':_0x3e5490['id'],'name':_0x3e5490[_0xcfb2('0x30')]['first_name'][_0xcfb2('0x36')],'phone':_0x3e5490[_0xcfb2('0x30')]['phone_home'][_0xcfb2('0x36')]});});}});}function request(_0x1dae89){logger[_0xcfb2('0x42')](_0xcfb2('0x43'),JSON[_0xcfb2('0x2c')](_0x1dae89));return rp(_['merge'](def,_0x1dae89));}function getTags(_0x48ec85,_0x5d8c2b){var _0x2e7191=[];if(_0x48ec85&&_0x48ec85[_0xcfb2('0x31')]>0x0){_0x2e7191=_['map'](_0x48ec85,_0x5d8c2b);}return _0x2e7191;}function getCustomFields(_0x493ab1,_0x5aa309){var _0x1720fb=[];var _0x2e4c63={'custom_fields':[]};if(_0x493ab1['length']>0x0){_['forEach'](_0x493ab1,function(_0x596ae2){if(_0x596ae2[_0xcfb2('0x44')]==='string'&&_0x596ae2[_0xcfb2('0x45')]&&!_0x596ae2[_0xcfb2('0x46')]){_0x2e4c63[_0x596ae2[_0xcfb2('0x45')][_0xcfb2('0x47')]()]=_0x596ae2['content'][_0xcfb2('0x26')]();}else if(_0x596ae2[_0xcfb2('0x44')]===_0xcfb2('0x48')&&_0x596ae2[_0xcfb2('0x22')]&&_0x596ae2[_0xcfb2('0x46')]){_0x2e4c63['custom_fields'][_0xcfb2('0x21')]({'id':_0x596ae2[_0xcfb2('0x22')],'value':_0x596ae2['content'][_0xcfb2('0x26')]()});}else if(_0x596ae2[_0xcfb2('0x44')]===_0xcfb2('0x49')&&_0x596ae2[_0xcfb2('0x20')]&&_0x596ae2['idField']&&_0x596ae2['customField']){_0x5aa309[_0x596ae2[_0xcfb2('0x20')]]&&_0x2e4c63[_0xcfb2('0x4a')][_0xcfb2('0x21')]({'id':_0x596ae2[_0xcfb2('0x22')],'value':_0x5aa309[_0x596ae2[_0xcfb2('0x20')]][_0xcfb2('0x26')]()});}else if(_0x596ae2[_0xcfb2('0x44')]==='customVariable'&&_0x596ae2[_0xcfb2('0x4b')]&&_0x596ae2[_0xcfb2('0x4b')][_0xcfb2('0x11')]&&_0x596ae2['idField']&&_0x596ae2['customField']){_0x5aa309[_0x596ae2[_0xcfb2('0x4b')][_0xcfb2('0x11')][_0xcfb2('0x47')]()]&&_0x2e4c63['custom_fields'][_0xcfb2('0x21')]({'id':_0x596ae2['idField'],'value':_0x5aa309[_0x596ae2[_0xcfb2('0x4b')][_0xcfb2('0x11')][_0xcfb2('0x47')]()][_0xcfb2('0x26')]()});}});}return _0x2e4c63;}function getConnection(_0x4ca1d1){return request({'method':'POST','form':{'method':'login','input_type':'JSON','response_type':_0xcfb2('0x23'),'rest_data':JSON[_0xcfb2('0x2c')]({'user_auth':{'user_name':_0x4ca1d1[_0xcfb2('0x4c')],'password':_0x4ca1d1[_0xcfb2('0x4d')],'encryption':_0xcfb2('0x4e')},'application':_0xcfb2('0x4f')})}})['then'](function(_0x1f5d96){var _0x361234=_0x1f5d96;if(_0x361234['id']){def[_0xcfb2('0x50')]=_0x361234['id'];return BPromise[_0xcfb2('0x35')](_0x361234);}else{throw new Error(util[_0xcfb2('0x25')](_0xcfb2('0x51'),_0x4ca1d1['id']));}});}function setRelationship(_0x2c3b07,_0x760d7e,_0x300ea7,_0x5715b5){return request({'form':{'method':_0xcfb2('0x52'),'input_type':_0xcfb2('0x23'),'response_type':_0xcfb2('0x23'),'rest_data':JSON[_0xcfb2('0x2c')]({'session':_0x2c3b07['id'],'module_name':_0xcfb2('0x24'),'module_id':_0x300ea7['id'],'link_field_name':_0x5715b5,'related_ids':[_0x760d7e['id']],'name_value_list':[],'delete':0x0})}});}exports[_0xcfb2('0x53')]=function(_0x42396e,_0x39942e,_0x23200c,_0x5bf518,_0x1b6867,_0x590c77){var _0x281e42,_0x54163a,_0x189192,_0x2be857;_0x590c77[_0xcfb2('0x54')]=intUtil[_0xcfb2('0x55')](_0x590c77[_0xcfb2('0x54')]);_0x590c77[_0xcfb2('0x56')]=intUtil['stripTrailingSlash'](_0x590c77[_0xcfb2('0x56')]);def[_0xcfb2('0x57')]=util[_0xcfb2('0x25')](_0xcfb2('0x58'),_0x590c77[_0xcfb2('0x54')]);if(_0x1b6867&&_0x1b6867[_0xcfb2('0x59')]){logger[_0xcfb2('0xf')](_0xcfb2('0x5a'),_0xcfb2('0x5b'));_0x39942e[_0xcfb2('0x5c')]=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x590c77[_0xcfb2('0x56')],_0x39942e['uniqueid'],md5(_0x39942e[_0xcfb2('0x5d')]));}else{_0x39942e[_0xcfb2('0x5c')]='';}return getConnection(_0x590c77)[_0xcfb2('0x2f')](function(_0x38d8aa){_0x2be857=_0x38d8aa;return getUser(_0x590c77,_0x5bf518[_0xcfb2('0x11')],_0x2be857);})[_0xcfb2('0x2f')](function(_0x2753f1){_0x281e42=_0x2753f1;logger[_0xcfb2('0xf')](_0xcfb2('0x5e'),_0x281e42['id']);return getEndUser(_0x590c77,_0x39942e[_0xcfb2('0x5f')],_0x39942e[_0xcfb2('0x60')],_0x2be857);})[_0xcfb2('0x2f')](function(_0x3ecb7f){_0x54163a=_0x3ecb7f;logger['info'](_0xcfb2('0x61'),_0x54163a['id']);return getTicket(_0x590c77,_0x281e42,_0x54163a,_0x23200c,_0x39942e,_0x23200c[_0xcfb2('0x62')],_0x2be857,_0xcfb2('0x63'));})[_0xcfb2('0x2f')](function(_0x330ffd){_0x189192=_0x330ffd;logger['info']('Ticket\x20created!');logger[_0xcfb2('0xf')](_0xcfb2('0x64'),_0x189192['id']);return setRelationship(_0x2be857,_0x281e42,_0x189192,_0xcfb2('0x65'));})['then'](function(){return setRelationship(_0x2be857,_0x54163a,_0x189192,_0xcfb2('0x66'));})[_0xcfb2('0x2f')](function(){return getServerInfo(_0x2be857);})[_0xcfb2('0x2f')](function(_0x951f22){var _0x4ab311=parseInt(_0x951f22[_0xcfb2('0x67')][_0xcfb2('0x68')](0x0));var _0x3aed73=util[_0xcfb2('0x25')](_0xcfb2('0x69'),_0x590c77[_0xcfb2('0x54')],_0x189192['id']);if(_0x4ab311>0x6){_0x3aed73=util[_0xcfb2('0x25')]('%s/#bwc/index.php?module=Calls&action=EditView&record=%s',_0x590c77[_0xcfb2('0x54')],_0x189192['id']);}logger[_0xcfb2('0xf')]('[QUEUE]',_0xcfb2('0x6a'));emit(util[_0xcfb2('0x25')](_0xcfb2('0x6b'),_0x5bf518[_0xcfb2('0x11')]),_0xcfb2('0x6c'),{'uri':_0x3aed73});})['catch'](function(_0x3dcc30){logger[_0xcfb2('0x6d')](_0xcfb2('0x5a'),JSON['stringify'](_0x3dcc30));});};exports[_0xcfb2('0x6e')]=function(_0x354a82,_0x499911,_0x49a242,_0x4599cd,_0x53c51e,_0x5ce126,_0x228eed){var _0x44ee48,_0x3e8e29,_0x4a9257,_0x4299c;_0x5ce126[_0xcfb2('0x54')]=intUtil[_0xcfb2('0x55')](_0x5ce126[_0xcfb2('0x54')]);_0x5ce126[_0xcfb2('0x56')]=intUtil[_0xcfb2('0x55')](_0x5ce126[_0xcfb2('0x56')]);def[_0xcfb2('0x57')]=util[_0xcfb2('0x25')](_0xcfb2('0x58'),_0x5ce126[_0xcfb2('0x54')]);if(_0x228eed&&_0x228eed[_0xcfb2('0x6f')]&&_0x228eed[_0xcfb2('0x6f')]!==_0xcfb2('0x70')){logger['info'](_0xcfb2('0x71'),_0xcfb2('0x5b'));_0x499911[_0xcfb2('0x5c')]=util[_0xcfb2('0x25')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x5ce126[_0xcfb2('0x56')],_0x499911[_0xcfb2('0x5d')],md5(_0x499911['uniqueid']));}return getConnection(_0x5ce126)['then'](function(_0x3196f3){_0x4299c=_0x3196f3;return getUser(_0x5ce126,_0x4599cd[_0xcfb2('0x11')],_0x4299c);})[_0xcfb2('0x2f')](function(_0x4d7fa8){_0x44ee48=_0x4d7fa8;logger[_0xcfb2('0xf')](_0xcfb2('0x5e'),_0x44ee48['id']);return getEndUser(_0x5ce126,_0x499911['destcalleridname'],_0x499911[_0xcfb2('0x72')],_0x4299c);})[_0xcfb2('0x2f')](function(_0x50a8fb){_0x3e8e29=_0x50a8fb;logger[_0xcfb2('0xf')]('The\x20Enduser\x20ID\x20is:',_0x3e8e29['id']);return getTicket(_0x5ce126,_0x44ee48,_0x3e8e29,_0x49a242,_0x499911,_0x49a242[_0xcfb2('0x62')],_0x4299c,_0xcfb2('0x73'));})[_0xcfb2('0x2f')](function(_0x499e87){_0x4a9257=_0x499e87;logger[_0xcfb2('0xf')]('Ticket\x20created!');logger['info'](_0xcfb2('0x64'),_0x4a9257['id']);return setRelationship(_0x4299c,_0x44ee48,_0x4a9257,'users');})['then'](function(){return setRelationship(_0x4299c,_0x3e8e29,_0x4a9257,'contacts');})['then'](function(){return getServerInfo(_0x4299c);})[_0xcfb2('0x2f')](function(_0x32f149){var _0x496f53=parseInt(_0x32f149[_0xcfb2('0x67')][_0xcfb2('0x68')](0x0));var _0xe80ea1=util[_0xcfb2('0x25')](_0xcfb2('0x69'),_0x5ce126[_0xcfb2('0x54')],_0x4a9257['id']);if(_0x496f53>0x6){_0xe80ea1=util[_0xcfb2('0x25')](_0xcfb2('0x74'),_0x5ce126[_0xcfb2('0x54')],_0x4a9257['id']);}logger['info'](_0xcfb2('0x71'),_0xcfb2('0x6a'));emit(util[_0xcfb2('0x25')](_0xcfb2('0x6b'),_0x4599cd[_0xcfb2('0x11')]),_0xcfb2('0x6c'),{'uri':_0xe80ea1});})['catch'](function(_0x220e7b){logger[_0xcfb2('0x6d')]('[OUTBOUND]',JSON[_0xcfb2('0x2c')](_0x220e7b));});};exports[_0xcfb2('0x75')]=function(_0x32a7e6,_0x32fdc7,_0x4dede6,_0x17ef93,_0x5bbe8a,_0x23a2fb){var _0x29da70,_0x477447,_0x336f8a,_0x1f517d;_0x23a2fb[_0xcfb2('0x54')]=intUtil[_0xcfb2('0x55')](_0x23a2fb[_0xcfb2('0x54')]);_0x23a2fb['serverUrl']=intUtil[_0xcfb2('0x55')](_0x23a2fb[_0xcfb2('0x56')]);def[_0xcfb2('0x57')]=util[_0xcfb2('0x25')](_0xcfb2('0x58'),_0x23a2fb[_0xcfb2('0x54')]);if(_0x5bbe8a&&_0x5bbe8a[_0xcfb2('0x59')]){logger['info']('['+_0x32fdc7[_0xcfb2('0x76')][_0xcfb2('0x77')]()+']','Recording\x20is\x20enabled!');_0x32fdc7[_0xcfb2('0x5c')]=util[_0xcfb2('0x25')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x23a2fb['serverUrl'],_0x32fdc7[_0xcfb2('0x5d')],md5(_0x32fdc7['uniqueid']));}else{_0x32fdc7[_0xcfb2('0x5c')]='';}return getConnection(_0x23a2fb)[_0xcfb2('0x2f')](function(_0x4eb592){_0x1f517d=_0x4eb592;if(!_['isNil'](_0x17ef93)){return getUser(_0x23a2fb,_0x17ef93[_0xcfb2('0x11')],_0x1f517d);}else{return getUser(_0x23a2fb,null,_0x1f517d);}})[_0xcfb2('0x2f')](function(_0x3f269f){_0x29da70=_0x3f269f;logger[_0xcfb2('0xf')](_0xcfb2('0x5e'),_0x29da70['id']);return getEndUser(_0x23a2fb,_0x32fdc7[_0xcfb2('0x5f')],_0x32fdc7[_0xcfb2('0x60')],_0x1f517d);})[_0xcfb2('0x2f')](function(_0x557eaa){_0x477447=_0x557eaa;logger[_0xcfb2('0xf')]('The\x20Enduser\x20ID\x20is:',_0x477447['id']);return getTicket(_0x23a2fb,_0x29da70,_0x477447,_0x4dede6,_0x32fdc7,_0x4dede6[_0xcfb2('0x62')],_0x1f517d,_0xcfb2('0x63'));})[_0xcfb2('0x2f')](function(_0x1bcdb9){_0x336f8a=_0x1bcdb9;logger[_0xcfb2('0xf')](_0xcfb2('0x78'));logger[_0xcfb2('0xf')](_0xcfb2('0x64'),_0x336f8a['id']);return setRelationship(_0x1f517d,_0x29da70,_0x336f8a,_0xcfb2('0x65'));})[_0xcfb2('0x2f')](function(){return setRelationship(_0x1f517d,_0x477447,_0x336f8a,_0xcfb2('0x66'));})[_0xcfb2('0x2f')](function(){return getServerInfo(_0x1f517d);})[_0xcfb2('0x79')](function(_0x3e6791){logger[_0xcfb2('0x6d')]('['+_0x32fdc7[_0xcfb2('0x76')][_0xcfb2('0x77')]()+']',JSON['stringify'](_0x3e6791));});};