Built motion from commit 936e8062.|2.5.33
[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 _0x8ac9=['CONNECTED','lodash','util','bluebird','name','Agents','User','agent','telephone','type','ivr','UserProfileSection','then','autoAssociation','VoiceQueues','ChatQueues','FaxQueues','SmsQueues','WhatsappQueues','findAll','Telephones','IvrCampaigns','resourceId','role','Campaign','%s:queue:%s','length','format','user:%s','handshake','find','userProfileId','query','ChatInteraction','ChatInteractions','MailInteraction','MailInteractions','FaxInteraction','FaxInteractions','SmsInteraction','OpenchannelInteraction','OpenchannelInteractions','WhatsappInteraction','WhatsappInteractions','admin','voice:inbound','voice:outbound','hasOwnProperty','include','push','VoiceQueue','ChatQueue','MailQueue','OpenchannelQueue','WhatsappQueue','Trunk','user','FaxQueue','SmsQueue','MailQueues','OpenchannelQueues','Trunks','getVoiceQueues','getChatQueues','getSmsQueues','getMailQueues','getOpenchannelQueues','getWhatsappQueues','all','voice','chat','fax','sms','whatsapp','telephone:%s','campaign:%s:%s','emit','leave','map','removeMailInteractions','user_has_mail_interactions:remove','removeFaxInteractions','user_has_fax_interactions:remove','removeSmsInteractions','user_has_sms_interactions:remove','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','user_has_whatsapp_interactions:remove','catch','join','default','connection','setMaxListeners','address','request','remoteAddress','remotePort','connectedAt','log','nsp','disconnect','DISCONNECTED'];(function(_0x1ada8d,_0x2ec7d5){var _0x3357b0=function(_0x3aa56f){while(--_0x3aa56f){_0x1ada8d['push'](_0x1ada8d['shift']());}};_0x3357b0(++_0x2ec7d5);}(_0x8ac9,0x199));var _0x98ac=function(_0x2f1985,_0x31cfa2){_0x2f1985=_0x2f1985-0x0;var _0x48bf2a=_0x8ac9[_0x2f1985];return _0x48bf2a;};'use strict';var _=require(_0x98ac('0x0'));var util=require(_0x98ac('0x1'));var BPromise=require(_0x98ac('0x2'));var db=require('../mysqldb')['db'];var config=require('./environment');var queryQueues={'attributes':['id',_0x98ac('0x3')],'include':[{'as':_0x98ac('0x4'),'model':db[_0x98ac('0x5')],'attributes':['id','name','role'],'raw':!![],'where':{'role':_0x98ac('0x6')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0x98ac('0x3')],'where':{'role':_0x98ac('0x7')}};var queryTrunks={'raw':!![],'attributes':['id','name']};var queryAgents={'raw':!![],'attributes':['id','name'],'where':{'role':_0x98ac('0x6')}};var queryCampaigns={'raw':!![],'attributes':['id',_0x98ac('0x3'),_0x98ac('0x8')],'where':{'type':_0x98ac('0x9')}};function getAssociatedResources(_0x355f0f,_0x33d54a,_0x5bb362){return db[_0x98ac('0xa')]['findOne']({'where':{'name':_0x355f0f,'userProfileId':_0x33d54a},'raw':!![]})[_0x98ac('0xb')](function(_0x432461){if(_0x432461){if(_0x432461[_0x98ac('0xc')]){switch(_0x355f0f){case _0x98ac('0xd'):case _0x98ac('0xe'):case _0x98ac('0xf'):case _0x98ac('0x10'):case'MailQueues':case'OpenchannelQueues':case _0x98ac('0x11'):return db[_0x5bb362][_0x98ac('0x12')](queryQueues);case _0x98ac('0x13'):return db[_0x5bb362][_0x98ac('0x12')](queryTelephones);case'Trunks':return db[_0x5bb362][_0x98ac('0x12')](queryTrunks);case _0x98ac('0x14'):return db[_0x5bb362][_0x98ac('0x12')](queryCampaigns);}}else{return db['UserProfileResource']['findAll']({'attributes':[_0x98ac('0x15')],'where':{'sectionId':_0x432461['id']},'raw':!![]})[_0x98ac('0xb')](function(_0x4a918d){if(_0x4a918d){var _0x4cdbd7={'where':{'id':_['map'](_0x4a918d,_0x98ac('0x15'))},'raw':!![]};switch(_0x5bb362){case _0x98ac('0x5'):_0x4cdbd7['where'][_0x98ac('0x16')]=_0x98ac('0x7');break;case _0x98ac('0x17'):_0x4cdbd7['where'][_0x98ac('0x8')]=_0x98ac('0x9');break;}return db[_0x5bb362][_0x98ac('0x12')](_0x4cdbd7);}else{return[];}});}}else{return[];}})['then'](function(_0x3dbbcd){return _0x3dbbcd;});}function joinOrLeaveQueues(_0x1be231,_0x300758,_0x2d368b,_0x5820ee){_0x1be231[_0x300758](util['format'](_0x98ac('0x18'),_0x2d368b,_0x5820ee[_0x98ac('0x3')]));if(_0x5820ee[_0x98ac('0x4')]){for(var _0x12d7b=0x0;_0x12d7b<_0x5820ee[_0x98ac('0x4')][_0x98ac('0x19')];_0x12d7b+=0x1){_0x1be231[_0x300758](util[_0x98ac('0x1a')](_0x98ac('0x1b'),_0x5820ee[_0x98ac('0x4')][_0x12d7b]['name']));}}}function joinOrLeave(_0xc0bd22,_0x11233e,_0x4a04d4){var _0x92f4bc;if(_0xc0bd22[_0x98ac('0x1c')]['query']['id']){db[_0x98ac('0x5')][_0x98ac('0x1d')]({'attributes':['id',_0x98ac('0x3'),'role',_0x98ac('0x1e')],'where':{'id':_0xc0bd22[_0x98ac('0x1c')][_0x98ac('0x1f')]['id']},'include':[{'model':db[_0x98ac('0x20')],'as':_0x98ac('0x21'),'attributes':['id'],'raw':!![]},{'model':db[_0x98ac('0x22')],'as':_0x98ac('0x23'),'attributes':['id'],'raw':!![]},{'model':db[_0x98ac('0x24')],'as':_0x98ac('0x25'),'attributes':['id'],'raw':!![]},{'model':db[_0x98ac('0x26')],'as':'SmsInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x98ac('0x27')],'as':_0x98ac('0x28'),'attributes':['id'],'raw':!![]},{'model':db[_0x98ac('0x29')],'as':_0x98ac('0x2a'),'attributes':['id'],'raw':!![]}]})[_0x98ac('0xb')](function(_0x4305f3){if(_0x4305f3){_0x92f4bc=_0x4305f3;_0xc0bd22[_0x11233e](util[_0x98ac('0x1a')]('user:%s',_0x4305f3['name']));var _0x29ba60=[];switch(_0x4305f3[_0x98ac('0x16')]){case _0x98ac('0x2b'):_0xc0bd22[_0x11233e](_0x98ac('0x2c'));_0xc0bd22[_0x11233e](_0x98ac('0x2d'));if(queryQueues[_0x98ac('0x2e')](_0x98ac('0x2f'))){delete queryQueues[_0x98ac('0x2f')];}_0x29ba60[_0x98ac('0x30')](db[_0x98ac('0x31')]['findAll'](queryQueues));_0x29ba60['push'](db[_0x98ac('0x32')]['findAll'](queryQueues));_0x29ba60[_0x98ac('0x30')](db['FaxQueue'][_0x98ac('0x12')](queryQueues));_0x29ba60[_0x98ac('0x30')](db['SmsQueue'][_0x98ac('0x12')](queryQueues));_0x29ba60['push'](db[_0x98ac('0x33')][_0x98ac('0x12')](queryQueues));_0x29ba60[_0x98ac('0x30')](db[_0x98ac('0x34')][_0x98ac('0x12')](queryQueues));_0x29ba60[_0x98ac('0x30')](db[_0x98ac('0x35')][_0x98ac('0x12')](queryQueues));_0x29ba60['push'](db[_0x98ac('0x5')][_0x98ac('0x12')](queryTelephones));_0x29ba60[_0x98ac('0x30')](db[_0x98ac('0x36')][_0x98ac('0x12')](queryTrunks));_0x29ba60[_0x98ac('0x30')](db[_0x98ac('0x17')][_0x98ac('0x12')](queryCampaigns));_0x29ba60[_0x98ac('0x30')](db[_0x98ac('0x5')][_0x98ac('0x12')](queryAgents));break;case _0x98ac('0x37'):_0xc0bd22[_0x11233e](_0x98ac('0x2c'));_0xc0bd22[_0x11233e](_0x98ac('0x2d'));_0x29ba60[_0x98ac('0x30')](getAssociatedResources('VoiceQueues',_0x4305f3[_0x98ac('0x1e')],_0x98ac('0x31')));_0x29ba60[_0x98ac('0x30')](getAssociatedResources(_0x98ac('0xe'),_0x4305f3[_0x98ac('0x1e')],_0x98ac('0x32')));_0x29ba60[_0x98ac('0x30')](getAssociatedResources(_0x98ac('0xf'),_0x4305f3['userProfileId'],_0x98ac('0x38')));_0x29ba60['push'](getAssociatedResources(_0x98ac('0x10'),_0x4305f3['userProfileId'],_0x98ac('0x39')));_0x29ba60[_0x98ac('0x30')](getAssociatedResources(_0x98ac('0x3a'),_0x4305f3['userProfileId'],'MailQueue'));_0x29ba60[_0x98ac('0x30')](getAssociatedResources(_0x98ac('0x3b'),_0x4305f3[_0x98ac('0x1e')],'OpenchannelQueue'));_0x29ba60[_0x98ac('0x30')](getAssociatedResources('WhatsappQueues',_0x4305f3[_0x98ac('0x1e')],_0x98ac('0x35')));_0x29ba60[_0x98ac('0x30')](getAssociatedResources(_0x98ac('0x13'),_0x4305f3[_0x98ac('0x1e')],'User'));_0x29ba60[_0x98ac('0x30')](getAssociatedResources(_0x98ac('0x3c'),_0x4305f3['userProfileId'],_0x98ac('0x36')));_0x29ba60[_0x98ac('0x30')](getAssociatedResources(_0x98ac('0x14'),_0x4305f3[_0x98ac('0x1e')],_0x98ac('0x17')));_0x29ba60[_0x98ac('0x30')](db[_0x98ac('0x5')][_0x98ac('0x12')](queryAgents));break;case'agent':_0xc0bd22[_0x11233e](_0x98ac('0x2c'));_0xc0bd22[_0x11233e](_0x98ac('0x2d'));_0x29ba60[_0x98ac('0x30')](_0x4305f3[_0x98ac('0x3d')]({'attributes':['id',_0x98ac('0x3')]}));_0x29ba60[_0x98ac('0x30')](_0x4305f3[_0x98ac('0x3e')]({'attributes':['id',_0x98ac('0x3')]}));_0x29ba60[_0x98ac('0x30')](_0x4305f3['getFaxQueues']({'attributes':['id',_0x98ac('0x3')]}));_0x29ba60[_0x98ac('0x30')](_0x4305f3[_0x98ac('0x3f')]({'attributes':['id',_0x98ac('0x3')]}));_0x29ba60[_0x98ac('0x30')](_0x4305f3[_0x98ac('0x40')]({'attributes':['id','name']}));_0x29ba60[_0x98ac('0x30')](_0x4305f3[_0x98ac('0x41')]({'attributes':['id',_0x98ac('0x3')]}));_0x29ba60[_0x98ac('0x30')](_0x4305f3[_0x98ac('0x42')]({'attributes':['id',_0x98ac('0x3')]}));break;}return BPromise[_0x98ac('0x43')](_0x29ba60);}})[_0x98ac('0xb')](function(_0x4a080c){if(_0x4a080c&&_0x4a080c[_0x98ac('0x19')]){for(var _0x532e14=0x0;_0x532e14<_0x4a080c['length'];_0x532e14+=0x1){for(var _0x23ae9e=0x0;_0x23ae9e<_0x4a080c[_0x532e14][_0x98ac('0x19')];_0x23ae9e+=0x1){switch(_0x532e14){case 0x0:joinOrLeaveQueues(_0xc0bd22,_0x11233e,_0x98ac('0x44'),_0x4a080c[_0x532e14][_0x23ae9e]);break;case 0x1:joinOrLeaveQueues(_0xc0bd22,_0x11233e,_0x98ac('0x45'),_0x4a080c[_0x532e14][_0x23ae9e]);break;case 0x2:joinOrLeaveQueues(_0xc0bd22,_0x11233e,_0x98ac('0x46'),_0x4a080c[_0x532e14][_0x23ae9e]);break;case 0x3:joinOrLeaveQueues(_0xc0bd22,_0x11233e,_0x98ac('0x47'),_0x4a080c[_0x532e14][_0x23ae9e]);break;case 0x4:joinOrLeaveQueues(_0xc0bd22,_0x11233e,'mail',_0x4a080c[_0x532e14][_0x23ae9e]);break;case 0x5:joinOrLeaveQueues(_0xc0bd22,_0x11233e,'openchannel',_0x4a080c[_0x532e14][_0x23ae9e]);break;case 0x6:joinOrLeaveQueues(_0xc0bd22,_0x11233e,_0x98ac('0x48'),_0x4a080c[_0x532e14][_0x23ae9e]);break;case 0x7:if(_0x92f4bc[_0x98ac('0x16')]!==_0x98ac('0x6'))_0xc0bd22[_0x11233e](util[_0x98ac('0x1a')](_0x98ac('0x49'),_0x4a080c[_0x532e14][_0x23ae9e][_0x98ac('0x3')]));break;case 0x8:if(_0x92f4bc[_0x98ac('0x16')]!=='agent')_0xc0bd22[_0x11233e](util[_0x98ac('0x1a')]('trunk:%s',_0x4a080c[_0x532e14][_0x23ae9e][_0x98ac('0x3')]));break;case 0x9:if(_0x92f4bc[_0x98ac('0x16')]!=='agent')_0xc0bd22[_0x11233e](util[_0x98ac('0x1a')](_0x98ac('0x4a'),_0x4a080c[_0x532e14][_0x23ae9e]['type'],_0x4a080c[_0x532e14][_0x23ae9e][_0x98ac('0x3')]));break;case 0xa:_0xc0bd22[_0x11233e](util['format'](_0x98ac('0x1b'),_0x4a080c[_0x532e14][_0x23ae9e][_0x98ac('0x3')]));break;}}}}})[_0x98ac('0xb')](function(){if(_0x11233e==='leave'){var _0x5b1aee=_['map'](_0x92f4bc[_0x98ac('0x21')],'id');return _0x92f4bc['removeChatInteractions'](_0x5b1aee)[_0x98ac('0xb')](function(){for(var _0x26f458=0x0;_0x26f458<_0x5b1aee[_0x98ac('0x19')];_0x26f458+=0x1){_0x4a04d4[_0x98ac('0x4b')]('user_has_chat_interactions:remove',{'ChatInteractionId':Number(_0x5b1aee[_0x26f458]),'UserId':Number(_0x92f4bc['id'])});}});}})[_0x98ac('0xb')](function(){if(_0x11233e===_0x98ac('0x4c')){var _0x41fc09=_[_0x98ac('0x4d')](_0x92f4bc['MailInteractions'],'id');return _0x92f4bc[_0x98ac('0x4e')](_0x41fc09)['then'](function(){for(var _0x3371a7=0x0;_0x3371a7<_0x41fc09[_0x98ac('0x19')];_0x3371a7+=0x1){_0x4a04d4['emit'](_0x98ac('0x4f'),{'MailInteractionId':Number(_0x41fc09[_0x3371a7]),'UserId':Number(_0x92f4bc['id'])});}});}})[_0x98ac('0xb')](function(){if(_0x11233e==='leave'){var _0x4d2b07=_[_0x98ac('0x4d')](_0x92f4bc[_0x98ac('0x25')],'id');return _0x92f4bc[_0x98ac('0x50')](_0x4d2b07)['then'](function(){for(var _0x3bef47=0x0;_0x3bef47<_0x4d2b07[_0x98ac('0x19')];_0x3bef47+=0x1){_0x4a04d4[_0x98ac('0x4b')](_0x98ac('0x51'),{'FaxInteractionId':Number(_0x4d2b07[_0x3bef47]),'UserId':Number(_0x92f4bc['id'])});}});}})['then'](function(){if(_0x11233e===_0x98ac('0x4c')){var _0x4460a5=_[_0x98ac('0x4d')](_0x92f4bc['SmsInteractions'],'id');return _0x92f4bc[_0x98ac('0x52')](_0x4460a5)[_0x98ac('0xb')](function(){for(var _0x5cfc95=0x0;_0x5cfc95<_0x4460a5['length'];_0x5cfc95+=0x1){_0x4a04d4[_0x98ac('0x4b')](_0x98ac('0x53'),{'SmsInteractionId':Number(_0x4460a5[_0x5cfc95]),'UserId':Number(_0x92f4bc['id'])});}});}})[_0x98ac('0xb')](function(){if(_0x11233e===_0x98ac('0x4c')){var _0xf0dba1=_[_0x98ac('0x4d')](_0x92f4bc['OpenchannelInteractions'],'id');return _0x92f4bc[_0x98ac('0x54')](_0xf0dba1)[_0x98ac('0xb')](function(){for(var _0x43db3d=0x0;_0x43db3d<_0xf0dba1[_0x98ac('0x19')];_0x43db3d+=0x1){_0x4a04d4[_0x98ac('0x4b')](_0x98ac('0x55'),{'OpenchannelInteractionId':Number(_0xf0dba1[_0x43db3d]),'UserId':Number(_0x92f4bc['id'])});}});}})[_0x98ac('0xb')](function(){if(_0x11233e==='leave'){var _0x1281d1=_[_0x98ac('0x4d')](_0x92f4bc['WhatsappInteractions'],'id');return _0x92f4bc['removeWhatsappInteractions'](_0x1281d1)[_0x98ac('0xb')](function(){for(var _0x858b78=0x0;_0x858b78<_0x1281d1[_0x98ac('0x19')];_0x858b78+=0x1){_0x4a04d4['emit'](_0x98ac('0x56'),{'WhatsappInteractionId':Number(_0x1281d1[_0x858b78]),'UserId':Number(_0x92f4bc['id'])});}});}})[_0x98ac('0x57')](function(_0x2ee5a8){_0xc0bd22['log'](_0x2ee5a8);});}}function onDisconnect(_0x225a91,_0x34529f){joinOrLeave(_0x225a91,_0x98ac('0x4c'),_0x34529f);}function onConnect(_0x28e435){joinOrLeave(_0x28e435,_0x98ac('0x58'));}exports[_0x98ac('0x59')]=function(_0x1fa472){_0x1fa472['on'](_0x98ac('0x5a'),function(_0x2e82f2){_0x2e82f2[_0x98ac('0x5b')](0x0);_0x2e82f2[_0x98ac('0x5c')]=_0x2e82f2[_0x98ac('0x5d')][_0x98ac('0x5a')][_0x98ac('0x5e')]+':'+_0x2e82f2[_0x98ac('0x5d')]['connection'][_0x98ac('0x5f')];_0x2e82f2[_0x98ac('0x60')]=new Date();_0x2e82f2[_0x98ac('0x61')]=function(_0x55339e){console['log']('SocketIO\x20'+_0x2e82f2[_0x98ac('0x62')][_0x98ac('0x3')]+'['+_0x2e82f2[_0x98ac('0x5c')]+']',_0x55339e);};_0x2e82f2['on'](_0x98ac('0x63'),function(){onDisconnect(_0x2e82f2,_0x1fa472);_0x2e82f2[_0x98ac('0x61')](_0x98ac('0x64'));});onConnect(_0x2e82f2);_0x2e82f2[_0x98ac('0x61')](_0x98ac('0x65'));});};