Built motion from commit (unavailable).|2.5.13
[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 _0x7deb=['type','format','%s:queue:%s','Agents','length','handshake','query','find','userProfileId','ChatInteractions','MailInteraction','MailInteractions','FaxInteraction','FaxInteractions','SmsInteraction','OpenchannelInteraction','OpenchannelInteractions','WhatsappInteractions','admin','voice:inbound','voice:outbound','hasOwnProperty','include','push','ChatQueue','FaxQueue','SmsQueue','WhatsappQueue','Campaign','VoiceQueue','MailQueue','OpenchannelQueue','WhatsappQueues','Trunk','getVoiceQueues','getFaxQueues','getSmsQueues','getMailQueues','getWhatsappQueues','all','voice','fax','sms','mail','openchannel','whatsapp','telephone:%s','trunk:%s','campaign:%s:%s','user:%s','leave','map','user_has_chat_interactions:remove','removeMailInteractions','emit','user_has_mail_interactions:remove','removeFaxInteractions','SmsInteractions','removeSmsInteractions','user_has_sms_interactions:remove','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','catch','log','join','default','connection','setMaxListeners','address','request','remoteAddress','remotePort','connectedAt','SocketIO\x20','nsp','disconnect','CONNECTED','lodash','util','bluebird','User','name','role','agent','telephone','ivr','findOne','then','autoAssociation','VoiceQueues','ChatQueues','FaxQueues','SmsQueues','MailQueues','OpenchannelQueues','Telephones','findAll','Trunks','IvrCampaigns','UserProfileResource','resourceId','where'];(function(_0x50f595,_0x480381){var _0x39fb8f=function(_0xeed1e2){while(--_0xeed1e2){_0x50f595['push'](_0x50f595['shift']());}};_0x39fb8f(++_0x480381);}(_0x7deb,0x11f));var _0xb7de=function(_0x764874,_0x3ed544){_0x764874=_0x764874-0x0;var _0x29f9d5=_0x7deb[_0x764874];return _0x29f9d5;};'use strict';var _=require(_0xb7de('0x0'));var util=require(_0xb7de('0x1'));var BPromise=require(_0xb7de('0x2'));var db=require('../mysqldb')['db'];var config=require('./environment');var queryQueues={'attributes':['id','name'],'include':[{'as':'Agents','model':db[_0xb7de('0x3')],'attributes':['id',_0xb7de('0x4'),_0xb7de('0x5')],'raw':!![],'where':{'role':_0xb7de('0x6')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0xb7de('0x4')],'where':{'role':_0xb7de('0x7')}};var queryTrunks={'raw':!![],'attributes':['id',_0xb7de('0x4')]};var queryAgents={'raw':!![],'attributes':['id',_0xb7de('0x4')],'where':{'role':_0xb7de('0x6')}};var queryCampaigns={'raw':!![],'attributes':['id',_0xb7de('0x4'),'type'],'where':{'type':_0xb7de('0x8')}};function getAssociatedResources(_0x9c0885,_0x45e9b2,_0x1b12a3){return db['UserProfileSection'][_0xb7de('0x9')]({'where':{'name':_0x9c0885,'userProfileId':_0x45e9b2},'raw':!![]})[_0xb7de('0xa')](function(_0x14a610){if(_0x14a610){if(_0x14a610[_0xb7de('0xb')]){switch(_0x9c0885){case _0xb7de('0xc'):case _0xb7de('0xd'):case _0xb7de('0xe'):case _0xb7de('0xf'):case _0xb7de('0x10'):case _0xb7de('0x11'):case'WhatsappQueues':return db[_0x1b12a3]['findAll'](queryQueues);case _0xb7de('0x12'):return db[_0x1b12a3][_0xb7de('0x13')](queryTelephones);case _0xb7de('0x14'):return db[_0x1b12a3]['findAll'](queryTrunks);case _0xb7de('0x15'):return db[_0x1b12a3][_0xb7de('0x13')](queryCampaigns);}}else{return db[_0xb7de('0x16')]['findAll']({'attributes':['resourceId'],'where':{'sectionId':_0x14a610['id']},'raw':!![]})['then'](function(_0x52c34e){if(_0x52c34e){var _0x1f94d1={'where':{'id':_['map'](_0x52c34e,_0xb7de('0x17'))},'raw':!![]};switch(_0x1b12a3){case _0xb7de('0x3'):_0x1f94d1[_0xb7de('0x18')][_0xb7de('0x5')]=_0xb7de('0x7');break;case'Campaign':_0x1f94d1[_0xb7de('0x18')][_0xb7de('0x19')]=_0xb7de('0x8');break;}return db[_0x1b12a3][_0xb7de('0x13')](_0x1f94d1);}else{return[];}});}}else{return[];}})[_0xb7de('0xa')](function(_0x22028b){return _0x22028b;});}function joinOrLeaveQueues(_0x525f5f,_0xd893f7,_0x2f87d6,_0x17e967){_0x525f5f[_0xd893f7](util[_0xb7de('0x1a')](_0xb7de('0x1b'),_0x2f87d6,_0x17e967[_0xb7de('0x4')]));if(_0x17e967[_0xb7de('0x1c')]){for(var _0x449015=0x0;_0x449015<_0x17e967[_0xb7de('0x1c')][_0xb7de('0x1d')];_0x449015+=0x1){_0x525f5f[_0xd893f7](util[_0xb7de('0x1a')]('user:%s',_0x17e967[_0xb7de('0x1c')][_0x449015][_0xb7de('0x4')]));}}}function joinOrLeave(_0x2bd256,_0x41e212,_0x39ddd6){var _0x15049f;if(_0x2bd256[_0xb7de('0x1e')][_0xb7de('0x1f')]['id']){db[_0xb7de('0x3')][_0xb7de('0x20')]({'attributes':['id',_0xb7de('0x4'),_0xb7de('0x5'),_0xb7de('0x21')],'where':{'id':_0x2bd256['handshake'][_0xb7de('0x1f')]['id']},'include':[{'model':db['ChatInteraction'],'as':_0xb7de('0x22'),'attributes':['id'],'raw':!![]},{'model':db[_0xb7de('0x23')],'as':_0xb7de('0x24'),'attributes':['id'],'raw':!![]},{'model':db[_0xb7de('0x25')],'as':_0xb7de('0x26'),'attributes':['id'],'raw':!![]},{'model':db[_0xb7de('0x27')],'as':'SmsInteractions','attributes':['id'],'raw':!![]},{'model':db[_0xb7de('0x28')],'as':_0xb7de('0x29'),'attributes':['id'],'raw':!![]},{'model':db['WhatsappInteraction'],'as':_0xb7de('0x2a'),'attributes':['id'],'raw':!![]}]})[_0xb7de('0xa')](function(_0x2c02d8){if(_0x2c02d8){_0x15049f=_0x2c02d8;_0x2bd256[_0x41e212](util[_0xb7de('0x1a')]('user:%s',_0x2c02d8['name']));var _0x958bcd=[];switch(_0x2c02d8[_0xb7de('0x5')]){case _0xb7de('0x2b'):_0x2bd256[_0x41e212](_0xb7de('0x2c'));_0x2bd256[_0x41e212](_0xb7de('0x2d'));if(queryQueues[_0xb7de('0x2e')](_0xb7de('0x2f'))){delete queryQueues[_0xb7de('0x2f')];}_0x958bcd[_0xb7de('0x30')](db['VoiceQueue'][_0xb7de('0x13')](queryQueues));_0x958bcd[_0xb7de('0x30')](db[_0xb7de('0x31')][_0xb7de('0x13')](queryQueues));_0x958bcd[_0xb7de('0x30')](db[_0xb7de('0x32')][_0xb7de('0x13')](queryQueues));_0x958bcd[_0xb7de('0x30')](db[_0xb7de('0x33')]['findAll'](queryQueues));_0x958bcd['push'](db['MailQueue'][_0xb7de('0x13')](queryQueues));_0x958bcd['push'](db['OpenchannelQueue'][_0xb7de('0x13')](queryQueues));_0x958bcd[_0xb7de('0x30')](db[_0xb7de('0x34')][_0xb7de('0x13')](queryQueues));_0x958bcd[_0xb7de('0x30')](db['User']['findAll'](queryTelephones));_0x958bcd[_0xb7de('0x30')](db['Trunk'][_0xb7de('0x13')](queryTrunks));_0x958bcd[_0xb7de('0x30')](db[_0xb7de('0x35')][_0xb7de('0x13')](queryCampaigns));_0x958bcd[_0xb7de('0x30')](db[_0xb7de('0x3')][_0xb7de('0x13')](queryAgents));break;case'user':_0x2bd256[_0x41e212](_0xb7de('0x2c'));_0x2bd256[_0x41e212]('voice:outbound');_0x958bcd[_0xb7de('0x30')](getAssociatedResources(_0xb7de('0xc'),_0x2c02d8[_0xb7de('0x21')],_0xb7de('0x36')));_0x958bcd[_0xb7de('0x30')](getAssociatedResources(_0xb7de('0xd'),_0x2c02d8[_0xb7de('0x21')],_0xb7de('0x31')));_0x958bcd[_0xb7de('0x30')](getAssociatedResources(_0xb7de('0xe'),_0x2c02d8['userProfileId'],_0xb7de('0x32')));_0x958bcd[_0xb7de('0x30')](getAssociatedResources('SmsQueues',_0x2c02d8[_0xb7de('0x21')],_0xb7de('0x33')));_0x958bcd[_0xb7de('0x30')](getAssociatedResources(_0xb7de('0x10'),_0x2c02d8['userProfileId'],_0xb7de('0x37')));_0x958bcd[_0xb7de('0x30')](getAssociatedResources(_0xb7de('0x11'),_0x2c02d8[_0xb7de('0x21')],_0xb7de('0x38')));_0x958bcd[_0xb7de('0x30')](getAssociatedResources(_0xb7de('0x39'),_0x2c02d8[_0xb7de('0x21')],'WhatsappQueue'));_0x958bcd[_0xb7de('0x30')](getAssociatedResources('Telephones',_0x2c02d8[_0xb7de('0x21')],_0xb7de('0x3')));_0x958bcd[_0xb7de('0x30')](getAssociatedResources(_0xb7de('0x14'),_0x2c02d8[_0xb7de('0x21')],_0xb7de('0x3a')));_0x958bcd['push'](getAssociatedResources(_0xb7de('0x15'),_0x2c02d8['userProfileId'],_0xb7de('0x35')));_0x958bcd[_0xb7de('0x30')](db[_0xb7de('0x3')]['findAll'](queryAgents));break;case _0xb7de('0x6'):_0x2bd256[_0x41e212](_0xb7de('0x2c'));_0x2bd256[_0x41e212](_0xb7de('0x2d'));_0x958bcd['push'](_0x2c02d8[_0xb7de('0x3b')]({'attributes':['id',_0xb7de('0x4')]}));_0x958bcd[_0xb7de('0x30')](_0x2c02d8['getChatQueues']({'attributes':['id',_0xb7de('0x4')]}));_0x958bcd[_0xb7de('0x30')](_0x2c02d8[_0xb7de('0x3c')]({'attributes':['id',_0xb7de('0x4')]}));_0x958bcd['push'](_0x2c02d8[_0xb7de('0x3d')]({'attributes':['id',_0xb7de('0x4')]}));_0x958bcd[_0xb7de('0x30')](_0x2c02d8[_0xb7de('0x3e')]({'attributes':['id',_0xb7de('0x4')]}));_0x958bcd[_0xb7de('0x30')](_0x2c02d8['getOpenchannelQueues']({'attributes':['id','name']}));_0x958bcd[_0xb7de('0x30')](_0x2c02d8[_0xb7de('0x3f')]({'attributes':['id',_0xb7de('0x4')]}));break;}return BPromise[_0xb7de('0x40')](_0x958bcd);}})[_0xb7de('0xa')](function(_0x5882ef){if(_0x5882ef&&_0x5882ef[_0xb7de('0x1d')]){for(var _0x229c91=0x0;_0x229c91<_0x5882ef[_0xb7de('0x1d')];_0x229c91+=0x1){for(var _0x43261e=0x0;_0x43261e<_0x5882ef[_0x229c91][_0xb7de('0x1d')];_0x43261e+=0x1){switch(_0x229c91){case 0x0:joinOrLeaveQueues(_0x2bd256,_0x41e212,_0xb7de('0x41'),_0x5882ef[_0x229c91][_0x43261e]);break;case 0x1:joinOrLeaveQueues(_0x2bd256,_0x41e212,'chat',_0x5882ef[_0x229c91][_0x43261e]);break;case 0x2:joinOrLeaveQueues(_0x2bd256,_0x41e212,_0xb7de('0x42'),_0x5882ef[_0x229c91][_0x43261e]);break;case 0x3:joinOrLeaveQueues(_0x2bd256,_0x41e212,_0xb7de('0x43'),_0x5882ef[_0x229c91][_0x43261e]);break;case 0x4:joinOrLeaveQueues(_0x2bd256,_0x41e212,_0xb7de('0x44'),_0x5882ef[_0x229c91][_0x43261e]);break;case 0x5:joinOrLeaveQueues(_0x2bd256,_0x41e212,_0xb7de('0x45'),_0x5882ef[_0x229c91][_0x43261e]);break;case 0x6:joinOrLeaveQueues(_0x2bd256,_0x41e212,_0xb7de('0x46'),_0x5882ef[_0x229c91][_0x43261e]);break;case 0x7:_0x2bd256[_0x41e212](util[_0xb7de('0x1a')](_0xb7de('0x47'),_0x5882ef[_0x229c91][_0x43261e][_0xb7de('0x4')]));break;case 0x8:_0x2bd256[_0x41e212](util['format'](_0xb7de('0x48'),_0x5882ef[_0x229c91][_0x43261e][_0xb7de('0x4')]));break;case 0x9:_0x2bd256[_0x41e212](util[_0xb7de('0x1a')](_0xb7de('0x49'),_0x5882ef[_0x229c91][_0x43261e][_0xb7de('0x19')],_0x5882ef[_0x229c91][_0x43261e]['name']));break;case 0xa:_0x2bd256[_0x41e212](util['format'](_0xb7de('0x4a'),_0x5882ef[_0x229c91][_0x43261e]['name']));break;}}}}})['then'](function(){if(_0x41e212===_0xb7de('0x4b')){var _0x2def2d=_[_0xb7de('0x4c')](_0x15049f['ChatInteractions'],'id');return _0x15049f['removeChatInteractions'](_0x2def2d)[_0xb7de('0xa')](function(){for(var _0x43da11=0x0;_0x43da11<_0x2def2d[_0xb7de('0x1d')];_0x43da11+=0x1){_0x39ddd6['emit'](_0xb7de('0x4d'),{'ChatInteractionId':Number(_0x2def2d[_0x43da11]),'UserId':Number(_0x15049f['id'])});}});}})[_0xb7de('0xa')](function(){if(_0x41e212===_0xb7de('0x4b')){var _0x29be53=_['map'](_0x15049f['MailInteractions'],'id');return _0x15049f[_0xb7de('0x4e')](_0x29be53)['then'](function(){for(var _0x4d5477=0x0;_0x4d5477<_0x29be53[_0xb7de('0x1d')];_0x4d5477+=0x1){_0x39ddd6[_0xb7de('0x4f')](_0xb7de('0x50'),{'MailInteractionId':Number(_0x29be53[_0x4d5477]),'UserId':Number(_0x15049f['id'])});}});}})[_0xb7de('0xa')](function(){if(_0x41e212===_0xb7de('0x4b')){var _0x26a641=_['map'](_0x15049f[_0xb7de('0x26')],'id');return _0x15049f[_0xb7de('0x51')](_0x26a641)[_0xb7de('0xa')](function(){for(var _0x59996b=0x0;_0x59996b<_0x26a641[_0xb7de('0x1d')];_0x59996b+=0x1){_0x39ddd6['emit']('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x26a641[_0x59996b]),'UserId':Number(_0x15049f['id'])});}});}})[_0xb7de('0xa')](function(){if(_0x41e212===_0xb7de('0x4b')){var _0x3db2a6=_['map'](_0x15049f[_0xb7de('0x52')],'id');return _0x15049f[_0xb7de('0x53')](_0x3db2a6)[_0xb7de('0xa')](function(){for(var _0x9b97fd=0x0;_0x9b97fd<_0x3db2a6[_0xb7de('0x1d')];_0x9b97fd+=0x1){_0x39ddd6[_0xb7de('0x4f')](_0xb7de('0x54'),{'SmsInteractionId':Number(_0x3db2a6[_0x9b97fd]),'UserId':Number(_0x15049f['id'])});}});}})[_0xb7de('0xa')](function(){if(_0x41e212===_0xb7de('0x4b')){var _0x295e71=_[_0xb7de('0x4c')](_0x15049f[_0xb7de('0x29')],'id');return _0x15049f[_0xb7de('0x55')](_0x295e71)['then'](function(){for(var _0x25ef9f=0x0;_0x25ef9f<_0x295e71[_0xb7de('0x1d')];_0x25ef9f+=0x1){_0x39ddd6[_0xb7de('0x4f')](_0xb7de('0x56'),{'OpenchannelInteractionId':Number(_0x295e71[_0x25ef9f]),'UserId':Number(_0x15049f['id'])});}});}})['then'](function(){if(_0x41e212===_0xb7de('0x4b')){var _0xbf281=_[_0xb7de('0x4c')](_0x15049f[_0xb7de('0x2a')],'id');return _0x15049f[_0xb7de('0x57')](_0xbf281)[_0xb7de('0xa')](function(){for(var _0x168666=0x0;_0x168666<_0xbf281[_0xb7de('0x1d')];_0x168666+=0x1){_0x39ddd6[_0xb7de('0x4f')](_0xb7de('0x58'),{'WhatsappInteractionId':Number(_0xbf281[_0x168666]),'UserId':Number(_0x15049f['id'])});}});}})[_0xb7de('0x59')](function(_0x1aba7d){_0x2bd256[_0xb7de('0x5a')](_0x1aba7d);});}}function onDisconnect(_0x3dbca9,_0x3fe771){joinOrLeave(_0x3dbca9,_0xb7de('0x4b'),_0x3fe771);}function onConnect(_0x448e49){joinOrLeave(_0x448e49,_0xb7de('0x5b'));}exports[_0xb7de('0x5c')]=function(_0x5a0859){_0x5a0859['on'](_0xb7de('0x5d'),function(_0x46b92d){_0x46b92d[_0xb7de('0x5e')](0x0);_0x46b92d[_0xb7de('0x5f')]=_0x46b92d[_0xb7de('0x60')]['connection'][_0xb7de('0x61')]+':'+_0x46b92d['request'][_0xb7de('0x5d')][_0xb7de('0x62')];_0x46b92d[_0xb7de('0x63')]=new Date();_0x46b92d[_0xb7de('0x5a')]=function(_0x7039d6){console[_0xb7de('0x5a')](_0xb7de('0x64')+_0x46b92d[_0xb7de('0x65')][_0xb7de('0x4')]+'['+_0x46b92d[_0xb7de('0x5f')]+']',_0x7039d6);};_0x46b92d['on'](_0xb7de('0x66'),function(){onDisconnect(_0x46b92d,_0x5a0859);_0x46b92d['log']('DISCONNECTED');});onConnect(_0x46b92d);_0x46b92d[_0xb7de('0x5a')](_0xb7de('0x67'));});};