Built motion from commit (unavailable).|2.5.7
[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 _0x93a0=['FaxInteraction','FaxInteractions','SmsInteraction','SmsInteractions','OpenchannelInteraction','WhatsappInteractions','user:%s','admin','voice:inbound','voice:outbound','include','push','VoiceQueue','ChatQueue','FaxQueue','MailQueue','OpenchannelQueue','WhatsappQueue','Trunk','user','SmsQueue','Trunks','getVoiceQueues','getFaxQueues','getSmsQueues','getMailQueues','getOpenchannelQueues','getWhatsappQueues','all','voice','chat','fax','mail','openchannel','trunk:%s','leave','removeChatInteractions','user_has_chat_interactions:remove','MailInteractions','removeMailInteractions','user_has_mail_interactions:remove','emit','user_has_fax_interactions:remove','OpenchannelInteractions','removeOpenchannelInteractions','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','catch','log','default','connection','setMaxListeners','address','request','remotePort','connectedAt','SocketIO\x20','nsp','disconnect','DISCONNECTED','bluebird','./environment','name','Agents','User','agent','telephone','type','ivr','findOne','then','autoAssociation','VoiceQueues','ChatQueues','FaxQueues','SmsQueues','MailQueues','OpenchannelQueues','WhatsappQueues','findAll','Telephones','IvrCampaigns','UserProfileResource','map','resourceId','role','Campaign','where','format','%s:queue:%s','length','handshake','query','find','userProfileId','ChatInteraction','ChatInteractions','MailInteraction'];(function(_0x5b9b75,_0x4b2bd6){var _0x24f6aa=function(_0x284dcd){while(--_0x284dcd){_0x5b9b75['push'](_0x5b9b75['shift']());}};_0x24f6aa(++_0x4b2bd6);}(_0x93a0,0x1c4));var _0x093a=function(_0x4175bc,_0x589d69){_0x4175bc=_0x4175bc-0x0;var _0x52c872=_0x93a0[_0x4175bc];return _0x52c872;};'use strict';var _=require('lodash');var util=require('util');var BPromise=require(_0x093a('0x0'));var db=require('../mysqldb')['db'];var config=require(_0x093a('0x1'));var queryQueues={'attributes':['id',_0x093a('0x2')],'include':[{'as':_0x093a('0x3'),'model':db[_0x093a('0x4')],'attributes':['id',_0x093a('0x2'),'role'],'raw':!![],'where':{'role':_0x093a('0x5')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0x093a('0x2')],'where':{'role':_0x093a('0x6')}};var queryTrunks={'raw':!![],'attributes':['id',_0x093a('0x2')]};var queryAgents={'raw':!![],'attributes':['id',_0x093a('0x2')],'where':{'role':_0x093a('0x5')}};var queryCampaigns={'raw':!![],'attributes':['id',_0x093a('0x2'),_0x093a('0x7')],'where':{'type':_0x093a('0x8')}};function getAssociatedResources(_0x2b63f4,_0xf8848c,_0x2ff37b){return db['UserProfileSection'][_0x093a('0x9')]({'where':{'name':_0x2b63f4,'userProfileId':_0xf8848c},'raw':!![]})[_0x093a('0xa')](function(_0x5dfe8a){if(_0x5dfe8a){if(_0x5dfe8a[_0x093a('0xb')]){switch(_0x2b63f4){case _0x093a('0xc'):case _0x093a('0xd'):case _0x093a('0xe'):case _0x093a('0xf'):case _0x093a('0x10'):case _0x093a('0x11'):case _0x093a('0x12'):return db[_0x2ff37b][_0x093a('0x13')](queryQueues);case _0x093a('0x14'):return db[_0x2ff37b][_0x093a('0x13')](queryTelephones);case'Trunks':return db[_0x2ff37b][_0x093a('0x13')](queryTrunks);case _0x093a('0x15'):return db[_0x2ff37b][_0x093a('0x13')](queryCampaigns);}}else{return db[_0x093a('0x16')][_0x093a('0x13')]({'attributes':['resourceId'],'where':{'sectionId':_0x5dfe8a['id']},'raw':!![]})['then'](function(_0x3e1267){if(_0x3e1267){var _0x2afa88={'where':{'id':_[_0x093a('0x17')](_0x3e1267,_0x093a('0x18'))},'raw':!![]};switch(_0x2ff37b){case _0x093a('0x4'):_0x2afa88['where'][_0x093a('0x19')]=_0x093a('0x6');break;case _0x093a('0x1a'):_0x2afa88[_0x093a('0x1b')][_0x093a('0x7')]=_0x093a('0x8');break;}return db[_0x2ff37b][_0x093a('0x13')](_0x2afa88);}else{return[];}});}}else{return[];}})[_0x093a('0xa')](function(_0x238925){return _0x238925;});}function joinOrLeaveQueues(_0x5c4c4c,_0x239896,_0x465d8a,_0x409dbc){_0x5c4c4c[_0x239896](util[_0x093a('0x1c')](_0x093a('0x1d'),_0x465d8a,_0x409dbc['name']));if(_0x409dbc[_0x093a('0x3')]){for(var _0x486dba=0x0;_0x486dba<_0x409dbc[_0x093a('0x3')][_0x093a('0x1e')];_0x486dba+=0x1){_0x5c4c4c[_0x239896](util[_0x093a('0x1c')]('user:%s',_0x409dbc[_0x093a('0x3')][_0x486dba]['name']));}}}function joinOrLeave(_0x5934df,_0x54381c,_0x4f5324){var _0x3b3a2d;if(_0x5934df[_0x093a('0x1f')][_0x093a('0x20')]['id']){db['User'][_0x093a('0x21')]({'attributes':['id',_0x093a('0x2'),_0x093a('0x19'),_0x093a('0x22')],'where':{'id':_0x5934df[_0x093a('0x1f')][_0x093a('0x20')]['id']},'include':[{'model':db[_0x093a('0x23')],'as':_0x093a('0x24'),'attributes':['id'],'raw':!![]},{'model':db[_0x093a('0x25')],'as':'MailInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x093a('0x26')],'as':_0x093a('0x27'),'attributes':['id'],'raw':!![]},{'model':db[_0x093a('0x28')],'as':_0x093a('0x29'),'attributes':['id'],'raw':!![]},{'model':db[_0x093a('0x2a')],'as':'OpenchannelInteractions','attributes':['id'],'raw':!![]},{'model':db['WhatsappInteraction'],'as':_0x093a('0x2b'),'attributes':['id'],'raw':!![]}]})[_0x093a('0xa')](function(_0x1b581d){if(_0x1b581d){_0x3b3a2d=_0x1b581d;_0x5934df[_0x54381c](util['format'](_0x093a('0x2c'),_0x1b581d['name']));var _0x5d5486=[];switch(_0x1b581d[_0x093a('0x19')]){case _0x093a('0x2d'):_0x5934df[_0x54381c](_0x093a('0x2e'));_0x5934df[_0x54381c](_0x093a('0x2f'));if(queryQueues['hasOwnProperty'](_0x093a('0x30'))){delete queryQueues[_0x093a('0x30')];}_0x5d5486[_0x093a('0x31')](db[_0x093a('0x32')][_0x093a('0x13')](queryQueues));_0x5d5486[_0x093a('0x31')](db[_0x093a('0x33')][_0x093a('0x13')](queryQueues));_0x5d5486[_0x093a('0x31')](db[_0x093a('0x34')][_0x093a('0x13')](queryQueues));_0x5d5486[_0x093a('0x31')](db['SmsQueue'][_0x093a('0x13')](queryQueues));_0x5d5486[_0x093a('0x31')](db[_0x093a('0x35')][_0x093a('0x13')](queryQueues));_0x5d5486[_0x093a('0x31')](db[_0x093a('0x36')][_0x093a('0x13')](queryQueues));_0x5d5486[_0x093a('0x31')](db[_0x093a('0x37')][_0x093a('0x13')](queryQueues));_0x5d5486[_0x093a('0x31')](db[_0x093a('0x4')][_0x093a('0x13')](queryTelephones));_0x5d5486[_0x093a('0x31')](db[_0x093a('0x38')][_0x093a('0x13')](queryTrunks));_0x5d5486['push'](db[_0x093a('0x1a')][_0x093a('0x13')](queryCampaigns));_0x5d5486[_0x093a('0x31')](db[_0x093a('0x4')][_0x093a('0x13')](queryAgents));break;case _0x093a('0x39'):_0x5934df[_0x54381c](_0x093a('0x2e'));_0x5934df[_0x54381c](_0x093a('0x2f'));_0x5d5486[_0x093a('0x31')](getAssociatedResources('VoiceQueues',_0x1b581d[_0x093a('0x22')],_0x093a('0x32')));_0x5d5486[_0x093a('0x31')](getAssociatedResources(_0x093a('0xd'),_0x1b581d[_0x093a('0x22')],_0x093a('0x33')));_0x5d5486[_0x093a('0x31')](getAssociatedResources(_0x093a('0xe'),_0x1b581d['userProfileId'],_0x093a('0x34')));_0x5d5486[_0x093a('0x31')](getAssociatedResources(_0x093a('0xf'),_0x1b581d['userProfileId'],_0x093a('0x3a')));_0x5d5486[_0x093a('0x31')](getAssociatedResources(_0x093a('0x10'),_0x1b581d[_0x093a('0x22')],_0x093a('0x35')));_0x5d5486[_0x093a('0x31')](getAssociatedResources('OpenchannelQueues',_0x1b581d[_0x093a('0x22')],_0x093a('0x36')));_0x5d5486['push'](getAssociatedResources('WhatsappQueues',_0x1b581d[_0x093a('0x22')],_0x093a('0x37')));_0x5d5486['push'](getAssociatedResources('Telephones',_0x1b581d[_0x093a('0x22')],_0x093a('0x4')));_0x5d5486[_0x093a('0x31')](getAssociatedResources(_0x093a('0x3b'),_0x1b581d[_0x093a('0x22')],'Trunk'));_0x5d5486['push'](getAssociatedResources(_0x093a('0x15'),_0x1b581d['userProfileId'],'Campaign'));_0x5d5486[_0x093a('0x31')](db[_0x093a('0x4')][_0x093a('0x13')](queryAgents));break;case _0x093a('0x5'):_0x5934df[_0x54381c](_0x093a('0x2e'));_0x5934df[_0x54381c](_0x093a('0x2f'));_0x5d5486[_0x093a('0x31')](_0x1b581d[_0x093a('0x3c')]({'attributes':['id',_0x093a('0x2')]}));_0x5d5486['push'](_0x1b581d['getChatQueues']({'attributes':['id',_0x093a('0x2')]}));_0x5d5486['push'](_0x1b581d[_0x093a('0x3d')]({'attributes':['id',_0x093a('0x2')]}));_0x5d5486[_0x093a('0x31')](_0x1b581d[_0x093a('0x3e')]({'attributes':['id',_0x093a('0x2')]}));_0x5d5486[_0x093a('0x31')](_0x1b581d[_0x093a('0x3f')]({'attributes':['id',_0x093a('0x2')]}));_0x5d5486[_0x093a('0x31')](_0x1b581d[_0x093a('0x40')]({'attributes':['id',_0x093a('0x2')]}));_0x5d5486['push'](_0x1b581d[_0x093a('0x41')]({'attributes':['id',_0x093a('0x2')]}));break;}return BPromise[_0x093a('0x42')](_0x5d5486);}})[_0x093a('0xa')](function(_0xbf6d74){if(_0xbf6d74&&_0xbf6d74[_0x093a('0x1e')]){for(var _0x2aeed0=0x0;_0x2aeed0<_0xbf6d74[_0x093a('0x1e')];_0x2aeed0+=0x1){for(var _0x3b3784=0x0;_0x3b3784<_0xbf6d74[_0x2aeed0][_0x093a('0x1e')];_0x3b3784+=0x1){switch(_0x2aeed0){case 0x0:joinOrLeaveQueues(_0x5934df,_0x54381c,_0x093a('0x43'),_0xbf6d74[_0x2aeed0][_0x3b3784]);break;case 0x1:joinOrLeaveQueues(_0x5934df,_0x54381c,_0x093a('0x44'),_0xbf6d74[_0x2aeed0][_0x3b3784]);break;case 0x2:joinOrLeaveQueues(_0x5934df,_0x54381c,_0x093a('0x45'),_0xbf6d74[_0x2aeed0][_0x3b3784]);break;case 0x3:joinOrLeaveQueues(_0x5934df,_0x54381c,'sms',_0xbf6d74[_0x2aeed0][_0x3b3784]);break;case 0x4:joinOrLeaveQueues(_0x5934df,_0x54381c,_0x093a('0x46'),_0xbf6d74[_0x2aeed0][_0x3b3784]);break;case 0x5:joinOrLeaveQueues(_0x5934df,_0x54381c,_0x093a('0x47'),_0xbf6d74[_0x2aeed0][_0x3b3784]);break;case 0x6:joinOrLeaveQueues(_0x5934df,_0x54381c,'whatsapp',_0xbf6d74[_0x2aeed0][_0x3b3784]);break;case 0x7:_0x5934df[_0x54381c](util[_0x093a('0x1c')]('telephone:%s',_0xbf6d74[_0x2aeed0][_0x3b3784][_0x093a('0x2')]));break;case 0x8:_0x5934df[_0x54381c](util[_0x093a('0x1c')](_0x093a('0x48'),_0xbf6d74[_0x2aeed0][_0x3b3784]['name']));break;case 0x9:_0x5934df[_0x54381c](util[_0x093a('0x1c')]('campaign:%s:%s',_0xbf6d74[_0x2aeed0][_0x3b3784][_0x093a('0x7')],_0xbf6d74[_0x2aeed0][_0x3b3784][_0x093a('0x2')]));break;case 0xa:_0x5934df[_0x54381c](util[_0x093a('0x1c')](_0x093a('0x2c'),_0xbf6d74[_0x2aeed0][_0x3b3784][_0x093a('0x2')]));break;}}}}})[_0x093a('0xa')](function(){if(_0x54381c===_0x093a('0x49')){var _0x335ff1=_[_0x093a('0x17')](_0x3b3a2d[_0x093a('0x24')],'id');return _0x3b3a2d[_0x093a('0x4a')](_0x335ff1)[_0x093a('0xa')](function(){for(var _0x256720=0x0;_0x256720<_0x335ff1[_0x093a('0x1e')];_0x256720+=0x1){_0x4f5324['emit'](_0x093a('0x4b'),{'ChatInteractionId':Number(_0x335ff1[_0x256720]),'UserId':Number(_0x3b3a2d['id'])});}});}})[_0x093a('0xa')](function(){if(_0x54381c===_0x093a('0x49')){var _0x591c04=_['map'](_0x3b3a2d[_0x093a('0x4c')],'id');return _0x3b3a2d[_0x093a('0x4d')](_0x591c04)[_0x093a('0xa')](function(){for(var _0x491473=0x0;_0x491473<_0x591c04[_0x093a('0x1e')];_0x491473+=0x1){_0x4f5324['emit'](_0x093a('0x4e'),{'MailInteractionId':Number(_0x591c04[_0x491473]),'UserId':Number(_0x3b3a2d['id'])});}});}})[_0x093a('0xa')](function(){if(_0x54381c===_0x093a('0x49')){var _0x2fede9=_[_0x093a('0x17')](_0x3b3a2d[_0x093a('0x27')],'id');return _0x3b3a2d['removeFaxInteractions'](_0x2fede9)[_0x093a('0xa')](function(){for(var _0xf014de=0x0;_0xf014de<_0x2fede9[_0x093a('0x1e')];_0xf014de+=0x1){_0x4f5324[_0x093a('0x4f')](_0x093a('0x50'),{'FaxInteractionId':Number(_0x2fede9[_0xf014de]),'UserId':Number(_0x3b3a2d['id'])});}});}})['then'](function(){if(_0x54381c===_0x093a('0x49')){var _0x337b38=_[_0x093a('0x17')](_0x3b3a2d[_0x093a('0x29')],'id');return _0x3b3a2d['removeSmsInteractions'](_0x337b38)[_0x093a('0xa')](function(){for(var _0x5401a4=0x0;_0x5401a4<_0x337b38[_0x093a('0x1e')];_0x5401a4+=0x1){_0x4f5324[_0x093a('0x4f')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x337b38[_0x5401a4]),'UserId':Number(_0x3b3a2d['id'])});}});}})[_0x093a('0xa')](function(){if(_0x54381c===_0x093a('0x49')){var _0x3af7d6=_['map'](_0x3b3a2d[_0x093a('0x51')],'id');return _0x3b3a2d[_0x093a('0x52')](_0x3af7d6)[_0x093a('0xa')](function(){for(var _0x21785a=0x0;_0x21785a<_0x3af7d6[_0x093a('0x1e')];_0x21785a+=0x1){_0x4f5324[_0x093a('0x4f')]('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x3af7d6[_0x21785a]),'UserId':Number(_0x3b3a2d['id'])});}});}})[_0x093a('0xa')](function(){if(_0x54381c==='leave'){var _0x3078cb=_[_0x093a('0x17')](_0x3b3a2d[_0x093a('0x2b')],'id');return _0x3b3a2d[_0x093a('0x53')](_0x3078cb)[_0x093a('0xa')](function(){for(var _0x33ab51=0x0;_0x33ab51<_0x3078cb[_0x093a('0x1e')];_0x33ab51+=0x1){_0x4f5324[_0x093a('0x4f')](_0x093a('0x54'),{'WhatsappInteractionId':Number(_0x3078cb[_0x33ab51]),'UserId':Number(_0x3b3a2d['id'])});}});}})[_0x093a('0x55')](function(_0x3b975e){_0x5934df[_0x093a('0x56')](_0x3b975e);});}}function onDisconnect(_0x422365,_0x2ee34d){joinOrLeave(_0x422365,_0x093a('0x49'),_0x2ee34d);}function onConnect(_0x1d347f){joinOrLeave(_0x1d347f,'join');}exports[_0x093a('0x57')]=function(_0x33c206){_0x33c206['on'](_0x093a('0x58'),function(_0x1532c3){_0x1532c3[_0x093a('0x59')](0x0);_0x1532c3[_0x093a('0x5a')]=_0x1532c3[_0x093a('0x5b')]['connection']['remoteAddress']+':'+_0x1532c3[_0x093a('0x5b')][_0x093a('0x58')][_0x093a('0x5c')];_0x1532c3[_0x093a('0x5d')]=new Date();_0x1532c3[_0x093a('0x56')]=function(_0x36361f){console[_0x093a('0x56')](_0x093a('0x5e')+_0x1532c3[_0x093a('0x5f')][_0x093a('0x2')]+'['+_0x1532c3[_0x093a('0x5a')]+']',_0x36361f);};_0x1532c3['on'](_0x093a('0x60'),function(){onDisconnect(_0x1532c3,_0x33c206);_0x1532c3[_0x093a('0x56')](_0x093a('0x61'));});onConnect(_0x1532c3);_0x1532c3[_0x093a('0x56')]('CONNECTED');});};