Built motion from commit (unavailable).|2.2.0
[motion2.git] / server / config / socketio.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 _0xee6c=['Trunk','user','VoiceQueue','ChatQueue','Trunks','agent','getChatQueues','getFaxQueues','getSmsQueues','all','chat','fax','sms','openchannel','telephone:%s','trunk:%s','leave','emit','user_has_chat_interactions:remove','MailInteractions','removeMailInteractions','removeFaxInteractions','user_has_fax_interactions:remove','SmsInteractions','removeSmsInteractions','OpenchannelInteractions','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','catch','log','default','connection','setMaxListeners','address','request','remoteAddress','remotePort','connectedAt','SocketIO\x20','nsp','lodash','util','bluebird','name','Agents','User','role','telephone','type','findOne','then','VoiceQueues','ChatQueues','FaxQueues','SmsQueues','MailQueues','OpenchannelQueues','findAll','IvrCampaigns','UserProfileResource','resourceId','map','where','Campaign','format','%s:queue:%s','length','user:%s','handshake','query','userProfileId','ChatInteraction','ChatInteractions','MailInteraction','FaxInteraction','FaxInteractions','SmsInteraction','OpenchannelInteraction','admin','voice:inbound','voice:outbound','hasOwnProperty','include','push','FaxQueue','SmsQueue','MailQueue','OpenchannelQueue'];(function(_0x384694,_0x5a2bf3){var _0x175769=function(_0x216014){while(--_0x216014){_0x384694['push'](_0x384694['shift']());}};_0x175769(++_0x5a2bf3);}(_0xee6c,0x188));var _0xcee6=function(_0x42d8df,_0x2afbe2){_0x42d8df=_0x42d8df-0x0;var _0x302919=_0xee6c[_0x42d8df];return _0x302919;};'use strict';var _=require(_0xcee6('0x0'));var util=require(_0xcee6('0x1'));var BPromise=require(_0xcee6('0x2'));var db=require('../mysqldb')['db'];var config=require('./environment');var queryQueues={'attributes':['id',_0xcee6('0x3')],'include':[{'as':_0xcee6('0x4'),'model':db[_0xcee6('0x5')],'attributes':['id',_0xcee6('0x3'),_0xcee6('0x6')],'raw':!![],'where':{'role':'agent'},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id','name'],'where':{'role':_0xcee6('0x7')}};var queryTrunks={'raw':!![],'attributes':['id',_0xcee6('0x3')]};var queryAgents={'raw':!![],'attributes':['id',_0xcee6('0x3')],'where':{'role':'agent'}};var queryCampaigns={'raw':!![],'attributes':['id',_0xcee6('0x3'),_0xcee6('0x8')],'where':{'type':'ivr'}};function getAssociatedResources(_0x4e40db,_0x468df4,_0x1cf969){return db['UserProfileSection'][_0xcee6('0x9')]({'where':{'name':_0x4e40db,'userProfileId':_0x468df4},'raw':!![]})[_0xcee6('0xa')](function(_0x27fd88){if(_0x27fd88){if(_0x27fd88['autoAssociation']){switch(_0x4e40db){case _0xcee6('0xb'):case _0xcee6('0xc'):case _0xcee6('0xd'):case _0xcee6('0xe'):case _0xcee6('0xf'):case _0xcee6('0x10'):return db[_0x1cf969][_0xcee6('0x11')](queryQueues);case'Telephones':return db[_0x1cf969][_0xcee6('0x11')](queryTelephones);case'Trunks':return db[_0x1cf969][_0xcee6('0x11')](queryTrunks);case _0xcee6('0x12'):return db[_0x1cf969]['findAll'](queryCampaigns);}}else{return db[_0xcee6('0x13')][_0xcee6('0x11')]({'attributes':[_0xcee6('0x14')],'where':{'sectionId':_0x27fd88['id']},'raw':!![]})[_0xcee6('0xa')](function(_0x5d9925){if(_0x5d9925){var _0x3d2041={'where':{'id':_[_0xcee6('0x15')](_0x5d9925,_0xcee6('0x14'))},'raw':!![]};switch(_0x1cf969){case _0xcee6('0x5'):_0x3d2041[_0xcee6('0x16')][_0xcee6('0x6')]=_0xcee6('0x7');break;case _0xcee6('0x17'):_0x3d2041[_0xcee6('0x16')][_0xcee6('0x8')]='ivr';break;}return db[_0x1cf969]['findAll'](_0x3d2041);}else{return[];}});}}else{return[];}})[_0xcee6('0xa')](function(_0x4ebdf1){return _0x4ebdf1;});}function joinOrLeaveQueues(_0x5d8b0a,_0x194673,_0x4c5812,_0x1c7fcd){_0x5d8b0a[_0x194673](util[_0xcee6('0x18')](_0xcee6('0x19'),_0x4c5812,_0x1c7fcd[_0xcee6('0x3')]));if(_0x1c7fcd[_0xcee6('0x4')]){for(var _0x29faca=0x0;_0x29faca<_0x1c7fcd[_0xcee6('0x4')][_0xcee6('0x1a')];_0x29faca+=0x1){_0x5d8b0a[_0x194673](util[_0xcee6('0x18')](_0xcee6('0x1b'),_0x1c7fcd[_0xcee6('0x4')][_0x29faca]['name']));}}}function joinOrLeave(_0xfc7387,_0x54f548,_0x48f3c5){var _0x2ea2cd;if(_0xfc7387[_0xcee6('0x1c')][_0xcee6('0x1d')]['id']){db[_0xcee6('0x5')]['find']({'attributes':['id','name','role',_0xcee6('0x1e')],'where':{'id':_0xfc7387['handshake'][_0xcee6('0x1d')]['id']},'include':[{'model':db[_0xcee6('0x1f')],'as':_0xcee6('0x20'),'attributes':['id'],'raw':!![]},{'model':db[_0xcee6('0x21')],'as':'MailInteractions','attributes':['id'],'raw':!![]},{'model':db[_0xcee6('0x22')],'as':_0xcee6('0x23'),'attributes':['id'],'raw':!![]},{'model':db[_0xcee6('0x24')],'as':'SmsInteractions','attributes':['id'],'raw':!![]},{'model':db[_0xcee6('0x25')],'as':'OpenchannelInteractions','attributes':['id'],'raw':!![]}]})[_0xcee6('0xa')](function(_0x3f13cb){if(_0x3f13cb){_0x2ea2cd=_0x3f13cb;_0xfc7387[_0x54f548](util[_0xcee6('0x18')](_0xcee6('0x1b'),_0x3f13cb[_0xcee6('0x3')]));var _0x14bf74=[];switch(_0x3f13cb['role']){case _0xcee6('0x26'):_0xfc7387[_0x54f548](_0xcee6('0x27'));_0xfc7387[_0x54f548](_0xcee6('0x28'));if(queryQueues[_0xcee6('0x29')](_0xcee6('0x2a'))){delete queryQueues[_0xcee6('0x2a')];}_0x14bf74[_0xcee6('0x2b')](db['VoiceQueue'][_0xcee6('0x11')](queryQueues));_0x14bf74['push'](db['ChatQueue'][_0xcee6('0x11')](queryQueues));_0x14bf74[_0xcee6('0x2b')](db[_0xcee6('0x2c')][_0xcee6('0x11')](queryQueues));_0x14bf74[_0xcee6('0x2b')](db[_0xcee6('0x2d')]['findAll'](queryQueues));_0x14bf74[_0xcee6('0x2b')](db[_0xcee6('0x2e')][_0xcee6('0x11')](queryQueues));_0x14bf74[_0xcee6('0x2b')](db[_0xcee6('0x2f')]['findAll'](queryQueues));_0x14bf74['push'](db[_0xcee6('0x5')][_0xcee6('0x11')](queryTelephones));_0x14bf74[_0xcee6('0x2b')](db[_0xcee6('0x30')][_0xcee6('0x11')](queryTrunks));_0x14bf74[_0xcee6('0x2b')](db[_0xcee6('0x17')][_0xcee6('0x11')](queryCampaigns));_0x14bf74['push'](db['User']['findAll'](queryAgents));break;case _0xcee6('0x31'):_0xfc7387[_0x54f548](_0xcee6('0x27'));_0xfc7387[_0x54f548](_0xcee6('0x28'));_0x14bf74[_0xcee6('0x2b')](getAssociatedResources(_0xcee6('0xb'),_0x3f13cb[_0xcee6('0x1e')],_0xcee6('0x32')));_0x14bf74['push'](getAssociatedResources('ChatQueues',_0x3f13cb[_0xcee6('0x1e')],_0xcee6('0x33')));_0x14bf74[_0xcee6('0x2b')](getAssociatedResources(_0xcee6('0xd'),_0x3f13cb[_0xcee6('0x1e')],_0xcee6('0x2c')));_0x14bf74[_0xcee6('0x2b')](getAssociatedResources(_0xcee6('0xe'),_0x3f13cb[_0xcee6('0x1e')],'SmsQueue'));_0x14bf74[_0xcee6('0x2b')](getAssociatedResources(_0xcee6('0xf'),_0x3f13cb[_0xcee6('0x1e')],'MailQueue'));_0x14bf74[_0xcee6('0x2b')](getAssociatedResources(_0xcee6('0x10'),_0x3f13cb[_0xcee6('0x1e')],_0xcee6('0x2f')));_0x14bf74[_0xcee6('0x2b')](getAssociatedResources('Telephones',_0x3f13cb[_0xcee6('0x1e')],_0xcee6('0x5')));_0x14bf74[_0xcee6('0x2b')](getAssociatedResources(_0xcee6('0x34'),_0x3f13cb[_0xcee6('0x1e')],_0xcee6('0x30')));_0x14bf74[_0xcee6('0x2b')](getAssociatedResources('IvrCampaigns',_0x3f13cb['userProfileId'],'Campaign'));_0x14bf74[_0xcee6('0x2b')](db[_0xcee6('0x5')]['findAll'](queryAgents));break;case _0xcee6('0x35'):_0xfc7387[_0x54f548](_0xcee6('0x27'));_0xfc7387[_0x54f548](_0xcee6('0x28'));_0x14bf74['push'](_0x3f13cb['getVoiceQueues']({'attributes':['id','name']}));_0x14bf74[_0xcee6('0x2b')](_0x3f13cb[_0xcee6('0x36')]({'attributes':['id',_0xcee6('0x3')]}));_0x14bf74[_0xcee6('0x2b')](_0x3f13cb[_0xcee6('0x37')]({'attributes':['id',_0xcee6('0x3')]}));_0x14bf74['push'](_0x3f13cb[_0xcee6('0x38')]({'attributes':['id','name']}));_0x14bf74[_0xcee6('0x2b')](_0x3f13cb['getMailQueues']({'attributes':['id',_0xcee6('0x3')]}));_0x14bf74[_0xcee6('0x2b')](_0x3f13cb['getOpenchannelQueues']({'attributes':['id','name']}));break;}return BPromise[_0xcee6('0x39')](_0x14bf74);}})[_0xcee6('0xa')](function(_0x5de551){if(_0x5de551&&_0x5de551[_0xcee6('0x1a')]){for(var _0x1eed99=0x0;_0x1eed99<_0x5de551['length'];_0x1eed99+=0x1){for(var _0x456ac3=0x0;_0x456ac3<_0x5de551[_0x1eed99][_0xcee6('0x1a')];_0x456ac3+=0x1){switch(_0x1eed99){case 0x0:joinOrLeaveQueues(_0xfc7387,_0x54f548,'voice',_0x5de551[_0x1eed99][_0x456ac3]);break;case 0x1:joinOrLeaveQueues(_0xfc7387,_0x54f548,_0xcee6('0x3a'),_0x5de551[_0x1eed99][_0x456ac3]);break;case 0x2:joinOrLeaveQueues(_0xfc7387,_0x54f548,_0xcee6('0x3b'),_0x5de551[_0x1eed99][_0x456ac3]);break;case 0x3:joinOrLeaveQueues(_0xfc7387,_0x54f548,_0xcee6('0x3c'),_0x5de551[_0x1eed99][_0x456ac3]);break;case 0x4:joinOrLeaveQueues(_0xfc7387,_0x54f548,'mail',_0x5de551[_0x1eed99][_0x456ac3]);break;case 0x5:joinOrLeaveQueues(_0xfc7387,_0x54f548,_0xcee6('0x3d'),_0x5de551[_0x1eed99][_0x456ac3]);break;case 0x6:_0xfc7387[_0x54f548](util[_0xcee6('0x18')](_0xcee6('0x3e'),_0x5de551[_0x1eed99][_0x456ac3][_0xcee6('0x3')]));break;case 0x7:_0xfc7387[_0x54f548](util[_0xcee6('0x18')](_0xcee6('0x3f'),_0x5de551[_0x1eed99][_0x456ac3]['name']));break;case 0x8:_0xfc7387[_0x54f548](util['format']('campaign:%s:%s',_0x5de551[_0x1eed99][_0x456ac3][_0xcee6('0x8')],_0x5de551[_0x1eed99][_0x456ac3][_0xcee6('0x3')]));break;case 0x9:_0xfc7387[_0x54f548](util['format'](_0xcee6('0x1b'),_0x5de551[_0x1eed99][_0x456ac3]['name']));break;}}}}})[_0xcee6('0xa')](function(){if(_0x54f548===_0xcee6('0x40')){var _0x4880b0=_[_0xcee6('0x15')](_0x2ea2cd[_0xcee6('0x20')],'id');return _0x2ea2cd['removeChatInteractions'](_0x4880b0)[_0xcee6('0xa')](function(){for(var _0x54782b=0x0;_0x54782b<_0x4880b0[_0xcee6('0x1a')];_0x54782b+=0x1){_0x48f3c5[_0xcee6('0x41')](_0xcee6('0x42'),{'ChatInteractionId':Number(_0x4880b0[_0x54782b]),'UserId':Number(_0x2ea2cd['id'])});}});}})[_0xcee6('0xa')](function(){if(_0x54f548===_0xcee6('0x40')){var _0x4d3fc4=_[_0xcee6('0x15')](_0x2ea2cd[_0xcee6('0x43')],'id');return _0x2ea2cd[_0xcee6('0x44')](_0x4d3fc4)[_0xcee6('0xa')](function(){for(var _0x1e89ad=0x0;_0x1e89ad<_0x4d3fc4[_0xcee6('0x1a')];_0x1e89ad+=0x1){_0x48f3c5[_0xcee6('0x41')]('user_has_mail_interactions:remove',{'MailInteractionId':Number(_0x4d3fc4[_0x1e89ad]),'UserId':Number(_0x2ea2cd['id'])});}});}})['then'](function(){if(_0x54f548===_0xcee6('0x40')){var _0x3b9894=_[_0xcee6('0x15')](_0x2ea2cd['FaxInteractions'],'id');return _0x2ea2cd[_0xcee6('0x45')](_0x3b9894)[_0xcee6('0xa')](function(){for(var _0x44cd45=0x0;_0x44cd45<_0x3b9894[_0xcee6('0x1a')];_0x44cd45+=0x1){_0x48f3c5['emit'](_0xcee6('0x46'),{'FaxInteractionId':Number(_0x3b9894[_0x44cd45]),'UserId':Number(_0x2ea2cd['id'])});}});}})['then'](function(){if(_0x54f548===_0xcee6('0x40')){var _0x15489e=_[_0xcee6('0x15')](_0x2ea2cd[_0xcee6('0x47')],'id');return _0x2ea2cd[_0xcee6('0x48')](_0x15489e)['then'](function(){for(var _0x565d0d=0x0;_0x565d0d<_0x15489e['length'];_0x565d0d+=0x1){_0x48f3c5[_0xcee6('0x41')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x15489e[_0x565d0d]),'UserId':Number(_0x2ea2cd['id'])});}});}})['then'](function(){if(_0x54f548===_0xcee6('0x40')){var _0x3536ee=_[_0xcee6('0x15')](_0x2ea2cd[_0xcee6('0x49')],'id');return _0x2ea2cd[_0xcee6('0x4a')](_0x3536ee)['then'](function(){for(var _0x137f52=0x0;_0x137f52<_0x3536ee[_0xcee6('0x1a')];_0x137f52+=0x1){_0x48f3c5['emit'](_0xcee6('0x4b'),{'OpenchannelInteractionId':Number(_0x3536ee[_0x137f52]),'UserId':Number(_0x2ea2cd['id'])});}});}})[_0xcee6('0x4c')](function(_0x40f314){_0xfc7387[_0xcee6('0x4d')](_0x40f314);});}}function onDisconnect(_0x3cf671,_0x37b4a){joinOrLeave(_0x3cf671,_0xcee6('0x40'),_0x37b4a);}function onConnect(_0x49293a){joinOrLeave(_0x49293a,'join');}exports[_0xcee6('0x4e')]=function(_0x44c668){_0x44c668['on'](_0xcee6('0x4f'),function(_0x165d23){_0x165d23[_0xcee6('0x50')](0x0);_0x165d23[_0xcee6('0x51')]=_0x165d23[_0xcee6('0x52')][_0xcee6('0x4f')][_0xcee6('0x53')]+':'+_0x165d23[_0xcee6('0x52')][_0xcee6('0x4f')][_0xcee6('0x54')];_0x165d23[_0xcee6('0x55')]=new Date();_0x165d23[_0xcee6('0x4d')]=function(_0x1f3dba){console[_0xcee6('0x4d')](_0xcee6('0x56')+_0x165d23[_0xcee6('0x57')][_0xcee6('0x3')]+'['+_0x165d23[_0xcee6('0x51')]+']',_0x1f3dba);};_0x165d23['on']('disconnect',function(){onDisconnect(_0x165d23,_0x44c668);_0x165d23['log']('DISCONNECTED');});onConnect(_0x165d23);_0x165d23['log']('CONNECTED');});};