Built motion from commit (unavailable).|2.4.10
[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 _0xbc3e=['getOpenchannelQueues','length','voice','chat','fax','mail','openchannel','trunk:%s','leave','removeChatInteractions','emit','removeFaxInteractions','user_has_fax_interactions:remove','removeSmsInteractions','user_has_sms_interactions:remove','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','catch','log','join','default','setMaxListeners','address','request','connection','remoteAddress','remotePort','connectedAt','SocketIO\x20','nsp','DISCONNECTED','lodash','../mysqldb','./environment','Agents','User','role','agent','name','telephone','type','ivr','findOne','VoiceQueues','ChatQueues','FaxQueues','MailQueues','findAll','Telephones','Trunks','UserProfileResource','then','map','resourceId','where','Campaign','format','user:%s','handshake','query','userProfileId','ChatInteraction','ChatInteractions','MailInteractions','FaxInteraction','FaxInteractions','SmsInteraction','SmsInteractions','OpenchannelInteraction','OpenchannelInteractions','admin','voice:outbound','hasOwnProperty','include','push','VoiceQueue','ChatQueue','FaxQueue','MailQueue','Trunk','user','SmsQueues','SmsQueue','OpenchannelQueues','OpenchannelQueue','IvrCampaigns','voice:inbound','getVoiceQueues','getChatQueues','getFaxQueues','getSmsQueues','getMailQueues'];(function(_0xa65309,_0x109948){var _0x48a38f=function(_0x116854){while(--_0x116854){_0xa65309['push'](_0xa65309['shift']());}};_0x48a38f(++_0x109948);}(_0xbc3e,0x1eb));var _0xebc3=function(_0x53ccf2,_0x13cb67){_0x53ccf2=_0x53ccf2-0x0;var _0x5a2964=_0xbc3e[_0x53ccf2];return _0x5a2964;};'use strict';var _=require(_0xebc3('0x0'));var util=require('util');var BPromise=require('bluebird');var db=require(_0xebc3('0x1'))['db'];var config=require(_0xebc3('0x2'));var queryQueues={'attributes':['id','name'],'include':[{'as':_0xebc3('0x3'),'model':db[_0xebc3('0x4')],'attributes':['id','name',_0xebc3('0x5')],'raw':!![],'where':{'role':_0xebc3('0x6')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0xebc3('0x7')],'where':{'role':_0xebc3('0x8')}};var queryTrunks={'raw':!![],'attributes':['id',_0xebc3('0x7')]};var queryAgents={'raw':!![],'attributes':['id','name'],'where':{'role':_0xebc3('0x6')}};var queryCampaigns={'raw':!![],'attributes':['id',_0xebc3('0x7'),_0xebc3('0x9')],'where':{'type':_0xebc3('0xa')}};function getAssociatedResources(_0x5ad74d,_0x2573f0,_0x46b5d2){return db['UserProfileSection'][_0xebc3('0xb')]({'where':{'name':_0x5ad74d,'userProfileId':_0x2573f0},'raw':!![]})['then'](function(_0x269bb5){if(_0x269bb5){if(_0x269bb5['autoAssociation']){switch(_0x5ad74d){case _0xebc3('0xc'):case _0xebc3('0xd'):case _0xebc3('0xe'):case'SmsQueues':case _0xebc3('0xf'):case'OpenchannelQueues':return db[_0x46b5d2][_0xebc3('0x10')](queryQueues);case _0xebc3('0x11'):return db[_0x46b5d2][_0xebc3('0x10')](queryTelephones);case _0xebc3('0x12'):return db[_0x46b5d2]['findAll'](queryTrunks);case'IvrCampaigns':return db[_0x46b5d2][_0xebc3('0x10')](queryCampaigns);}}else{return db[_0xebc3('0x13')][_0xebc3('0x10')]({'attributes':['resourceId'],'where':{'sectionId':_0x269bb5['id']},'raw':!![]})[_0xebc3('0x14')](function(_0x3f0dd5){if(_0x3f0dd5){var _0x334c35={'where':{'id':_[_0xebc3('0x15')](_0x3f0dd5,_0xebc3('0x16'))},'raw':!![]};switch(_0x46b5d2){case _0xebc3('0x4'):_0x334c35[_0xebc3('0x17')][_0xebc3('0x5')]=_0xebc3('0x8');break;case _0xebc3('0x18'):_0x334c35[_0xebc3('0x17')][_0xebc3('0x9')]='ivr';break;}return db[_0x46b5d2]['findAll'](_0x334c35);}else{return[];}});}}else{return[];}})[_0xebc3('0x14')](function(_0xf2d7e1){return _0xf2d7e1;});}function joinOrLeaveQueues(_0x2a6235,_0x5ebfab,_0x3ebea2,_0x21eb42){_0x2a6235[_0x5ebfab](util[_0xebc3('0x19')]('%s:queue:%s',_0x3ebea2,_0x21eb42[_0xebc3('0x7')]));if(_0x21eb42[_0xebc3('0x3')]){for(var _0x5c73d5=0x0;_0x5c73d5<_0x21eb42[_0xebc3('0x3')]['length'];_0x5c73d5+=0x1){_0x2a6235[_0x5ebfab](util['format'](_0xebc3('0x1a'),_0x21eb42['Agents'][_0x5c73d5][_0xebc3('0x7')]));}}}function joinOrLeave(_0xa335a2,_0x3b76ce,_0x4a7012){var _0x52ea23;if(_0xa335a2[_0xebc3('0x1b')][_0xebc3('0x1c')]['id']){db['User']['find']({'attributes':['id',_0xebc3('0x7'),_0xebc3('0x5'),_0xebc3('0x1d')],'where':{'id':_0xa335a2[_0xebc3('0x1b')][_0xebc3('0x1c')]['id']},'include':[{'model':db[_0xebc3('0x1e')],'as':_0xebc3('0x1f'),'attributes':['id'],'raw':!![]},{'model':db['MailInteraction'],'as':_0xebc3('0x20'),'attributes':['id'],'raw':!![]},{'model':db[_0xebc3('0x21')],'as':_0xebc3('0x22'),'attributes':['id'],'raw':!![]},{'model':db[_0xebc3('0x23')],'as':_0xebc3('0x24'),'attributes':['id'],'raw':!![]},{'model':db[_0xebc3('0x25')],'as':_0xebc3('0x26'),'attributes':['id'],'raw':!![]}]})[_0xebc3('0x14')](function(_0x54534f){if(_0x54534f){_0x52ea23=_0x54534f;_0xa335a2[_0x3b76ce](util[_0xebc3('0x19')]('user:%s',_0x54534f[_0xebc3('0x7')]));var _0x400133=[];switch(_0x54534f[_0xebc3('0x5')]){case _0xebc3('0x27'):_0xa335a2[_0x3b76ce]('voice:inbound');_0xa335a2[_0x3b76ce](_0xebc3('0x28'));if(queryQueues[_0xebc3('0x29')](_0xebc3('0x2a'))){delete queryQueues['include'];}_0x400133[_0xebc3('0x2b')](db[_0xebc3('0x2c')][_0xebc3('0x10')](queryQueues));_0x400133[_0xebc3('0x2b')](db[_0xebc3('0x2d')][_0xebc3('0x10')](queryQueues));_0x400133['push'](db[_0xebc3('0x2e')][_0xebc3('0x10')](queryQueues));_0x400133['push'](db['SmsQueue'][_0xebc3('0x10')](queryQueues));_0x400133[_0xebc3('0x2b')](db[_0xebc3('0x2f')][_0xebc3('0x10')](queryQueues));_0x400133[_0xebc3('0x2b')](db['OpenchannelQueue'][_0xebc3('0x10')](queryQueues));_0x400133[_0xebc3('0x2b')](db[_0xebc3('0x4')][_0xebc3('0x10')](queryTelephones));_0x400133['push'](db[_0xebc3('0x30')]['findAll'](queryTrunks));_0x400133[_0xebc3('0x2b')](db[_0xebc3('0x18')][_0xebc3('0x10')](queryCampaigns));_0x400133[_0xebc3('0x2b')](db[_0xebc3('0x4')]['findAll'](queryAgents));break;case _0xebc3('0x31'):_0xa335a2[_0x3b76ce]('voice:inbound');_0xa335a2[_0x3b76ce]('voice:outbound');_0x400133[_0xebc3('0x2b')](getAssociatedResources(_0xebc3('0xc'),_0x54534f[_0xebc3('0x1d')],'VoiceQueue'));_0x400133['push'](getAssociatedResources('ChatQueues',_0x54534f[_0xebc3('0x1d')],_0xebc3('0x2d')));_0x400133[_0xebc3('0x2b')](getAssociatedResources(_0xebc3('0xe'),_0x54534f[_0xebc3('0x1d')],_0xebc3('0x2e')));_0x400133[_0xebc3('0x2b')](getAssociatedResources(_0xebc3('0x32'),_0x54534f[_0xebc3('0x1d')],_0xebc3('0x33')));_0x400133[_0xebc3('0x2b')](getAssociatedResources(_0xebc3('0xf'),_0x54534f[_0xebc3('0x1d')],'MailQueue'));_0x400133['push'](getAssociatedResources(_0xebc3('0x34'),_0x54534f[_0xebc3('0x1d')],_0xebc3('0x35')));_0x400133[_0xebc3('0x2b')](getAssociatedResources(_0xebc3('0x11'),_0x54534f['userProfileId'],_0xebc3('0x4')));_0x400133[_0xebc3('0x2b')](getAssociatedResources(_0xebc3('0x12'),_0x54534f['userProfileId'],_0xebc3('0x30')));_0x400133[_0xebc3('0x2b')](getAssociatedResources(_0xebc3('0x36'),_0x54534f[_0xebc3('0x1d')],_0xebc3('0x18')));_0x400133['push'](db['User'][_0xebc3('0x10')](queryAgents));break;case _0xebc3('0x6'):_0xa335a2[_0x3b76ce](_0xebc3('0x37'));_0xa335a2[_0x3b76ce](_0xebc3('0x28'));_0x400133[_0xebc3('0x2b')](_0x54534f[_0xebc3('0x38')]({'attributes':['id','name']}));_0x400133[_0xebc3('0x2b')](_0x54534f[_0xebc3('0x39')]({'attributes':['id',_0xebc3('0x7')]}));_0x400133[_0xebc3('0x2b')](_0x54534f[_0xebc3('0x3a')]({'attributes':['id','name']}));_0x400133[_0xebc3('0x2b')](_0x54534f[_0xebc3('0x3b')]({'attributes':['id',_0xebc3('0x7')]}));_0x400133[_0xebc3('0x2b')](_0x54534f[_0xebc3('0x3c')]({'attributes':['id','name']}));_0x400133[_0xebc3('0x2b')](_0x54534f[_0xebc3('0x3d')]({'attributes':['id',_0xebc3('0x7')]}));break;}return BPromise['all'](_0x400133);}})['then'](function(_0x5caeb8){if(_0x5caeb8&&_0x5caeb8[_0xebc3('0x3e')]){for(var _0x5cc716=0x0;_0x5cc716<_0x5caeb8[_0xebc3('0x3e')];_0x5cc716+=0x1){for(var _0x32d4ff=0x0;_0x32d4ff<_0x5caeb8[_0x5cc716]['length'];_0x32d4ff+=0x1){switch(_0x5cc716){case 0x0:joinOrLeaveQueues(_0xa335a2,_0x3b76ce,_0xebc3('0x3f'),_0x5caeb8[_0x5cc716][_0x32d4ff]);break;case 0x1:joinOrLeaveQueues(_0xa335a2,_0x3b76ce,_0xebc3('0x40'),_0x5caeb8[_0x5cc716][_0x32d4ff]);break;case 0x2:joinOrLeaveQueues(_0xa335a2,_0x3b76ce,_0xebc3('0x41'),_0x5caeb8[_0x5cc716][_0x32d4ff]);break;case 0x3:joinOrLeaveQueues(_0xa335a2,_0x3b76ce,'sms',_0x5caeb8[_0x5cc716][_0x32d4ff]);break;case 0x4:joinOrLeaveQueues(_0xa335a2,_0x3b76ce,_0xebc3('0x42'),_0x5caeb8[_0x5cc716][_0x32d4ff]);break;case 0x5:joinOrLeaveQueues(_0xa335a2,_0x3b76ce,_0xebc3('0x43'),_0x5caeb8[_0x5cc716][_0x32d4ff]);break;case 0x6:_0xa335a2[_0x3b76ce](util[_0xebc3('0x19')]('telephone:%s',_0x5caeb8[_0x5cc716][_0x32d4ff][_0xebc3('0x7')]));break;case 0x7:_0xa335a2[_0x3b76ce](util[_0xebc3('0x19')](_0xebc3('0x44'),_0x5caeb8[_0x5cc716][_0x32d4ff][_0xebc3('0x7')]));break;case 0x8:_0xa335a2[_0x3b76ce](util[_0xebc3('0x19')]('campaign:%s:%s',_0x5caeb8[_0x5cc716][_0x32d4ff][_0xebc3('0x9')],_0x5caeb8[_0x5cc716][_0x32d4ff][_0xebc3('0x7')]));break;case 0x9:_0xa335a2[_0x3b76ce](util[_0xebc3('0x19')](_0xebc3('0x1a'),_0x5caeb8[_0x5cc716][_0x32d4ff][_0xebc3('0x7')]));break;}}}}})[_0xebc3('0x14')](function(){if(_0x3b76ce===_0xebc3('0x45')){var _0x4ac7fb=_[_0xebc3('0x15')](_0x52ea23[_0xebc3('0x1f')],'id');return _0x52ea23[_0xebc3('0x46')](_0x4ac7fb)[_0xebc3('0x14')](function(){for(var _0x653271=0x0;_0x653271<_0x4ac7fb[_0xebc3('0x3e')];_0x653271+=0x1){_0x4a7012[_0xebc3('0x47')]('user_has_chat_interactions:remove',{'ChatInteractionId':Number(_0x4ac7fb[_0x653271]),'UserId':Number(_0x52ea23['id'])});}});}})[_0xebc3('0x14')](function(){if(_0x3b76ce==='leave'){var _0x5113cd=_[_0xebc3('0x15')](_0x52ea23['MailInteractions'],'id');return _0x52ea23['removeMailInteractions'](_0x5113cd)['then'](function(){for(var _0x25cd75=0x0;_0x25cd75<_0x5113cd[_0xebc3('0x3e')];_0x25cd75+=0x1){_0x4a7012[_0xebc3('0x47')]('user_has_mail_interactions:remove',{'MailInteractionId':Number(_0x5113cd[_0x25cd75]),'UserId':Number(_0x52ea23['id'])});}});}})[_0xebc3('0x14')](function(){if(_0x3b76ce==='leave'){var _0x476ca=_[_0xebc3('0x15')](_0x52ea23[_0xebc3('0x22')],'id');return _0x52ea23[_0xebc3('0x48')](_0x476ca)[_0xebc3('0x14')](function(){for(var _0xbc21f=0x0;_0xbc21f<_0x476ca['length'];_0xbc21f+=0x1){_0x4a7012[_0xebc3('0x47')](_0xebc3('0x49'),{'FaxInteractionId':Number(_0x476ca[_0xbc21f]),'UserId':Number(_0x52ea23['id'])});}});}})['then'](function(){if(_0x3b76ce==='leave'){var _0x3cc1a8=_[_0xebc3('0x15')](_0x52ea23[_0xebc3('0x24')],'id');return _0x52ea23[_0xebc3('0x4a')](_0x3cc1a8)[_0xebc3('0x14')](function(){for(var _0xa09a08=0x0;_0xa09a08<_0x3cc1a8[_0xebc3('0x3e')];_0xa09a08+=0x1){_0x4a7012[_0xebc3('0x47')](_0xebc3('0x4b'),{'SmsInteractionId':Number(_0x3cc1a8[_0xa09a08]),'UserId':Number(_0x52ea23['id'])});}});}})[_0xebc3('0x14')](function(){if(_0x3b76ce===_0xebc3('0x45')){var _0x3f8e50=_['map'](_0x52ea23[_0xebc3('0x26')],'id');return _0x52ea23[_0xebc3('0x4c')](_0x3f8e50)[_0xebc3('0x14')](function(){for(var _0x395486=0x0;_0x395486<_0x3f8e50[_0xebc3('0x3e')];_0x395486+=0x1){_0x4a7012[_0xebc3('0x47')](_0xebc3('0x4d'),{'OpenchannelInteractionId':Number(_0x3f8e50[_0x395486]),'UserId':Number(_0x52ea23['id'])});}});}})[_0xebc3('0x4e')](function(_0xfadf9e){_0xa335a2[_0xebc3('0x4f')](_0xfadf9e);});}}function onDisconnect(_0x4aaeb3,_0x4fb95b){joinOrLeave(_0x4aaeb3,'leave',_0x4fb95b);}function onConnect(_0x50a35e){joinOrLeave(_0x50a35e,_0xebc3('0x50'));}exports[_0xebc3('0x51')]=function(_0x15b99c){_0x15b99c['on']('connection',function(_0x38577e){_0x38577e[_0xebc3('0x52')](0x0);_0x38577e[_0xebc3('0x53')]=_0x38577e[_0xebc3('0x54')][_0xebc3('0x55')][_0xebc3('0x56')]+':'+_0x38577e[_0xebc3('0x54')][_0xebc3('0x55')][_0xebc3('0x57')];_0x38577e[_0xebc3('0x58')]=new Date();_0x38577e[_0xebc3('0x4f')]=function(_0x10ff2f){console[_0xebc3('0x4f')](_0xebc3('0x59')+_0x38577e[_0xebc3('0x5a')]['name']+'['+_0x38577e[_0xebc3('0x53')]+']',_0x10ff2f);};_0x38577e['on']('disconnect',function(){onDisconnect(_0x38577e,_0x15b99c);_0x38577e[_0xebc3('0x4f')](_0xebc3('0x5b'));});onConnect(_0x38577e);_0x38577e[_0xebc3('0x4f')]('CONNECTED');});};