Built motion from commit 67e5df37.|2.0.66
[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 _0xdc32=['query','User','role','ChatInteraction','MailInteraction','MailInteractions','FaxInteraction','FaxInteractions','SmsInteraction','SmsInteractions','OpenchannelInteractions','then','format','user:%s','admin','voice:outbound','hasOwnProperty','include','VoiceQueue','push','findAll','Campaign','user','voice:inbound','getVoiceQueues','Trunk','all','length','voice:queue:%s','telephone:%s','trunk:%s','campaign:%s:%s','map','ChatInteractions','removeChatInteractions','user_has_chat_interactions:remove','leave','emit','user_has_mail_interactions:remove','removeFaxInteractions','user_has_fax_interactions:remove','removeSmsInteractions','removeOpenchannelInteractions','catch','log','join','default','connection','setMaxListeners','address','request','remotePort','connectedAt','nsp','disconnect','DISCONNECTED','CONNECTED','lodash','util','../mysqldb','./environment','name','Agents','telephone','agent','type','ivr','handshake'];(function(_0x344a3f,_0x579a22){var _0x264712=function(_0x34c9f0){while(--_0x34c9f0){_0x344a3f['push'](_0x344a3f['shift']());}};_0x264712(++_0x579a22);}(_0xdc32,0x149));var _0x2dc3=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xdc32[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x2dc3('0x0'));var util=require(_0x2dc3('0x1'));var BPromise=require('bluebird');var db=require(_0x2dc3('0x2'))['db'];var config=require(_0x2dc3('0x3'));var queryVoiceQueues={'attributes':['id',_0x2dc3('0x4')],'include':[{'as':_0x2dc3('0x5'),'model':db['User'],'attributes':['id',_0x2dc3('0x4'),'role'],'raw':!![],'where':{'role':'agent'},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0x2dc3('0x4')],'where':{'role':_0x2dc3('0x6')}};var queryTrunks={'raw':!![],'attributes':['id',_0x2dc3('0x4')]};var queryAgents={'raw':!![],'attributes':['id',_0x2dc3('0x4')],'where':{'role':_0x2dc3('0x7')}};var queryCampaigns={'raw':!![],'attributes':['id',_0x2dc3('0x4'),_0x2dc3('0x8')],'where':{'type':_0x2dc3('0x9')}};function joinOrLeave(_0x44f792,_0x4b56d3,_0x353350){var _0x42ec3b;if(_0x44f792[_0x2dc3('0xa')][_0x2dc3('0xb')]['id']){db[_0x2dc3('0xc')]['find']({'attributes':['id',_0x2dc3('0x4'),_0x2dc3('0xd')],'where':{'id':_0x44f792[_0x2dc3('0xa')][_0x2dc3('0xb')]['id']},'include':[{'model':db[_0x2dc3('0xe')],'as':'ChatInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x2dc3('0xf')],'as':_0x2dc3('0x10'),'attributes':['id'],'raw':!![]},{'model':db[_0x2dc3('0x11')],'as':_0x2dc3('0x12'),'attributes':['id'],'raw':!![]},{'model':db[_0x2dc3('0x13')],'as':_0x2dc3('0x14'),'attributes':['id'],'raw':!![]},{'model':db['OpenchannelInteraction'],'as':_0x2dc3('0x15'),'attributes':['id'],'raw':!![]}]})[_0x2dc3('0x16')](function(_0x376cf1){if(_0x376cf1){_0x42ec3b=_0x376cf1;_0x44f792[_0x4b56d3](util[_0x2dc3('0x17')](_0x2dc3('0x18'),_0x376cf1[_0x2dc3('0x4')]));var _0x39aa40=[];switch(_0x376cf1[_0x2dc3('0xd')]){case _0x2dc3('0x19'):_0x44f792[_0x4b56d3]('voice:inbound');_0x44f792[_0x4b56d3](_0x2dc3('0x1a'));if(queryVoiceQueues[_0x2dc3('0x1b')]('include')){delete queryVoiceQueues[_0x2dc3('0x1c')];}_0x39aa40['push'](db[_0x2dc3('0x1d')]['findAll'](queryVoiceQueues));_0x39aa40[_0x2dc3('0x1e')](db[_0x2dc3('0xc')][_0x2dc3('0x1f')](queryTelephones));_0x39aa40['push'](db['Trunk'][_0x2dc3('0x1f')](queryTrunks));_0x39aa40[_0x2dc3('0x1e')](db['User'][_0x2dc3('0x1f')](queryAgents));_0x39aa40[_0x2dc3('0x1e')](db[_0x2dc3('0x20')][_0x2dc3('0x1f')](queryCampaigns));break;case _0x2dc3('0x21'):_0x44f792[_0x4b56d3](_0x2dc3('0x22'));_0x44f792[_0x4b56d3](_0x2dc3('0x1a'));_0x39aa40[_0x2dc3('0x1e')](_0x376cf1[_0x2dc3('0x23')](queryVoiceQueues));_0x39aa40['push'](db[_0x2dc3('0xc')][_0x2dc3('0x1f')](queryTelephones));_0x39aa40[_0x2dc3('0x1e')](db[_0x2dc3('0x24')][_0x2dc3('0x1f')](queryTrunks));_0x39aa40[_0x2dc3('0x1e')](db[_0x2dc3('0xc')][_0x2dc3('0x1f')](queryAgents));_0x39aa40['push'](db['Campaign'][_0x2dc3('0x1f')](queryCampaigns));break;case _0x2dc3('0x7'):_0x44f792[_0x4b56d3](_0x2dc3('0x22'));_0x44f792[_0x4b56d3](_0x2dc3('0x1a'));_0x39aa40['push'](_0x376cf1['getVoiceQueues']({'attributes':['id',_0x2dc3('0x4')]}));}return BPromise[_0x2dc3('0x25')](_0x39aa40);}})[_0x2dc3('0x16')](function(_0x599ccf){if(_0x599ccf&&_0x599ccf[_0x2dc3('0x26')]){for(var _0x473b2e=0x0;_0x473b2e<_0x599ccf[_0x2dc3('0x26')];_0x473b2e+=0x1){for(var _0x2e59bc=0x0;_0x2e59bc<_0x599ccf[_0x473b2e][_0x2dc3('0x26')];_0x2e59bc+=0x1){switch(_0x473b2e){case 0x0:_0x44f792[_0x4b56d3](util[_0x2dc3('0x17')](_0x2dc3('0x27'),_0x599ccf[_0x473b2e][_0x2e59bc]['name']));if(_0x599ccf[_0x473b2e][_0x2e59bc]['Agents']){for(var _0x4d8133=0x0;_0x4d8133<_0x599ccf[_0x473b2e][_0x2e59bc]['Agents'][_0x2dc3('0x26')];_0x4d8133+=0x1){_0x44f792[_0x4b56d3](util[_0x2dc3('0x17')](_0x2dc3('0x18'),_0x599ccf[_0x473b2e][_0x2e59bc][_0x2dc3('0x5')][_0x4d8133][_0x2dc3('0x4')]));}}break;case 0x1:_0x44f792[_0x4b56d3](util['format'](_0x2dc3('0x28'),_0x599ccf[_0x473b2e][_0x2e59bc]['name']));break;case 0x2:_0x44f792[_0x4b56d3](util[_0x2dc3('0x17')](_0x2dc3('0x29'),_0x599ccf[_0x473b2e][_0x2e59bc]['name']));break;case 0x3:_0x44f792[_0x4b56d3](util[_0x2dc3('0x17')](_0x2dc3('0x18'),_0x599ccf[_0x473b2e][_0x2e59bc][_0x2dc3('0x4')]));break;case 0x4:_0x44f792[_0x4b56d3](util[_0x2dc3('0x17')](_0x2dc3('0x2a'),_0x599ccf[_0x473b2e][_0x2e59bc][_0x2dc3('0x8')],_0x599ccf[_0x473b2e][_0x2e59bc][_0x2dc3('0x4')]));break;}}}}})['then'](function(){if(_0x4b56d3==='leave'){var _0x59ff88=_[_0x2dc3('0x2b')](_0x42ec3b[_0x2dc3('0x2c')],'id');return _0x42ec3b[_0x2dc3('0x2d')](_0x59ff88)[_0x2dc3('0x16')](function(){for(var _0x591569=0x0;_0x591569<_0x59ff88[_0x2dc3('0x26')];_0x591569+=0x1){_0x353350['emit'](_0x2dc3('0x2e'),{'ChatInteractionId':Number(_0x59ff88[_0x591569]),'UserId':Number(_0x42ec3b['id'])});}});}})[_0x2dc3('0x16')](function(){if(_0x4b56d3===_0x2dc3('0x2f')){var _0x5863d3=_[_0x2dc3('0x2b')](_0x42ec3b[_0x2dc3('0x10')],'id');return _0x42ec3b['removeMailInteractions'](_0x5863d3)[_0x2dc3('0x16')](function(){for(var _0x14e0d1=0x0;_0x14e0d1<_0x5863d3[_0x2dc3('0x26')];_0x14e0d1+=0x1){_0x353350[_0x2dc3('0x30')](_0x2dc3('0x31'),{'MailInteractionId':Number(_0x5863d3[_0x14e0d1]),'UserId':Number(_0x42ec3b['id'])});}});}})['then'](function(){if(_0x4b56d3==='leave'){var _0x27c9e9=_[_0x2dc3('0x2b')](_0x42ec3b[_0x2dc3('0x12')],'id');return _0x42ec3b[_0x2dc3('0x32')](_0x27c9e9)[_0x2dc3('0x16')](function(){for(var _0x10e504=0x0;_0x10e504<_0x27c9e9[_0x2dc3('0x26')];_0x10e504+=0x1){_0x353350[_0x2dc3('0x30')](_0x2dc3('0x33'),{'FaxInteractionId':Number(_0x27c9e9[_0x10e504]),'UserId':Number(_0x42ec3b['id'])});}});}})['then'](function(){if(_0x4b56d3===_0x2dc3('0x2f')){var _0x2c5752=_[_0x2dc3('0x2b')](_0x42ec3b[_0x2dc3('0x14')],'id');return _0x42ec3b[_0x2dc3('0x34')](_0x2c5752)[_0x2dc3('0x16')](function(){for(var _0x290036=0x0;_0x290036<_0x2c5752[_0x2dc3('0x26')];_0x290036+=0x1){_0x353350[_0x2dc3('0x30')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x2c5752[_0x290036]),'UserId':Number(_0x42ec3b['id'])});}});}})['then'](function(){if(_0x4b56d3===_0x2dc3('0x2f')){var _0x3e1734=_[_0x2dc3('0x2b')](_0x42ec3b['OpenchannelInteractions'],'id');return _0x42ec3b[_0x2dc3('0x35')](_0x3e1734)['then'](function(){for(var _0x1fc3cc=0x0;_0x1fc3cc<_0x3e1734[_0x2dc3('0x26')];_0x1fc3cc+=0x1){_0x353350[_0x2dc3('0x30')]('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x3e1734[_0x1fc3cc]),'UserId':Number(_0x42ec3b['id'])});}});}})[_0x2dc3('0x36')](function(_0x5ca594){_0x44f792[_0x2dc3('0x37')](_0x5ca594);});}}function onDisconnect(_0x1d93de,_0x165b70){joinOrLeave(_0x1d93de,_0x2dc3('0x2f'),_0x165b70);}function onConnect(_0x4d4850){joinOrLeave(_0x4d4850,_0x2dc3('0x38'));}exports[_0x2dc3('0x39')]=function(_0x5d5c42){_0x5d5c42['on'](_0x2dc3('0x3a'),function(_0x75388d){_0x75388d[_0x2dc3('0x3b')](0x0);_0x75388d[_0x2dc3('0x3c')]=_0x75388d[_0x2dc3('0x3d')][_0x2dc3('0x3a')]['remoteAddress']+':'+_0x75388d['request'][_0x2dc3('0x3a')][_0x2dc3('0x3e')];_0x75388d[_0x2dc3('0x3f')]=new Date();_0x75388d[_0x2dc3('0x37')]=function(_0x1b03b7){console[_0x2dc3('0x37')]('SocketIO\x20'+_0x75388d[_0x2dc3('0x40')][_0x2dc3('0x4')]+'['+_0x75388d['address']+']',_0x1b03b7);};_0x75388d['on'](_0x2dc3('0x41'),function(){onDisconnect(_0x75388d,_0x5d5c42);_0x75388d[_0x2dc3('0x37')](_0x2dc3('0x42'));});onConnect(_0x75388d);_0x75388d['log'](_0x2dc3('0x43'));});};