Built motion from commit (unavailable).|2.3.92
[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 _0x12cc=['SmsQueues','MailQueues','findAll','Trunks','IvrCampaigns','UserProfileResource','resourceId','then','map','where','Campaign','format','%s:queue:%s','length','user:%s','handshake','query','find','userProfileId','ChatInteraction','ChatInteractions','MailInteractions','FaxInteractions','SmsInteraction','OpenchannelInteraction','OpenchannelInteractions','admin','voice:inbound','voice:outbound','hasOwnProperty','include','push','ChatQueue','FaxQueue','SmsQueue','OpenchannelQueue','Trunk','user','VoiceQueue','MailQueue','OpenchannelQueues','getChatQueues','getFaxQueues','getSmsQueues','getOpenchannelQueues','voice','fax','mail','openchannel','telephone:%s','trunk:%s','campaign:%s:%s','removeChatInteractions','user_has_chat_interactions:remove','leave','removeMailInteractions','user_has_fax_interactions:remove','emit','user_has_sms_interactions:remove','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','catch','log','join','default','connection','setMaxListeners','address','request','connectedAt','SocketIO\x20','nsp','disconnect','CONNECTED','lodash','name','Agents','User','role','agent','telephone','type','ivr','UserProfileSection','findOne','autoAssociation','VoiceQueues','ChatQueues'];(function(_0x96d7c7,_0x187861){var _0x2cb8f5=function(_0xdba37){while(--_0xdba37){_0x96d7c7['push'](_0x96d7c7['shift']());}};_0x2cb8f5(++_0x187861);}(_0x12cc,0xa2));var _0xc12c=function(_0x2bbdf8,_0x143c30){_0x2bbdf8=_0x2bbdf8-0x0;var _0x556d07=_0x12cc[_0x2bbdf8];return _0x556d07;};'use strict';var _=require(_0xc12c('0x0'));var util=require('util');var BPromise=require('bluebird');var db=require('../mysqldb')['db'];var config=require('./environment');var queryQueues={'attributes':['id',_0xc12c('0x1')],'include':[{'as':_0xc12c('0x2'),'model':db[_0xc12c('0x3')],'attributes':['id',_0xc12c('0x1'),_0xc12c('0x4')],'raw':!![],'where':{'role':_0xc12c('0x5')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0xc12c('0x1')],'where':{'role':_0xc12c('0x6')}};var queryTrunks={'raw':!![],'attributes':['id',_0xc12c('0x1')]};var queryAgents={'raw':!![],'attributes':['id',_0xc12c('0x1')],'where':{'role':_0xc12c('0x5')}};var queryCampaigns={'raw':!![],'attributes':['id',_0xc12c('0x1'),_0xc12c('0x7')],'where':{'type':_0xc12c('0x8')}};function getAssociatedResources(_0x58be35,_0x4d66c3,_0x39ae0a){return db[_0xc12c('0x9')][_0xc12c('0xa')]({'where':{'name':_0x58be35,'userProfileId':_0x4d66c3},'raw':!![]})['then'](function(_0x35ca06){if(_0x35ca06){if(_0x35ca06[_0xc12c('0xb')]){switch(_0x58be35){case _0xc12c('0xc'):case _0xc12c('0xd'):case'FaxQueues':case _0xc12c('0xe'):case _0xc12c('0xf'):case'OpenchannelQueues':return db[_0x39ae0a][_0xc12c('0x10')](queryQueues);case'Telephones':return db[_0x39ae0a][_0xc12c('0x10')](queryTelephones);case _0xc12c('0x11'):return db[_0x39ae0a][_0xc12c('0x10')](queryTrunks);case _0xc12c('0x12'):return db[_0x39ae0a][_0xc12c('0x10')](queryCampaigns);}}else{return db[_0xc12c('0x13')][_0xc12c('0x10')]({'attributes':[_0xc12c('0x14')],'where':{'sectionId':_0x35ca06['id']},'raw':!![]})[_0xc12c('0x15')](function(_0x5f2230){if(_0x5f2230){var _0x42de41={'where':{'id':_[_0xc12c('0x16')](_0x5f2230,_0xc12c('0x14'))},'raw':!![]};switch(_0x39ae0a){case _0xc12c('0x3'):_0x42de41[_0xc12c('0x17')][_0xc12c('0x4')]=_0xc12c('0x6');break;case _0xc12c('0x18'):_0x42de41['where'][_0xc12c('0x7')]=_0xc12c('0x8');break;}return db[_0x39ae0a][_0xc12c('0x10')](_0x42de41);}else{return[];}});}}else{return[];}})['then'](function(_0x4b7d50){return _0x4b7d50;});}function joinOrLeaveQueues(_0x369100,_0x101d6f,_0x498afb,_0x2fd461){_0x369100[_0x101d6f](util[_0xc12c('0x19')](_0xc12c('0x1a'),_0x498afb,_0x2fd461[_0xc12c('0x1')]));if(_0x2fd461['Agents']){for(var _0x3ee649=0x0;_0x3ee649<_0x2fd461['Agents'][_0xc12c('0x1b')];_0x3ee649+=0x1){_0x369100[_0x101d6f](util[_0xc12c('0x19')](_0xc12c('0x1c'),_0x2fd461[_0xc12c('0x2')][_0x3ee649]['name']));}}}function joinOrLeave(_0x48a8c0,_0x1e6edf,_0x38734d){var _0x4d0551;if(_0x48a8c0[_0xc12c('0x1d')][_0xc12c('0x1e')]['id']){db[_0xc12c('0x3')][_0xc12c('0x1f')]({'attributes':['id',_0xc12c('0x1'),'role',_0xc12c('0x20')],'where':{'id':_0x48a8c0[_0xc12c('0x1d')][_0xc12c('0x1e')]['id']},'include':[{'model':db[_0xc12c('0x21')],'as':_0xc12c('0x22'),'attributes':['id'],'raw':!![]},{'model':db['MailInteraction'],'as':_0xc12c('0x23'),'attributes':['id'],'raw':!![]},{'model':db['FaxInteraction'],'as':_0xc12c('0x24'),'attributes':['id'],'raw':!![]},{'model':db[_0xc12c('0x25')],'as':'SmsInteractions','attributes':['id'],'raw':!![]},{'model':db[_0xc12c('0x26')],'as':_0xc12c('0x27'),'attributes':['id'],'raw':!![]}]})[_0xc12c('0x15')](function(_0x437338){if(_0x437338){_0x4d0551=_0x437338;_0x48a8c0[_0x1e6edf](util[_0xc12c('0x19')](_0xc12c('0x1c'),_0x437338[_0xc12c('0x1')]));var _0x191b50=[];switch(_0x437338[_0xc12c('0x4')]){case _0xc12c('0x28'):_0x48a8c0[_0x1e6edf](_0xc12c('0x29'));_0x48a8c0[_0x1e6edf](_0xc12c('0x2a'));if(queryQueues[_0xc12c('0x2b')](_0xc12c('0x2c'))){delete queryQueues[_0xc12c('0x2c')];}_0x191b50[_0xc12c('0x2d')](db['VoiceQueue'][_0xc12c('0x10')](queryQueues));_0x191b50[_0xc12c('0x2d')](db[_0xc12c('0x2e')]['findAll'](queryQueues));_0x191b50[_0xc12c('0x2d')](db[_0xc12c('0x2f')]['findAll'](queryQueues));_0x191b50[_0xc12c('0x2d')](db[_0xc12c('0x30')][_0xc12c('0x10')](queryQueues));_0x191b50[_0xc12c('0x2d')](db['MailQueue'][_0xc12c('0x10')](queryQueues));_0x191b50[_0xc12c('0x2d')](db[_0xc12c('0x31')]['findAll'](queryQueues));_0x191b50[_0xc12c('0x2d')](db[_0xc12c('0x3')][_0xc12c('0x10')](queryTelephones));_0x191b50[_0xc12c('0x2d')](db[_0xc12c('0x32')][_0xc12c('0x10')](queryTrunks));_0x191b50['push'](db['Campaign']['findAll'](queryCampaigns));_0x191b50[_0xc12c('0x2d')](db[_0xc12c('0x3')][_0xc12c('0x10')](queryAgents));break;case _0xc12c('0x33'):_0x48a8c0[_0x1e6edf](_0xc12c('0x29'));_0x48a8c0[_0x1e6edf](_0xc12c('0x2a'));_0x191b50[_0xc12c('0x2d')](getAssociatedResources('VoiceQueues',_0x437338[_0xc12c('0x20')],_0xc12c('0x34')));_0x191b50['push'](getAssociatedResources(_0xc12c('0xd'),_0x437338[_0xc12c('0x20')],'ChatQueue'));_0x191b50[_0xc12c('0x2d')](getAssociatedResources('FaxQueues',_0x437338['userProfileId'],'FaxQueue'));_0x191b50[_0xc12c('0x2d')](getAssociatedResources(_0xc12c('0xe'),_0x437338['userProfileId'],'SmsQueue'));_0x191b50[_0xc12c('0x2d')](getAssociatedResources(_0xc12c('0xf'),_0x437338[_0xc12c('0x20')],_0xc12c('0x35')));_0x191b50[_0xc12c('0x2d')](getAssociatedResources(_0xc12c('0x36'),_0x437338[_0xc12c('0x20')],_0xc12c('0x31')));_0x191b50[_0xc12c('0x2d')](getAssociatedResources('Telephones',_0x437338[_0xc12c('0x20')],_0xc12c('0x3')));_0x191b50[_0xc12c('0x2d')](getAssociatedResources('Trunks',_0x437338[_0xc12c('0x20')],_0xc12c('0x32')));_0x191b50[_0xc12c('0x2d')](getAssociatedResources(_0xc12c('0x12'),_0x437338[_0xc12c('0x20')],_0xc12c('0x18')));_0x191b50[_0xc12c('0x2d')](db[_0xc12c('0x3')][_0xc12c('0x10')](queryAgents));break;case'agent':_0x48a8c0[_0x1e6edf](_0xc12c('0x29'));_0x48a8c0[_0x1e6edf]('voice:outbound');_0x191b50['push'](_0x437338['getVoiceQueues']({'attributes':['id','name']}));_0x191b50[_0xc12c('0x2d')](_0x437338[_0xc12c('0x37')]({'attributes':['id','name']}));_0x191b50[_0xc12c('0x2d')](_0x437338[_0xc12c('0x38')]({'attributes':['id',_0xc12c('0x1')]}));_0x191b50[_0xc12c('0x2d')](_0x437338[_0xc12c('0x39')]({'attributes':['id',_0xc12c('0x1')]}));_0x191b50['push'](_0x437338['getMailQueues']({'attributes':['id','name']}));_0x191b50[_0xc12c('0x2d')](_0x437338[_0xc12c('0x3a')]({'attributes':['id',_0xc12c('0x1')]}));break;}return BPromise['all'](_0x191b50);}})['then'](function(_0x35e246){if(_0x35e246&&_0x35e246['length']){for(var _0x1bdfe6=0x0;_0x1bdfe6<_0x35e246['length'];_0x1bdfe6+=0x1){for(var _0x3ab544=0x0;_0x3ab544<_0x35e246[_0x1bdfe6][_0xc12c('0x1b')];_0x3ab544+=0x1){switch(_0x1bdfe6){case 0x0:joinOrLeaveQueues(_0x48a8c0,_0x1e6edf,_0xc12c('0x3b'),_0x35e246[_0x1bdfe6][_0x3ab544]);break;case 0x1:joinOrLeaveQueues(_0x48a8c0,_0x1e6edf,'chat',_0x35e246[_0x1bdfe6][_0x3ab544]);break;case 0x2:joinOrLeaveQueues(_0x48a8c0,_0x1e6edf,_0xc12c('0x3c'),_0x35e246[_0x1bdfe6][_0x3ab544]);break;case 0x3:joinOrLeaveQueues(_0x48a8c0,_0x1e6edf,'sms',_0x35e246[_0x1bdfe6][_0x3ab544]);break;case 0x4:joinOrLeaveQueues(_0x48a8c0,_0x1e6edf,_0xc12c('0x3d'),_0x35e246[_0x1bdfe6][_0x3ab544]);break;case 0x5:joinOrLeaveQueues(_0x48a8c0,_0x1e6edf,_0xc12c('0x3e'),_0x35e246[_0x1bdfe6][_0x3ab544]);break;case 0x6:_0x48a8c0[_0x1e6edf](util[_0xc12c('0x19')](_0xc12c('0x3f'),_0x35e246[_0x1bdfe6][_0x3ab544][_0xc12c('0x1')]));break;case 0x7:_0x48a8c0[_0x1e6edf](util[_0xc12c('0x19')](_0xc12c('0x40'),_0x35e246[_0x1bdfe6][_0x3ab544][_0xc12c('0x1')]));break;case 0x8:_0x48a8c0[_0x1e6edf](util[_0xc12c('0x19')](_0xc12c('0x41'),_0x35e246[_0x1bdfe6][_0x3ab544][_0xc12c('0x7')],_0x35e246[_0x1bdfe6][_0x3ab544]['name']));break;case 0x9:_0x48a8c0[_0x1e6edf](util[_0xc12c('0x19')](_0xc12c('0x1c'),_0x35e246[_0x1bdfe6][_0x3ab544][_0xc12c('0x1')]));break;}}}}})['then'](function(){if(_0x1e6edf==='leave'){var _0x3805d0=_[_0xc12c('0x16')](_0x4d0551['ChatInteractions'],'id');return _0x4d0551[_0xc12c('0x42')](_0x3805d0)['then'](function(){for(var _0x260757=0x0;_0x260757<_0x3805d0[_0xc12c('0x1b')];_0x260757+=0x1){_0x38734d['emit'](_0xc12c('0x43'),{'ChatInteractionId':Number(_0x3805d0[_0x260757]),'UserId':Number(_0x4d0551['id'])});}});}})['then'](function(){if(_0x1e6edf===_0xc12c('0x44')){var _0x3f1618=_[_0xc12c('0x16')](_0x4d0551['MailInteractions'],'id');return _0x4d0551[_0xc12c('0x45')](_0x3f1618)[_0xc12c('0x15')](function(){for(var _0x1dae7b=0x0;_0x1dae7b<_0x3f1618['length'];_0x1dae7b+=0x1){_0x38734d['emit']('user_has_mail_interactions:remove',{'MailInteractionId':Number(_0x3f1618[_0x1dae7b]),'UserId':Number(_0x4d0551['id'])});}});}})[_0xc12c('0x15')](function(){if(_0x1e6edf===_0xc12c('0x44')){var _0x32b31e=_['map'](_0x4d0551[_0xc12c('0x24')],'id');return _0x4d0551['removeFaxInteractions'](_0x32b31e)['then'](function(){for(var _0x23c9b2=0x0;_0x23c9b2<_0x32b31e[_0xc12c('0x1b')];_0x23c9b2+=0x1){_0x38734d['emit'](_0xc12c('0x46'),{'FaxInteractionId':Number(_0x32b31e[_0x23c9b2]),'UserId':Number(_0x4d0551['id'])});}});}})['then'](function(){if(_0x1e6edf===_0xc12c('0x44')){var _0x4ea846=_['map'](_0x4d0551['SmsInteractions'],'id');return _0x4d0551['removeSmsInteractions'](_0x4ea846)[_0xc12c('0x15')](function(){for(var _0xa2d512=0x0;_0xa2d512<_0x4ea846['length'];_0xa2d512+=0x1){_0x38734d[_0xc12c('0x47')](_0xc12c('0x48'),{'SmsInteractionId':Number(_0x4ea846[_0xa2d512]),'UserId':Number(_0x4d0551['id'])});}});}})[_0xc12c('0x15')](function(){if(_0x1e6edf===_0xc12c('0x44')){var _0x37fa2e=_[_0xc12c('0x16')](_0x4d0551['OpenchannelInteractions'],'id');return _0x4d0551[_0xc12c('0x49')](_0x37fa2e)[_0xc12c('0x15')](function(){for(var _0xfd87a5=0x0;_0xfd87a5<_0x37fa2e[_0xc12c('0x1b')];_0xfd87a5+=0x1){_0x38734d['emit'](_0xc12c('0x4a'),{'OpenchannelInteractionId':Number(_0x37fa2e[_0xfd87a5]),'UserId':Number(_0x4d0551['id'])});}});}})[_0xc12c('0x4b')](function(_0x151d33){_0x48a8c0[_0xc12c('0x4c')](_0x151d33);});}}function onDisconnect(_0x424266,_0x3e2b50){joinOrLeave(_0x424266,'leave',_0x3e2b50);}function onConnect(_0x4048b4){joinOrLeave(_0x4048b4,_0xc12c('0x4d'));}exports[_0xc12c('0x4e')]=function(_0x5829e7){_0x5829e7['on'](_0xc12c('0x4f'),function(_0x3ea634){_0x3ea634[_0xc12c('0x50')](0x0);_0x3ea634[_0xc12c('0x51')]=_0x3ea634['request']['connection']['remoteAddress']+':'+_0x3ea634[_0xc12c('0x52')][_0xc12c('0x4f')]['remotePort'];_0x3ea634[_0xc12c('0x53')]=new Date();_0x3ea634[_0xc12c('0x4c')]=function(_0x244d51){console[_0xc12c('0x4c')](_0xc12c('0x54')+_0x3ea634[_0xc12c('0x55')][_0xc12c('0x1')]+'['+_0x3ea634[_0xc12c('0x51')]+']',_0x244d51);};_0x3ea634['on'](_0xc12c('0x56'),function(){onDisconnect(_0x3ea634,_0x5829e7);_0x3ea634[_0xc12c('0x4c')]('DISCONNECTED');});onConnect(_0x3ea634);_0x3ea634['log'](_0xc12c('0x57'));});};