Built motion from commit (unavailable).|2.4.18
[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 _0x4ae4=['SmsInteraction','SmsInteractions','OpenchannelInteraction','OpenchannelInteractions','voice:inbound','voice:outbound','hasOwnProperty','include','push','ChatQueue','FaxQueue','SmsQueue','OpenchannelQueue','Campaign','user','VoiceQueue','Trunks','Trunk','getVoiceQueues','getChatQueues','getFaxQueues','getSmsQueues','getMailQueues','getOpenchannelQueues','chat','fax','sms','mail','openchannel','telephone:%s','campaign:%s:%s','removeChatInteractions','user_has_chat_interactions:remove','emit','user_has_mail_interactions:remove','leave','FaxInteractions','removeFaxInteractions','user_has_sms_interactions:remove','user_has_openchannel_interactions:remove','catch','log','join','connection','address','request','remotePort','connectedAt','SocketIO\x20','nsp','DISCONNECTED','lodash','bluebird','../mysqldb','./environment','name','Agents','User','agent','telephone','type','ivr','UserProfileSection','VoiceQueues','ChatQueues','FaxQueues','SmsQueues','MailQueues','OpenchannelQueues','findAll','Telephones','IvrCampaigns','UserProfileResource','then','map','resourceId','role','where','format','length','user:%s','handshake','find','userProfileId','query','ChatInteraction','ChatInteractions','FaxInteraction'];(function(_0xf50820,_0x56f041){var _0x2a9b10=function(_0x33f0f4){while(--_0x33f0f4){_0xf50820['push'](_0xf50820['shift']());}};_0x2a9b10(++_0x56f041);}(_0x4ae4,0x193));var _0x44ae=function(_0x4cbf9c,_0xac5c3e){_0x4cbf9c=_0x4cbf9c-0x0;var _0x344e25=_0x4ae4[_0x4cbf9c];return _0x344e25;};'use strict';var _=require(_0x44ae('0x0'));var util=require('util');var BPromise=require(_0x44ae('0x1'));var db=require(_0x44ae('0x2'))['db'];var config=require(_0x44ae('0x3'));var queryQueues={'attributes':['id',_0x44ae('0x4')],'include':[{'as':_0x44ae('0x5'),'model':db[_0x44ae('0x6')],'attributes':['id',_0x44ae('0x4'),'role'],'raw':!![],'where':{'role':_0x44ae('0x7')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0x44ae('0x4')],'where':{'role':_0x44ae('0x8')}};var queryTrunks={'raw':!![],'attributes':['id','name']};var queryAgents={'raw':!![],'attributes':['id',_0x44ae('0x4')],'where':{'role':_0x44ae('0x7')}};var queryCampaigns={'raw':!![],'attributes':['id',_0x44ae('0x4'),_0x44ae('0x9')],'where':{'type':_0x44ae('0xa')}};function getAssociatedResources(_0x1718ac,_0x310fbd,_0x559fa8){return db[_0x44ae('0xb')]['findOne']({'where':{'name':_0x1718ac,'userProfileId':_0x310fbd},'raw':!![]})['then'](function(_0x60f2e2){if(_0x60f2e2){if(_0x60f2e2['autoAssociation']){switch(_0x1718ac){case _0x44ae('0xc'):case _0x44ae('0xd'):case _0x44ae('0xe'):case _0x44ae('0xf'):case _0x44ae('0x10'):case _0x44ae('0x11'):return db[_0x559fa8][_0x44ae('0x12')](queryQueues);case _0x44ae('0x13'):return db[_0x559fa8][_0x44ae('0x12')](queryTelephones);case'Trunks':return db[_0x559fa8][_0x44ae('0x12')](queryTrunks);case _0x44ae('0x14'):return db[_0x559fa8]['findAll'](queryCampaigns);}}else{return db[_0x44ae('0x15')][_0x44ae('0x12')]({'attributes':['resourceId'],'where':{'sectionId':_0x60f2e2['id']},'raw':!![]})[_0x44ae('0x16')](function(_0x4d098f){if(_0x4d098f){var _0x13ba9c={'where':{'id':_[_0x44ae('0x17')](_0x4d098f,_0x44ae('0x18'))},'raw':!![]};switch(_0x559fa8){case'User':_0x13ba9c['where'][_0x44ae('0x19')]=_0x44ae('0x8');break;case'Campaign':_0x13ba9c[_0x44ae('0x1a')][_0x44ae('0x9')]=_0x44ae('0xa');break;}return db[_0x559fa8][_0x44ae('0x12')](_0x13ba9c);}else{return[];}});}}else{return[];}})[_0x44ae('0x16')](function(_0x5bd21b){return _0x5bd21b;});}function joinOrLeaveQueues(_0x2ae418,_0x347516,_0x2a1fa7,_0x4ff288){_0x2ae418[_0x347516](util[_0x44ae('0x1b')]('%s:queue:%s',_0x2a1fa7,_0x4ff288[_0x44ae('0x4')]));if(_0x4ff288[_0x44ae('0x5')]){for(var _0x3393c7=0x0;_0x3393c7<_0x4ff288['Agents'][_0x44ae('0x1c')];_0x3393c7+=0x1){_0x2ae418[_0x347516](util[_0x44ae('0x1b')](_0x44ae('0x1d'),_0x4ff288[_0x44ae('0x5')][_0x3393c7][_0x44ae('0x4')]));}}}function joinOrLeave(_0x1c6a1e,_0x2cd89b,_0x309df4){var _0x3cce09;if(_0x1c6a1e[_0x44ae('0x1e')]['query']['id']){db[_0x44ae('0x6')][_0x44ae('0x1f')]({'attributes':['id',_0x44ae('0x4'),_0x44ae('0x19'),_0x44ae('0x20')],'where':{'id':_0x1c6a1e[_0x44ae('0x1e')][_0x44ae('0x21')]['id']},'include':[{'model':db[_0x44ae('0x22')],'as':_0x44ae('0x23'),'attributes':['id'],'raw':!![]},{'model':db['MailInteraction'],'as':'MailInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x44ae('0x24')],'as':'FaxInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x44ae('0x25')],'as':_0x44ae('0x26'),'attributes':['id'],'raw':!![]},{'model':db[_0x44ae('0x27')],'as':_0x44ae('0x28'),'attributes':['id'],'raw':!![]}]})[_0x44ae('0x16')](function(_0x3e1f2c){if(_0x3e1f2c){_0x3cce09=_0x3e1f2c;_0x1c6a1e[_0x2cd89b](util[_0x44ae('0x1b')](_0x44ae('0x1d'),_0x3e1f2c[_0x44ae('0x4')]));var _0x24351c=[];switch(_0x3e1f2c[_0x44ae('0x19')]){case'admin':_0x1c6a1e[_0x2cd89b](_0x44ae('0x29'));_0x1c6a1e[_0x2cd89b](_0x44ae('0x2a'));if(queryQueues[_0x44ae('0x2b')](_0x44ae('0x2c'))){delete queryQueues[_0x44ae('0x2c')];}_0x24351c[_0x44ae('0x2d')](db['VoiceQueue']['findAll'](queryQueues));_0x24351c['push'](db[_0x44ae('0x2e')][_0x44ae('0x12')](queryQueues));_0x24351c['push'](db[_0x44ae('0x2f')][_0x44ae('0x12')](queryQueues));_0x24351c['push'](db[_0x44ae('0x30')]['findAll'](queryQueues));_0x24351c[_0x44ae('0x2d')](db['MailQueue'][_0x44ae('0x12')](queryQueues));_0x24351c[_0x44ae('0x2d')](db[_0x44ae('0x31')]['findAll'](queryQueues));_0x24351c[_0x44ae('0x2d')](db[_0x44ae('0x6')][_0x44ae('0x12')](queryTelephones));_0x24351c[_0x44ae('0x2d')](db['Trunk'][_0x44ae('0x12')](queryTrunks));_0x24351c['push'](db[_0x44ae('0x32')][_0x44ae('0x12')](queryCampaigns));_0x24351c['push'](db[_0x44ae('0x6')][_0x44ae('0x12')](queryAgents));break;case _0x44ae('0x33'):_0x1c6a1e[_0x2cd89b]('voice:inbound');_0x1c6a1e[_0x2cd89b](_0x44ae('0x2a'));_0x24351c[_0x44ae('0x2d')](getAssociatedResources(_0x44ae('0xc'),_0x3e1f2c[_0x44ae('0x20')],_0x44ae('0x34')));_0x24351c[_0x44ae('0x2d')](getAssociatedResources('ChatQueues',_0x3e1f2c[_0x44ae('0x20')],_0x44ae('0x2e')));_0x24351c[_0x44ae('0x2d')](getAssociatedResources('FaxQueues',_0x3e1f2c[_0x44ae('0x20')],_0x44ae('0x2f')));_0x24351c[_0x44ae('0x2d')](getAssociatedResources(_0x44ae('0xf'),_0x3e1f2c['userProfileId'],'SmsQueue'));_0x24351c[_0x44ae('0x2d')](getAssociatedResources(_0x44ae('0x10'),_0x3e1f2c['userProfileId'],'MailQueue'));_0x24351c[_0x44ae('0x2d')](getAssociatedResources(_0x44ae('0x11'),_0x3e1f2c[_0x44ae('0x20')],_0x44ae('0x31')));_0x24351c[_0x44ae('0x2d')](getAssociatedResources(_0x44ae('0x13'),_0x3e1f2c[_0x44ae('0x20')],'User'));_0x24351c[_0x44ae('0x2d')](getAssociatedResources(_0x44ae('0x35'),_0x3e1f2c[_0x44ae('0x20')],_0x44ae('0x36')));_0x24351c[_0x44ae('0x2d')](getAssociatedResources(_0x44ae('0x14'),_0x3e1f2c[_0x44ae('0x20')],_0x44ae('0x32')));_0x24351c[_0x44ae('0x2d')](db['User'][_0x44ae('0x12')](queryAgents));break;case _0x44ae('0x7'):_0x1c6a1e[_0x2cd89b](_0x44ae('0x29'));_0x1c6a1e[_0x2cd89b](_0x44ae('0x2a'));_0x24351c[_0x44ae('0x2d')](_0x3e1f2c[_0x44ae('0x37')]({'attributes':['id',_0x44ae('0x4')]}));_0x24351c[_0x44ae('0x2d')](_0x3e1f2c[_0x44ae('0x38')]({'attributes':['id','name']}));_0x24351c[_0x44ae('0x2d')](_0x3e1f2c[_0x44ae('0x39')]({'attributes':['id',_0x44ae('0x4')]}));_0x24351c[_0x44ae('0x2d')](_0x3e1f2c[_0x44ae('0x3a')]({'attributes':['id','name']}));_0x24351c[_0x44ae('0x2d')](_0x3e1f2c[_0x44ae('0x3b')]({'attributes':['id',_0x44ae('0x4')]}));_0x24351c['push'](_0x3e1f2c[_0x44ae('0x3c')]({'attributes':['id','name']}));break;}return BPromise['all'](_0x24351c);}})[_0x44ae('0x16')](function(_0x20ae57){if(_0x20ae57&&_0x20ae57['length']){for(var _0x5453cb=0x0;_0x5453cb<_0x20ae57[_0x44ae('0x1c')];_0x5453cb+=0x1){for(var _0x1b7795=0x0;_0x1b7795<_0x20ae57[_0x5453cb]['length'];_0x1b7795+=0x1){switch(_0x5453cb){case 0x0:joinOrLeaveQueues(_0x1c6a1e,_0x2cd89b,'voice',_0x20ae57[_0x5453cb][_0x1b7795]);break;case 0x1:joinOrLeaveQueues(_0x1c6a1e,_0x2cd89b,_0x44ae('0x3d'),_0x20ae57[_0x5453cb][_0x1b7795]);break;case 0x2:joinOrLeaveQueues(_0x1c6a1e,_0x2cd89b,_0x44ae('0x3e'),_0x20ae57[_0x5453cb][_0x1b7795]);break;case 0x3:joinOrLeaveQueues(_0x1c6a1e,_0x2cd89b,_0x44ae('0x3f'),_0x20ae57[_0x5453cb][_0x1b7795]);break;case 0x4:joinOrLeaveQueues(_0x1c6a1e,_0x2cd89b,_0x44ae('0x40'),_0x20ae57[_0x5453cb][_0x1b7795]);break;case 0x5:joinOrLeaveQueues(_0x1c6a1e,_0x2cd89b,_0x44ae('0x41'),_0x20ae57[_0x5453cb][_0x1b7795]);break;case 0x6:_0x1c6a1e[_0x2cd89b](util[_0x44ae('0x1b')](_0x44ae('0x42'),_0x20ae57[_0x5453cb][_0x1b7795][_0x44ae('0x4')]));break;case 0x7:_0x1c6a1e[_0x2cd89b](util['format']('trunk:%s',_0x20ae57[_0x5453cb][_0x1b7795][_0x44ae('0x4')]));break;case 0x8:_0x1c6a1e[_0x2cd89b](util[_0x44ae('0x1b')](_0x44ae('0x43'),_0x20ae57[_0x5453cb][_0x1b7795][_0x44ae('0x9')],_0x20ae57[_0x5453cb][_0x1b7795][_0x44ae('0x4')]));break;case 0x9:_0x1c6a1e[_0x2cd89b](util[_0x44ae('0x1b')]('user:%s',_0x20ae57[_0x5453cb][_0x1b7795][_0x44ae('0x4')]));break;}}}}})[_0x44ae('0x16')](function(){if(_0x2cd89b==='leave'){var _0x2528da=_[_0x44ae('0x17')](_0x3cce09[_0x44ae('0x23')],'id');return _0x3cce09[_0x44ae('0x44')](_0x2528da)[_0x44ae('0x16')](function(){for(var _0x224c07=0x0;_0x224c07<_0x2528da[_0x44ae('0x1c')];_0x224c07+=0x1){_0x309df4['emit'](_0x44ae('0x45'),{'ChatInteractionId':Number(_0x2528da[_0x224c07]),'UserId':Number(_0x3cce09['id'])});}});}})[_0x44ae('0x16')](function(){if(_0x2cd89b==='leave'){var _0x15c01e=_['map'](_0x3cce09['MailInteractions'],'id');return _0x3cce09['removeMailInteractions'](_0x15c01e)[_0x44ae('0x16')](function(){for(var _0x2c7ea2=0x0;_0x2c7ea2<_0x15c01e[_0x44ae('0x1c')];_0x2c7ea2+=0x1){_0x309df4[_0x44ae('0x46')](_0x44ae('0x47'),{'MailInteractionId':Number(_0x15c01e[_0x2c7ea2]),'UserId':Number(_0x3cce09['id'])});}});}})[_0x44ae('0x16')](function(){if(_0x2cd89b===_0x44ae('0x48')){var _0x142007=_[_0x44ae('0x17')](_0x3cce09[_0x44ae('0x49')],'id');return _0x3cce09[_0x44ae('0x4a')](_0x142007)[_0x44ae('0x16')](function(){for(var _0x42d952=0x0;_0x42d952<_0x142007[_0x44ae('0x1c')];_0x42d952+=0x1){_0x309df4['emit']('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x142007[_0x42d952]),'UserId':Number(_0x3cce09['id'])});}});}})[_0x44ae('0x16')](function(){if(_0x2cd89b===_0x44ae('0x48')){var _0x4269ee=_[_0x44ae('0x17')](_0x3cce09[_0x44ae('0x26')],'id');return _0x3cce09['removeSmsInteractions'](_0x4269ee)[_0x44ae('0x16')](function(){for(var _0x220cd5=0x0;_0x220cd5<_0x4269ee['length'];_0x220cd5+=0x1){_0x309df4[_0x44ae('0x46')](_0x44ae('0x4b'),{'SmsInteractionId':Number(_0x4269ee[_0x220cd5]),'UserId':Number(_0x3cce09['id'])});}});}})[_0x44ae('0x16')](function(){if(_0x2cd89b===_0x44ae('0x48')){var _0x3e41ca=_[_0x44ae('0x17')](_0x3cce09['OpenchannelInteractions'],'id');return _0x3cce09['removeOpenchannelInteractions'](_0x3e41ca)[_0x44ae('0x16')](function(){for(var _0x3fd413=0x0;_0x3fd413<_0x3e41ca['length'];_0x3fd413+=0x1){_0x309df4[_0x44ae('0x46')](_0x44ae('0x4c'),{'OpenchannelInteractionId':Number(_0x3e41ca[_0x3fd413]),'UserId':Number(_0x3cce09['id'])});}});}})[_0x44ae('0x4d')](function(_0xb7b137){_0x1c6a1e[_0x44ae('0x4e')](_0xb7b137);});}}function onDisconnect(_0x285254,_0x431b29){joinOrLeave(_0x285254,'leave',_0x431b29);}function onConnect(_0x47e2d8){joinOrLeave(_0x47e2d8,_0x44ae('0x4f'));}exports['default']=function(_0x2db978){_0x2db978['on'](_0x44ae('0x50'),function(_0x2d4fa2){_0x2d4fa2['setMaxListeners'](0x0);_0x2d4fa2[_0x44ae('0x51')]=_0x2d4fa2[_0x44ae('0x52')][_0x44ae('0x50')]['remoteAddress']+':'+_0x2d4fa2[_0x44ae('0x52')][_0x44ae('0x50')][_0x44ae('0x53')];_0x2d4fa2[_0x44ae('0x54')]=new Date();_0x2d4fa2[_0x44ae('0x4e')]=function(_0x3d1d60){console['log'](_0x44ae('0x55')+_0x2d4fa2[_0x44ae('0x56')][_0x44ae('0x4')]+'['+_0x2d4fa2[_0x44ae('0x51')]+']',_0x3d1d60);};_0x2d4fa2['on']('disconnect',function(){onDisconnect(_0x2d4fa2,_0x2db978);_0x2d4fa2['log'](_0x44ae('0x57'));});onConnect(_0x2d4fa2);_0x2d4fa2[_0x44ae('0x4e')]('CONNECTED');});};