Built motion from commit (unavailable).|2.5.2
[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 _0x4332=['user:%s','find','userProfileId','handshake','query','ChatInteraction','MailInteractions','FaxInteraction','FaxInteractions','SmsInteraction','SmsInteractions','OpenchannelInteraction','OpenchannelInteractions','WhatsappInteraction','WhatsappInteractions','voice:outbound','hasOwnProperty','include','push','ChatQueue','FaxQueue','MailQueue','OpenchannelQueue','Trunk','user','VoiceQueue','FaxQueues','SmsQueue','voice:inbound','getVoiceQueues','getChatQueues','getSmsQueues','getMailQueues','getOpenchannelQueues','chat','fax','sms','mail','openchannel','whatsapp','telephone:%s','trunk:%s','campaign:%s:%s','leave','ChatInteractions','removeChatInteractions','emit','user_has_chat_interactions:remove','removeMailInteractions','user_has_mail_interactions:remove','removeFaxInteractions','user_has_fax_interactions:remove','removeSmsInteractions','user_has_sms_interactions:remove','user_has_openchannel_interactions:remove','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','log','join','default','connection','address','request','remoteAddress','remotePort','SocketIO\x20','disconnect','CONNECTED','lodash','util','bluebird','name','Agents','User','role','agent','telephone','type','findOne','autoAssociation','VoiceQueues','ChatQueues','MailQueues','OpenchannelQueues','WhatsappQueues','findAll','Telephones','Trunks','IvrCampaigns','UserProfileResource','resourceId','then','map','where','Campaign','ivr','format','%s:queue:%s','length'];(function(_0x30f050,_0x99d0de){var _0x578164=function(_0x40cc1a){while(--_0x40cc1a){_0x30f050['push'](_0x30f050['shift']());}};_0x578164(++_0x99d0de);}(_0x4332,0x16d));var _0x2433=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x4332[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x2433('0x0'));var util=require(_0x2433('0x1'));var BPromise=require(_0x2433('0x2'));var db=require('../mysqldb')['db'];var config=require('./environment');var queryQueues={'attributes':['id',_0x2433('0x3')],'include':[{'as':_0x2433('0x4'),'model':db[_0x2433('0x5')],'attributes':['id','name',_0x2433('0x6')],'raw':!![],'where':{'role':_0x2433('0x7')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0x2433('0x3')],'where':{'role':_0x2433('0x8')}};var queryTrunks={'raw':!![],'attributes':['id',_0x2433('0x3')]};var queryAgents={'raw':!![],'attributes':['id','name'],'where':{'role':_0x2433('0x7')}};var queryCampaigns={'raw':!![],'attributes':['id',_0x2433('0x3'),_0x2433('0x9')],'where':{'type':'ivr'}};function getAssociatedResources(_0x354415,_0x103c71,_0x4f9a9e){return db['UserProfileSection'][_0x2433('0xa')]({'where':{'name':_0x354415,'userProfileId':_0x103c71},'raw':!![]})['then'](function(_0x45915e){if(_0x45915e){if(_0x45915e[_0x2433('0xb')]){switch(_0x354415){case _0x2433('0xc'):case _0x2433('0xd'):case'FaxQueues':case'SmsQueues':case _0x2433('0xe'):case _0x2433('0xf'):case _0x2433('0x10'):return db[_0x4f9a9e][_0x2433('0x11')](queryQueues);case _0x2433('0x12'):return db[_0x4f9a9e][_0x2433('0x11')](queryTelephones);case _0x2433('0x13'):return db[_0x4f9a9e]['findAll'](queryTrunks);case _0x2433('0x14'):return db[_0x4f9a9e][_0x2433('0x11')](queryCampaigns);}}else{return db[_0x2433('0x15')][_0x2433('0x11')]({'attributes':[_0x2433('0x16')],'where':{'sectionId':_0x45915e['id']},'raw':!![]})[_0x2433('0x17')](function(_0x594e19){if(_0x594e19){var _0x20574d={'where':{'id':_[_0x2433('0x18')](_0x594e19,_0x2433('0x16'))},'raw':!![]};switch(_0x4f9a9e){case _0x2433('0x5'):_0x20574d[_0x2433('0x19')]['role']=_0x2433('0x8');break;case _0x2433('0x1a'):_0x20574d[_0x2433('0x19')]['type']=_0x2433('0x1b');break;}return db[_0x4f9a9e][_0x2433('0x11')](_0x20574d);}else{return[];}});}}else{return[];}})[_0x2433('0x17')](function(_0x23390a){return _0x23390a;});}function joinOrLeaveQueues(_0x1eecc5,_0x26cb02,_0x2cfd11,_0x3190e1){_0x1eecc5[_0x26cb02](util[_0x2433('0x1c')](_0x2433('0x1d'),_0x2cfd11,_0x3190e1[_0x2433('0x3')]));if(_0x3190e1[_0x2433('0x4')]){for(var _0x3ef0d5=0x0;_0x3ef0d5<_0x3190e1[_0x2433('0x4')][_0x2433('0x1e')];_0x3ef0d5+=0x1){_0x1eecc5[_0x26cb02](util[_0x2433('0x1c')](_0x2433('0x1f'),_0x3190e1[_0x2433('0x4')][_0x3ef0d5][_0x2433('0x3')]));}}}function joinOrLeave(_0x5d085b,_0x3f71c5,_0x347a17){var _0x3ae5ae;if(_0x5d085b['handshake']['query']['id']){db[_0x2433('0x5')][_0x2433('0x20')]({'attributes':['id',_0x2433('0x3'),_0x2433('0x6'),_0x2433('0x21')],'where':{'id':_0x5d085b[_0x2433('0x22')][_0x2433('0x23')]['id']},'include':[{'model':db[_0x2433('0x24')],'as':'ChatInteractions','attributes':['id'],'raw':!![]},{'model':db['MailInteraction'],'as':_0x2433('0x25'),'attributes':['id'],'raw':!![]},{'model':db[_0x2433('0x26')],'as':_0x2433('0x27'),'attributes':['id'],'raw':!![]},{'model':db[_0x2433('0x28')],'as':_0x2433('0x29'),'attributes':['id'],'raw':!![]},{'model':db[_0x2433('0x2a')],'as':_0x2433('0x2b'),'attributes':['id'],'raw':!![]},{'model':db[_0x2433('0x2c')],'as':_0x2433('0x2d'),'attributes':['id'],'raw':!![]}]})['then'](function(_0x5ac21e){if(_0x5ac21e){_0x3ae5ae=_0x5ac21e;_0x5d085b[_0x3f71c5](util[_0x2433('0x1c')](_0x2433('0x1f'),_0x5ac21e[_0x2433('0x3')]));var _0x4c38f3=[];switch(_0x5ac21e[_0x2433('0x6')]){case'admin':_0x5d085b[_0x3f71c5]('voice:inbound');_0x5d085b[_0x3f71c5](_0x2433('0x2e'));if(queryQueues[_0x2433('0x2f')](_0x2433('0x30'))){delete queryQueues['include'];}_0x4c38f3['push'](db['VoiceQueue'][_0x2433('0x11')](queryQueues));_0x4c38f3[_0x2433('0x31')](db[_0x2433('0x32')][_0x2433('0x11')](queryQueues));_0x4c38f3['push'](db[_0x2433('0x33')][_0x2433('0x11')](queryQueues));_0x4c38f3[_0x2433('0x31')](db['SmsQueue'][_0x2433('0x11')](queryQueues));_0x4c38f3[_0x2433('0x31')](db[_0x2433('0x34')][_0x2433('0x11')](queryQueues));_0x4c38f3['push'](db[_0x2433('0x35')][_0x2433('0x11')](queryQueues));_0x4c38f3[_0x2433('0x31')](db['WhatsappQueue'][_0x2433('0x11')](queryQueues));_0x4c38f3[_0x2433('0x31')](db['User']['findAll'](queryTelephones));_0x4c38f3[_0x2433('0x31')](db[_0x2433('0x36')][_0x2433('0x11')](queryTrunks));_0x4c38f3['push'](db[_0x2433('0x1a')]['findAll'](queryCampaigns));_0x4c38f3[_0x2433('0x31')](db[_0x2433('0x5')][_0x2433('0x11')](queryAgents));break;case _0x2433('0x37'):_0x5d085b[_0x3f71c5]('voice:inbound');_0x5d085b[_0x3f71c5](_0x2433('0x2e'));_0x4c38f3['push'](getAssociatedResources(_0x2433('0xc'),_0x5ac21e['userProfileId'],_0x2433('0x38')));_0x4c38f3[_0x2433('0x31')](getAssociatedResources(_0x2433('0xd'),_0x5ac21e[_0x2433('0x21')],_0x2433('0x32')));_0x4c38f3[_0x2433('0x31')](getAssociatedResources(_0x2433('0x39'),_0x5ac21e[_0x2433('0x21')],_0x2433('0x33')));_0x4c38f3[_0x2433('0x31')](getAssociatedResources('SmsQueues',_0x5ac21e[_0x2433('0x21')],_0x2433('0x3a')));_0x4c38f3['push'](getAssociatedResources(_0x2433('0xe'),_0x5ac21e[_0x2433('0x21')],_0x2433('0x34')));_0x4c38f3[_0x2433('0x31')](getAssociatedResources(_0x2433('0xf'),_0x5ac21e['userProfileId'],'OpenchannelQueue'));_0x4c38f3['push'](getAssociatedResources(_0x2433('0x10'),_0x5ac21e[_0x2433('0x21')],'WhatsappQueue'));_0x4c38f3[_0x2433('0x31')](getAssociatedResources(_0x2433('0x12'),_0x5ac21e[_0x2433('0x21')],_0x2433('0x5')));_0x4c38f3['push'](getAssociatedResources(_0x2433('0x13'),_0x5ac21e[_0x2433('0x21')],_0x2433('0x36')));_0x4c38f3['push'](getAssociatedResources(_0x2433('0x14'),_0x5ac21e[_0x2433('0x21')],_0x2433('0x1a')));_0x4c38f3[_0x2433('0x31')](db[_0x2433('0x5')][_0x2433('0x11')](queryAgents));break;case _0x2433('0x7'):_0x5d085b[_0x3f71c5](_0x2433('0x3b'));_0x5d085b[_0x3f71c5](_0x2433('0x2e'));_0x4c38f3[_0x2433('0x31')](_0x5ac21e[_0x2433('0x3c')]({'attributes':['id','name']}));_0x4c38f3[_0x2433('0x31')](_0x5ac21e[_0x2433('0x3d')]({'attributes':['id','name']}));_0x4c38f3[_0x2433('0x31')](_0x5ac21e['getFaxQueues']({'attributes':['id','name']}));_0x4c38f3[_0x2433('0x31')](_0x5ac21e[_0x2433('0x3e')]({'attributes':['id','name']}));_0x4c38f3[_0x2433('0x31')](_0x5ac21e[_0x2433('0x3f')]({'attributes':['id','name']}));_0x4c38f3[_0x2433('0x31')](_0x5ac21e[_0x2433('0x40')]({'attributes':['id',_0x2433('0x3')]}));_0x4c38f3[_0x2433('0x31')](_0x5ac21e['getWhatsappQueues']({'attributes':['id','name']}));break;}return BPromise['all'](_0x4c38f3);}})[_0x2433('0x17')](function(_0x5154e9){if(_0x5154e9&&_0x5154e9[_0x2433('0x1e')]){for(var _0x3e155c=0x0;_0x3e155c<_0x5154e9[_0x2433('0x1e')];_0x3e155c+=0x1){for(var _0x4b6c29=0x0;_0x4b6c29<_0x5154e9[_0x3e155c]['length'];_0x4b6c29+=0x1){switch(_0x3e155c){case 0x0:joinOrLeaveQueues(_0x5d085b,_0x3f71c5,'voice',_0x5154e9[_0x3e155c][_0x4b6c29]);break;case 0x1:joinOrLeaveQueues(_0x5d085b,_0x3f71c5,_0x2433('0x41'),_0x5154e9[_0x3e155c][_0x4b6c29]);break;case 0x2:joinOrLeaveQueues(_0x5d085b,_0x3f71c5,_0x2433('0x42'),_0x5154e9[_0x3e155c][_0x4b6c29]);break;case 0x3:joinOrLeaveQueues(_0x5d085b,_0x3f71c5,_0x2433('0x43'),_0x5154e9[_0x3e155c][_0x4b6c29]);break;case 0x4:joinOrLeaveQueues(_0x5d085b,_0x3f71c5,_0x2433('0x44'),_0x5154e9[_0x3e155c][_0x4b6c29]);break;case 0x5:joinOrLeaveQueues(_0x5d085b,_0x3f71c5,_0x2433('0x45'),_0x5154e9[_0x3e155c][_0x4b6c29]);break;case 0x6:joinOrLeaveQueues(_0x5d085b,_0x3f71c5,_0x2433('0x46'),_0x5154e9[_0x3e155c][_0x4b6c29]);break;case 0x7:_0x5d085b[_0x3f71c5](util[_0x2433('0x1c')](_0x2433('0x47'),_0x5154e9[_0x3e155c][_0x4b6c29]['name']));break;case 0x8:_0x5d085b[_0x3f71c5](util[_0x2433('0x1c')](_0x2433('0x48'),_0x5154e9[_0x3e155c][_0x4b6c29][_0x2433('0x3')]));break;case 0x9:_0x5d085b[_0x3f71c5](util[_0x2433('0x1c')](_0x2433('0x49'),_0x5154e9[_0x3e155c][_0x4b6c29][_0x2433('0x9')],_0x5154e9[_0x3e155c][_0x4b6c29]['name']));break;case 0xa:_0x5d085b[_0x3f71c5](util[_0x2433('0x1c')](_0x2433('0x1f'),_0x5154e9[_0x3e155c][_0x4b6c29][_0x2433('0x3')]));break;}}}}})[_0x2433('0x17')](function(){if(_0x3f71c5===_0x2433('0x4a')){var _0x1c0fa2=_[_0x2433('0x18')](_0x3ae5ae[_0x2433('0x4b')],'id');return _0x3ae5ae[_0x2433('0x4c')](_0x1c0fa2)[_0x2433('0x17')](function(){for(var _0xf03c9f=0x0;_0xf03c9f<_0x1c0fa2[_0x2433('0x1e')];_0xf03c9f+=0x1){_0x347a17[_0x2433('0x4d')](_0x2433('0x4e'),{'ChatInteractionId':Number(_0x1c0fa2[_0xf03c9f]),'UserId':Number(_0x3ae5ae['id'])});}});}})[_0x2433('0x17')](function(){if(_0x3f71c5===_0x2433('0x4a')){var _0x5ddd70=_[_0x2433('0x18')](_0x3ae5ae['MailInteractions'],'id');return _0x3ae5ae[_0x2433('0x4f')](_0x5ddd70)['then'](function(){for(var _0x23d9f6=0x0;_0x23d9f6<_0x5ddd70[_0x2433('0x1e')];_0x23d9f6+=0x1){_0x347a17[_0x2433('0x4d')](_0x2433('0x50'),{'MailInteractionId':Number(_0x5ddd70[_0x23d9f6]),'UserId':Number(_0x3ae5ae['id'])});}});}})[_0x2433('0x17')](function(){if(_0x3f71c5===_0x2433('0x4a')){var _0x4120b1=_[_0x2433('0x18')](_0x3ae5ae[_0x2433('0x27')],'id');return _0x3ae5ae[_0x2433('0x51')](_0x4120b1)[_0x2433('0x17')](function(){for(var _0x3f3bfb=0x0;_0x3f3bfb<_0x4120b1[_0x2433('0x1e')];_0x3f3bfb+=0x1){_0x347a17['emit'](_0x2433('0x52'),{'FaxInteractionId':Number(_0x4120b1[_0x3f3bfb]),'UserId':Number(_0x3ae5ae['id'])});}});}})[_0x2433('0x17')](function(){if(_0x3f71c5===_0x2433('0x4a')){var _0x1cd672=_[_0x2433('0x18')](_0x3ae5ae[_0x2433('0x29')],'id');return _0x3ae5ae[_0x2433('0x53')](_0x1cd672)[_0x2433('0x17')](function(){for(var _0x545f04=0x0;_0x545f04<_0x1cd672[_0x2433('0x1e')];_0x545f04+=0x1){_0x347a17[_0x2433('0x4d')](_0x2433('0x54'),{'SmsInteractionId':Number(_0x1cd672[_0x545f04]),'UserId':Number(_0x3ae5ae['id'])});}});}})[_0x2433('0x17')](function(){if(_0x3f71c5==='leave'){var _0x36f682=_[_0x2433('0x18')](_0x3ae5ae[_0x2433('0x2b')],'id');return _0x3ae5ae['removeOpenchannelInteractions'](_0x36f682)[_0x2433('0x17')](function(){for(var _0xa7ad99=0x0;_0xa7ad99<_0x36f682['length'];_0xa7ad99+=0x1){_0x347a17['emit'](_0x2433('0x55'),{'OpenchannelInteractionId':Number(_0x36f682[_0xa7ad99]),'UserId':Number(_0x3ae5ae['id'])});}});}})[_0x2433('0x17')](function(){if(_0x3f71c5===_0x2433('0x4a')){var _0x156ba1=_[_0x2433('0x18')](_0x3ae5ae['WhatsappInteractions'],'id');return _0x3ae5ae[_0x2433('0x56')](_0x156ba1)[_0x2433('0x17')](function(){for(var _0x30d3f5=0x0;_0x30d3f5<_0x156ba1[_0x2433('0x1e')];_0x30d3f5+=0x1){_0x347a17['emit'](_0x2433('0x57'),{'WhatsappInteractionId':Number(_0x156ba1[_0x30d3f5]),'UserId':Number(_0x3ae5ae['id'])});}});}})['catch'](function(_0x2977e1){_0x5d085b[_0x2433('0x58')](_0x2977e1);});}}function onDisconnect(_0x2992f8,_0x151c1a){joinOrLeave(_0x2992f8,'leave',_0x151c1a);}function onConnect(_0x37dc51){joinOrLeave(_0x37dc51,_0x2433('0x59'));}exports[_0x2433('0x5a')]=function(_0x4e8885){_0x4e8885['on'](_0x2433('0x5b'),function(_0x4f60c9){_0x4f60c9['setMaxListeners'](0x0);_0x4f60c9[_0x2433('0x5c')]=_0x4f60c9[_0x2433('0x5d')]['connection'][_0x2433('0x5e')]+':'+_0x4f60c9[_0x2433('0x5d')]['connection'][_0x2433('0x5f')];_0x4f60c9['connectedAt']=new Date();_0x4f60c9['log']=function(_0x4f93b8){console[_0x2433('0x58')](_0x2433('0x60')+_0x4f60c9['nsp']['name']+'['+_0x4f60c9[_0x2433('0x5c')]+']',_0x4f93b8);};_0x4f60c9['on'](_0x2433('0x61'),function(){onDisconnect(_0x4f60c9,_0x4e8885);_0x4f60c9[_0x2433('0x58')]('DISCONNECTED');});onConnect(_0x4f60c9);_0x4f60c9[_0x2433('0x58')](_0x2433('0x62'));});};