Built motion from commit (unavailable).|2.5.10
[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 _0x8e15=['Trunks','IvrCampaigns','UserProfileResource','resourceId','map','Campaign','ivr','format','length','user:%s','handshake','query','find','userProfileId','ChatInteraction','ChatInteractions','MailInteraction','SmsInteraction','OpenchannelInteraction','OpenchannelInteractions','WhatsappInteraction','WhatsappInteractions','admin','voice:inbound','voice:outbound','include','VoiceQueue','push','ChatQueue','FaxQueue','SmsQueue','MailQueue','OpenchannelQueue','WhatsappQueue','Trunk','SmsQueues','WhatsappQueues','getChatQueues','getFaxQueues','getOpenchannelQueues','getWhatsappQueues','fax','sms','telephone:%s','trunk:%s','campaign:%s:%s','leave','removeChatInteractions','emit','user_has_chat_interactions:remove','MailInteractions','user_has_mail_interactions:remove','FaxInteractions','removeFaxInteractions','user_has_fax_interactions:remove','user_has_sms_interactions:remove','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','catch','log','join','default','connection','address','request','remoteAddress','remotePort','connectedAt','SocketIO\x20','nsp','disconnect','DISCONNECTED','CONNECTED','lodash','util','bluebird','../mysqldb','./environment','name','Agents','User','role','agent','telephone','type','UserProfileSection','then','autoAssociation','VoiceQueues','ChatQueues','FaxQueues','MailQueues','OpenchannelQueues','findAll','Telephones'];(function(_0x5951e8,_0x42b9a7){var _0x20a1f5=function(_0x2bc968){while(--_0x2bc968){_0x5951e8['push'](_0x5951e8['shift']());}};_0x20a1f5(++_0x42b9a7);}(_0x8e15,0xa8));var _0x58e1=function(_0x33be9d,_0x41618e){_0x33be9d=_0x33be9d-0x0;var _0x4a9267=_0x8e15[_0x33be9d];return _0x4a9267;};'use strict';var _=require(_0x58e1('0x0'));var util=require(_0x58e1('0x1'));var BPromise=require(_0x58e1('0x2'));var db=require(_0x58e1('0x3'))['db'];var config=require(_0x58e1('0x4'));var queryQueues={'attributes':['id',_0x58e1('0x5')],'include':[{'as':_0x58e1('0x6'),'model':db[_0x58e1('0x7')],'attributes':['id',_0x58e1('0x5'),_0x58e1('0x8')],'raw':!![],'where':{'role':_0x58e1('0x9')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0x58e1('0x5')],'where':{'role':_0x58e1('0xa')}};var queryTrunks={'raw':!![],'attributes':['id',_0x58e1('0x5')]};var queryAgents={'raw':!![],'attributes':['id',_0x58e1('0x5')],'where':{'role':_0x58e1('0x9')}};var queryCampaigns={'raw':!![],'attributes':['id','name',_0x58e1('0xb')],'where':{'type':'ivr'}};function getAssociatedResources(_0x22b0f3,_0x17ff38,_0x50329e){return db[_0x58e1('0xc')]['findOne']({'where':{'name':_0x22b0f3,'userProfileId':_0x17ff38},'raw':!![]})[_0x58e1('0xd')](function(_0x96da09){if(_0x96da09){if(_0x96da09[_0x58e1('0xe')]){switch(_0x22b0f3){case _0x58e1('0xf'):case _0x58e1('0x10'):case _0x58e1('0x11'):case'SmsQueues':case _0x58e1('0x12'):case _0x58e1('0x13'):case'WhatsappQueues':return db[_0x50329e][_0x58e1('0x14')](queryQueues);case _0x58e1('0x15'):return db[_0x50329e][_0x58e1('0x14')](queryTelephones);case _0x58e1('0x16'):return db[_0x50329e][_0x58e1('0x14')](queryTrunks);case _0x58e1('0x17'):return db[_0x50329e][_0x58e1('0x14')](queryCampaigns);}}else{return db[_0x58e1('0x18')][_0x58e1('0x14')]({'attributes':[_0x58e1('0x19')],'where':{'sectionId':_0x96da09['id']},'raw':!![]})[_0x58e1('0xd')](function(_0x3c67d3){if(_0x3c67d3){var _0x377977={'where':{'id':_[_0x58e1('0x1a')](_0x3c67d3,_0x58e1('0x19'))},'raw':!![]};switch(_0x50329e){case _0x58e1('0x7'):_0x377977['where']['role']=_0x58e1('0xa');break;case _0x58e1('0x1b'):_0x377977['where'][_0x58e1('0xb')]=_0x58e1('0x1c');break;}return db[_0x50329e][_0x58e1('0x14')](_0x377977);}else{return[];}});}}else{return[];}})[_0x58e1('0xd')](function(_0x4b5153){return _0x4b5153;});}function joinOrLeaveQueues(_0x27c6b5,_0x2f8bf5,_0x38a02f,_0x56956f){_0x27c6b5[_0x2f8bf5](util[_0x58e1('0x1d')]('%s:queue:%s',_0x38a02f,_0x56956f[_0x58e1('0x5')]));if(_0x56956f[_0x58e1('0x6')]){for(var _0x13db46=0x0;_0x13db46<_0x56956f[_0x58e1('0x6')][_0x58e1('0x1e')];_0x13db46+=0x1){_0x27c6b5[_0x2f8bf5](util['format'](_0x58e1('0x1f'),_0x56956f[_0x58e1('0x6')][_0x13db46][_0x58e1('0x5')]));}}}function joinOrLeave(_0x2ac109,_0x4df13c,_0x42d6d5){var _0x253faa;if(_0x2ac109[_0x58e1('0x20')][_0x58e1('0x21')]['id']){db['User'][_0x58e1('0x22')]({'attributes':['id',_0x58e1('0x5'),_0x58e1('0x8'),_0x58e1('0x23')],'where':{'id':_0x2ac109[_0x58e1('0x20')]['query']['id']},'include':[{'model':db[_0x58e1('0x24')],'as':_0x58e1('0x25'),'attributes':['id'],'raw':!![]},{'model':db[_0x58e1('0x26')],'as':'MailInteractions','attributes':['id'],'raw':!![]},{'model':db['FaxInteraction'],'as':'FaxInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x58e1('0x27')],'as':'SmsInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x58e1('0x28')],'as':_0x58e1('0x29'),'attributes':['id'],'raw':!![]},{'model':db[_0x58e1('0x2a')],'as':_0x58e1('0x2b'),'attributes':['id'],'raw':!![]}]})['then'](function(_0x3c784b){if(_0x3c784b){_0x253faa=_0x3c784b;_0x2ac109[_0x4df13c](util[_0x58e1('0x1d')](_0x58e1('0x1f'),_0x3c784b['name']));var _0xc72bf=[];switch(_0x3c784b['role']){case _0x58e1('0x2c'):_0x2ac109[_0x4df13c](_0x58e1('0x2d'));_0x2ac109[_0x4df13c](_0x58e1('0x2e'));if(queryQueues['hasOwnProperty'](_0x58e1('0x2f'))){delete queryQueues[_0x58e1('0x2f')];}_0xc72bf['push'](db[_0x58e1('0x30')][_0x58e1('0x14')](queryQueues));_0xc72bf[_0x58e1('0x31')](db[_0x58e1('0x32')]['findAll'](queryQueues));_0xc72bf['push'](db[_0x58e1('0x33')][_0x58e1('0x14')](queryQueues));_0xc72bf['push'](db[_0x58e1('0x34')]['findAll'](queryQueues));_0xc72bf['push'](db[_0x58e1('0x35')]['findAll'](queryQueues));_0xc72bf[_0x58e1('0x31')](db[_0x58e1('0x36')][_0x58e1('0x14')](queryQueues));_0xc72bf[_0x58e1('0x31')](db[_0x58e1('0x37')][_0x58e1('0x14')](queryQueues));_0xc72bf[_0x58e1('0x31')](db[_0x58e1('0x7')][_0x58e1('0x14')](queryTelephones));_0xc72bf['push'](db[_0x58e1('0x38')][_0x58e1('0x14')](queryTrunks));_0xc72bf[_0x58e1('0x31')](db[_0x58e1('0x1b')][_0x58e1('0x14')](queryCampaigns));_0xc72bf[_0x58e1('0x31')](db[_0x58e1('0x7')][_0x58e1('0x14')](queryAgents));break;case'user':_0x2ac109[_0x4df13c]('voice:inbound');_0x2ac109[_0x4df13c]('voice:outbound');_0xc72bf[_0x58e1('0x31')](getAssociatedResources('VoiceQueues',_0x3c784b[_0x58e1('0x23')],'VoiceQueue'));_0xc72bf[_0x58e1('0x31')](getAssociatedResources(_0x58e1('0x10'),_0x3c784b[_0x58e1('0x23')],_0x58e1('0x32')));_0xc72bf[_0x58e1('0x31')](getAssociatedResources(_0x58e1('0x11'),_0x3c784b[_0x58e1('0x23')],_0x58e1('0x33')));_0xc72bf[_0x58e1('0x31')](getAssociatedResources(_0x58e1('0x39'),_0x3c784b[_0x58e1('0x23')],_0x58e1('0x34')));_0xc72bf[_0x58e1('0x31')](getAssociatedResources(_0x58e1('0x12'),_0x3c784b[_0x58e1('0x23')],_0x58e1('0x35')));_0xc72bf['push'](getAssociatedResources('OpenchannelQueues',_0x3c784b[_0x58e1('0x23')],_0x58e1('0x36')));_0xc72bf['push'](getAssociatedResources(_0x58e1('0x3a'),_0x3c784b[_0x58e1('0x23')],_0x58e1('0x37')));_0xc72bf[_0x58e1('0x31')](getAssociatedResources(_0x58e1('0x15'),_0x3c784b[_0x58e1('0x23')],_0x58e1('0x7')));_0xc72bf[_0x58e1('0x31')](getAssociatedResources(_0x58e1('0x16'),_0x3c784b[_0x58e1('0x23')],_0x58e1('0x38')));_0xc72bf[_0x58e1('0x31')](getAssociatedResources(_0x58e1('0x17'),_0x3c784b['userProfileId'],_0x58e1('0x1b')));_0xc72bf['push'](db[_0x58e1('0x7')][_0x58e1('0x14')](queryAgents));break;case'agent':_0x2ac109[_0x4df13c]('voice:inbound');_0x2ac109[_0x4df13c](_0x58e1('0x2e'));_0xc72bf[_0x58e1('0x31')](_0x3c784b['getVoiceQueues']({'attributes':['id',_0x58e1('0x5')]}));_0xc72bf[_0x58e1('0x31')](_0x3c784b[_0x58e1('0x3b')]({'attributes':['id',_0x58e1('0x5')]}));_0xc72bf[_0x58e1('0x31')](_0x3c784b[_0x58e1('0x3c')]({'attributes':['id','name']}));_0xc72bf[_0x58e1('0x31')](_0x3c784b['getSmsQueues']({'attributes':['id',_0x58e1('0x5')]}));_0xc72bf[_0x58e1('0x31')](_0x3c784b['getMailQueues']({'attributes':['id','name']}));_0xc72bf[_0x58e1('0x31')](_0x3c784b[_0x58e1('0x3d')]({'attributes':['id',_0x58e1('0x5')]}));_0xc72bf[_0x58e1('0x31')](_0x3c784b[_0x58e1('0x3e')]({'attributes':['id',_0x58e1('0x5')]}));break;}return BPromise['all'](_0xc72bf);}})[_0x58e1('0xd')](function(_0x99d51d){if(_0x99d51d&&_0x99d51d['length']){for(var _0x3d64c0=0x0;_0x3d64c0<_0x99d51d[_0x58e1('0x1e')];_0x3d64c0+=0x1){for(var _0x25d758=0x0;_0x25d758<_0x99d51d[_0x3d64c0][_0x58e1('0x1e')];_0x25d758+=0x1){switch(_0x3d64c0){case 0x0:joinOrLeaveQueues(_0x2ac109,_0x4df13c,'voice',_0x99d51d[_0x3d64c0][_0x25d758]);break;case 0x1:joinOrLeaveQueues(_0x2ac109,_0x4df13c,'chat',_0x99d51d[_0x3d64c0][_0x25d758]);break;case 0x2:joinOrLeaveQueues(_0x2ac109,_0x4df13c,_0x58e1('0x3f'),_0x99d51d[_0x3d64c0][_0x25d758]);break;case 0x3:joinOrLeaveQueues(_0x2ac109,_0x4df13c,_0x58e1('0x40'),_0x99d51d[_0x3d64c0][_0x25d758]);break;case 0x4:joinOrLeaveQueues(_0x2ac109,_0x4df13c,'mail',_0x99d51d[_0x3d64c0][_0x25d758]);break;case 0x5:joinOrLeaveQueues(_0x2ac109,_0x4df13c,'openchannel',_0x99d51d[_0x3d64c0][_0x25d758]);break;case 0x6:joinOrLeaveQueues(_0x2ac109,_0x4df13c,'whatsapp',_0x99d51d[_0x3d64c0][_0x25d758]);break;case 0x7:_0x2ac109[_0x4df13c](util[_0x58e1('0x1d')](_0x58e1('0x41'),_0x99d51d[_0x3d64c0][_0x25d758][_0x58e1('0x5')]));break;case 0x8:_0x2ac109[_0x4df13c](util[_0x58e1('0x1d')](_0x58e1('0x42'),_0x99d51d[_0x3d64c0][_0x25d758][_0x58e1('0x5')]));break;case 0x9:_0x2ac109[_0x4df13c](util[_0x58e1('0x1d')](_0x58e1('0x43'),_0x99d51d[_0x3d64c0][_0x25d758]['type'],_0x99d51d[_0x3d64c0][_0x25d758]['name']));break;case 0xa:_0x2ac109[_0x4df13c](util[_0x58e1('0x1d')](_0x58e1('0x1f'),_0x99d51d[_0x3d64c0][_0x25d758][_0x58e1('0x5')]));break;}}}}})[_0x58e1('0xd')](function(){if(_0x4df13c===_0x58e1('0x44')){var _0x23bd6b=_[_0x58e1('0x1a')](_0x253faa[_0x58e1('0x25')],'id');return _0x253faa[_0x58e1('0x45')](_0x23bd6b)[_0x58e1('0xd')](function(){for(var _0x119305=0x0;_0x119305<_0x23bd6b[_0x58e1('0x1e')];_0x119305+=0x1){_0x42d6d5[_0x58e1('0x46')](_0x58e1('0x47'),{'ChatInteractionId':Number(_0x23bd6b[_0x119305]),'UserId':Number(_0x253faa['id'])});}});}})[_0x58e1('0xd')](function(){if(_0x4df13c===_0x58e1('0x44')){var _0xb850ca=_[_0x58e1('0x1a')](_0x253faa[_0x58e1('0x48')],'id');return _0x253faa['removeMailInteractions'](_0xb850ca)[_0x58e1('0xd')](function(){for(var _0x30ecff=0x0;_0x30ecff<_0xb850ca[_0x58e1('0x1e')];_0x30ecff+=0x1){_0x42d6d5[_0x58e1('0x46')](_0x58e1('0x49'),{'MailInteractionId':Number(_0xb850ca[_0x30ecff]),'UserId':Number(_0x253faa['id'])});}});}})['then'](function(){if(_0x4df13c===_0x58e1('0x44')){var _0x16fc6a=_[_0x58e1('0x1a')](_0x253faa[_0x58e1('0x4a')],'id');return _0x253faa[_0x58e1('0x4b')](_0x16fc6a)[_0x58e1('0xd')](function(){for(var _0x3fc2ac=0x0;_0x3fc2ac<_0x16fc6a[_0x58e1('0x1e')];_0x3fc2ac+=0x1){_0x42d6d5['emit'](_0x58e1('0x4c'),{'FaxInteractionId':Number(_0x16fc6a[_0x3fc2ac]),'UserId':Number(_0x253faa['id'])});}});}})[_0x58e1('0xd')](function(){if(_0x4df13c===_0x58e1('0x44')){var _0x366ae5=_[_0x58e1('0x1a')](_0x253faa['SmsInteractions'],'id');return _0x253faa['removeSmsInteractions'](_0x366ae5)[_0x58e1('0xd')](function(){for(var _0x43a238=0x0;_0x43a238<_0x366ae5[_0x58e1('0x1e')];_0x43a238+=0x1){_0x42d6d5[_0x58e1('0x46')](_0x58e1('0x4d'),{'SmsInteractionId':Number(_0x366ae5[_0x43a238]),'UserId':Number(_0x253faa['id'])});}});}})[_0x58e1('0xd')](function(){if(_0x4df13c===_0x58e1('0x44')){var _0x42a16c=_[_0x58e1('0x1a')](_0x253faa[_0x58e1('0x29')],'id');return _0x253faa['removeOpenchannelInteractions'](_0x42a16c)[_0x58e1('0xd')](function(){for(var _0x74c77=0x0;_0x74c77<_0x42a16c[_0x58e1('0x1e')];_0x74c77+=0x1){_0x42d6d5[_0x58e1('0x46')]('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x42a16c[_0x74c77]),'UserId':Number(_0x253faa['id'])});}});}})[_0x58e1('0xd')](function(){if(_0x4df13c===_0x58e1('0x44')){var _0x276f6a=_[_0x58e1('0x1a')](_0x253faa[_0x58e1('0x2b')],'id');return _0x253faa[_0x58e1('0x4e')](_0x276f6a)['then'](function(){for(var _0x42e5a3=0x0;_0x42e5a3<_0x276f6a[_0x58e1('0x1e')];_0x42e5a3+=0x1){_0x42d6d5['emit'](_0x58e1('0x4f'),{'WhatsappInteractionId':Number(_0x276f6a[_0x42e5a3]),'UserId':Number(_0x253faa['id'])});}});}})[_0x58e1('0x50')](function(_0x1014ba){_0x2ac109[_0x58e1('0x51')](_0x1014ba);});}}function onDisconnect(_0x5c27ba,_0x27800c){joinOrLeave(_0x5c27ba,_0x58e1('0x44'),_0x27800c);}function onConnect(_0x94667e){joinOrLeave(_0x94667e,_0x58e1('0x52'));}exports[_0x58e1('0x53')]=function(_0x4f941f){_0x4f941f['on'](_0x58e1('0x54'),function(_0x461367){_0x461367['setMaxListeners'](0x0);_0x461367[_0x58e1('0x55')]=_0x461367[_0x58e1('0x56')][_0x58e1('0x54')][_0x58e1('0x57')]+':'+_0x461367[_0x58e1('0x56')]['connection'][_0x58e1('0x58')];_0x461367[_0x58e1('0x59')]=new Date();_0x461367[_0x58e1('0x51')]=function(_0x23008b){console[_0x58e1('0x51')](_0x58e1('0x5a')+_0x461367[_0x58e1('0x5b')][_0x58e1('0x5')]+'['+_0x461367['address']+']',_0x23008b);};_0x461367['on'](_0x58e1('0x5c'),function(){onDisconnect(_0x461367,_0x4f941f);_0x461367[_0x58e1('0x51')](_0x58e1('0x5d'));});onConnect(_0x461367);_0x461367['log'](_0x58e1('0x5e'));});};