Built motion from commit (unavailable).|2.0.72
[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 _0x90dc=['mail','openchannel','telephone:%s','trunk:%s','leave','map','removeChatInteractions','user_has_chat_interactions:remove','emit','removeFaxInteractions','removeSmsInteractions','user_has_sms_interactions:remove','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','catch','join','default','address','request','connection','remoteAddress','remotePort','connectedAt','log','SocketIO\x20','disconnect','DISCONNECTED','CONNECTED','lodash','util','bluebird','../mysqldb','./environment','name','Agents','User','role','agent','telephone','type','ivr','format','%s:queue:%s','length','user:%s','handshake','find','ChatInteractions','MailInteraction','MailInteractions','FaxInteraction','FaxInteractions','SmsInteraction','SmsInteractions','OpenchannelInteraction','OpenchannelInteractions','admin','voice:outbound','include','push','VoiceQueue','findAll','ChatQueue','SmsQueue','MailQueue','OpenchannelQueue','Trunk','Campaign','voice:inbound','getChatQueues','getFaxQueues','getSmsQueues','getMailQueues','getOpenchannelQueues','getVoiceQueues','all','then','voice','sms'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x90dc,0x6b));var _0xc90d=function(_0x3ffbc6,_0x4171bb){_0x3ffbc6=_0x3ffbc6-0x0;var _0x3c64ab=_0x90dc[_0x3ffbc6];return _0x3c64ab;};'use strict';var _=require(_0xc90d('0x0'));var util=require(_0xc90d('0x1'));var BPromise=require(_0xc90d('0x2'));var db=require(_0xc90d('0x3'))['db'];var config=require(_0xc90d('0x4'));var queryQueues={'attributes':['id',_0xc90d('0x5')],'include':[{'as':_0xc90d('0x6'),'model':db[_0xc90d('0x7')],'attributes':['id',_0xc90d('0x5'),_0xc90d('0x8')],'raw':!![],'where':{'role':_0xc90d('0x9')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0xc90d('0x5')],'where':{'role':_0xc90d('0xa')}};var queryTrunks={'raw':!![],'attributes':['id','name']};var queryAgents={'raw':!![],'attributes':['id','name'],'where':{'role':'agent'}};var queryCampaigns={'raw':!![],'attributes':['id',_0xc90d('0x5'),_0xc90d('0xb')],'where':{'type':_0xc90d('0xc')}};function joinOrLeaveQueues(_0x27adfb,_0x4962ce,_0x3d3ba5,_0x3bbfb5){_0x27adfb[_0x4962ce](util[_0xc90d('0xd')](_0xc90d('0xe'),_0x3d3ba5,_0x3bbfb5[_0xc90d('0x5')]));if(_0x3bbfb5[_0xc90d('0x6')]){for(var _0x2f046c=0x0;_0x2f046c<_0x3bbfb5['Agents'][_0xc90d('0xf')];_0x2f046c+=0x1){_0x27adfb[_0x4962ce](util[_0xc90d('0xd')](_0xc90d('0x10'),_0x3bbfb5['Agents'][_0x2f046c][_0xc90d('0x5')]));}}}function joinOrLeave(_0x4305da,_0x25ef9f,_0xf349ed){var _0xd19769;if(_0x4305da[_0xc90d('0x11')]['query']['id']){db['User'][_0xc90d('0x12')]({'attributes':['id',_0xc90d('0x5'),_0xc90d('0x8')],'where':{'id':_0x4305da[_0xc90d('0x11')]['query']['id']},'include':[{'model':db['ChatInteraction'],'as':_0xc90d('0x13'),'attributes':['id'],'raw':!![]},{'model':db[_0xc90d('0x14')],'as':_0xc90d('0x15'),'attributes':['id'],'raw':!![]},{'model':db[_0xc90d('0x16')],'as':_0xc90d('0x17'),'attributes':['id'],'raw':!![]},{'model':db[_0xc90d('0x18')],'as':_0xc90d('0x19'),'attributes':['id'],'raw':!![]},{'model':db[_0xc90d('0x1a')],'as':_0xc90d('0x1b'),'attributes':['id'],'raw':!![]}]})['then'](function(_0xe7ab15){if(_0xe7ab15){_0xd19769=_0xe7ab15;_0x4305da[_0x25ef9f](util[_0xc90d('0xd')](_0xc90d('0x10'),_0xe7ab15[_0xc90d('0x5')]));var _0x58d0ea=[];switch(_0xe7ab15['role']){case _0xc90d('0x1c'):_0x4305da[_0x25ef9f]('voice:inbound');_0x4305da[_0x25ef9f](_0xc90d('0x1d'));if(queryQueues['hasOwnProperty'](_0xc90d('0x1e'))){delete queryQueues[_0xc90d('0x1e')];}_0x58d0ea[_0xc90d('0x1f')](db[_0xc90d('0x20')][_0xc90d('0x21')](queryQueues));_0x58d0ea[_0xc90d('0x1f')](db[_0xc90d('0x22')]['findAll'](queryQueues));_0x58d0ea[_0xc90d('0x1f')](db['FaxQueue']['findAll'](queryQueues));_0x58d0ea['push'](db[_0xc90d('0x23')][_0xc90d('0x21')](queryQueues));_0x58d0ea[_0xc90d('0x1f')](db[_0xc90d('0x24')][_0xc90d('0x21')](queryQueues));_0x58d0ea[_0xc90d('0x1f')](db[_0xc90d('0x25')][_0xc90d('0x21')](queryQueues));_0x58d0ea[_0xc90d('0x1f')](db[_0xc90d('0x7')][_0xc90d('0x21')](queryTelephones));_0x58d0ea[_0xc90d('0x1f')](db[_0xc90d('0x26')]['findAll'](queryTrunks));_0x58d0ea[_0xc90d('0x1f')](db[_0xc90d('0x27')]['findAll'](queryCampaigns));_0x58d0ea[_0xc90d('0x1f')](db['User']['findAll'](queryAgents));break;case'user':_0x4305da[_0x25ef9f](_0xc90d('0x28'));_0x4305da[_0x25ef9f](_0xc90d('0x1d'));_0x58d0ea[_0xc90d('0x1f')](_0xe7ab15['getVoiceQueues'](queryQueues));_0x58d0ea[_0xc90d('0x1f')](_0xe7ab15[_0xc90d('0x29')](queryQueues));_0x58d0ea[_0xc90d('0x1f')](_0xe7ab15[_0xc90d('0x2a')](queryQueues));_0x58d0ea[_0xc90d('0x1f')](_0xe7ab15[_0xc90d('0x2b')](queryQueues));_0x58d0ea[_0xc90d('0x1f')](_0xe7ab15[_0xc90d('0x2c')](queryQueues));_0x58d0ea[_0xc90d('0x1f')](_0xe7ab15[_0xc90d('0x2d')](queryQueues));_0x58d0ea[_0xc90d('0x1f')](db[_0xc90d('0x7')][_0xc90d('0x21')](queryTelephones));_0x58d0ea[_0xc90d('0x1f')](db['Trunk'][_0xc90d('0x21')](queryTrunks));_0x58d0ea['push'](db[_0xc90d('0x27')]['findAll'](queryCampaigns));break;case'agent':_0x4305da[_0x25ef9f](_0xc90d('0x28'));_0x4305da[_0x25ef9f]('voice:outbound');_0x58d0ea[_0xc90d('0x1f')](_0xe7ab15[_0xc90d('0x2e')]({'attributes':['id',_0xc90d('0x5')]}));_0x58d0ea[_0xc90d('0x1f')](_0xe7ab15[_0xc90d('0x29')]({'attributes':['id','name']}));_0x58d0ea[_0xc90d('0x1f')](_0xe7ab15[_0xc90d('0x2a')]({'attributes':['id',_0xc90d('0x5')]}));_0x58d0ea[_0xc90d('0x1f')](_0xe7ab15[_0xc90d('0x2b')]({'attributes':['id','name']}));_0x58d0ea[_0xc90d('0x1f')](_0xe7ab15[_0xc90d('0x2c')]({'attributes':['id',_0xc90d('0x5')]}));_0x58d0ea['push'](_0xe7ab15['getOpenchannelQueues']({'attributes':['id','name']}));break;}return BPromise[_0xc90d('0x2f')](_0x58d0ea);}})[_0xc90d('0x30')](function(_0x5dbf26){if(_0x5dbf26&&_0x5dbf26['length']){for(var _0x97a75e=0x0;_0x97a75e<_0x5dbf26[_0xc90d('0xf')];_0x97a75e+=0x1){for(var _0x85a112=0x0;_0x85a112<_0x5dbf26[_0x97a75e]['length'];_0x85a112+=0x1){switch(_0x97a75e){case 0x0:joinOrLeaveQueues(_0x4305da,_0x25ef9f,_0xc90d('0x31'),_0x5dbf26[_0x97a75e][_0x85a112]);break;case 0x1:joinOrLeaveQueues(_0x4305da,_0x25ef9f,'chat',_0x5dbf26[_0x97a75e][_0x85a112]);break;case 0x2:joinOrLeaveQueues(_0x4305da,_0x25ef9f,'fax',_0x5dbf26[_0x97a75e][_0x85a112]);break;case 0x3:joinOrLeaveQueues(_0x4305da,_0x25ef9f,_0xc90d('0x32'),_0x5dbf26[_0x97a75e][_0x85a112]);break;case 0x4:joinOrLeaveQueues(_0x4305da,_0x25ef9f,_0xc90d('0x33'),_0x5dbf26[_0x97a75e][_0x85a112]);break;case 0x5:joinOrLeaveQueues(_0x4305da,_0x25ef9f,_0xc90d('0x34'),_0x5dbf26[_0x97a75e][_0x85a112]);break;case 0x6:_0x4305da[_0x25ef9f](util['format'](_0xc90d('0x35'),_0x5dbf26[_0x97a75e][_0x85a112][_0xc90d('0x5')]));break;case 0x7:_0x4305da[_0x25ef9f](util[_0xc90d('0xd')](_0xc90d('0x36'),_0x5dbf26[_0x97a75e][_0x85a112][_0xc90d('0x5')]));break;case 0x8:_0x4305da[_0x25ef9f](util['format']('campaign:%s:%s',_0x5dbf26[_0x97a75e][_0x85a112][_0xc90d('0xb')],_0x5dbf26[_0x97a75e][_0x85a112][_0xc90d('0x5')]));break;case 0x9:_0x4305da[_0x25ef9f](util['format'](_0xc90d('0x10'),_0x5dbf26[_0x97a75e][_0x85a112]['name']));break;}}}}})[_0xc90d('0x30')](function(){if(_0x25ef9f===_0xc90d('0x37')){var _0xb69563=_[_0xc90d('0x38')](_0xd19769[_0xc90d('0x13')],'id');return _0xd19769[_0xc90d('0x39')](_0xb69563)[_0xc90d('0x30')](function(){for(var _0x23d3f4=0x0;_0x23d3f4<_0xb69563[_0xc90d('0xf')];_0x23d3f4+=0x1){_0xf349ed['emit'](_0xc90d('0x3a'),{'ChatInteractionId':Number(_0xb69563[_0x23d3f4]),'UserId':Number(_0xd19769['id'])});}});}})[_0xc90d('0x30')](function(){if(_0x25ef9f===_0xc90d('0x37')){var _0x50f7e2=_['map'](_0xd19769[_0xc90d('0x15')],'id');return _0xd19769['removeMailInteractions'](_0x50f7e2)[_0xc90d('0x30')](function(){for(var _0x8e61d8=0x0;_0x8e61d8<_0x50f7e2['length'];_0x8e61d8+=0x1){_0xf349ed[_0xc90d('0x3b')]('user_has_mail_interactions:remove',{'MailInteractionId':Number(_0x50f7e2[_0x8e61d8]),'UserId':Number(_0xd19769['id'])});}});}})[_0xc90d('0x30')](function(){if(_0x25ef9f==='leave'){var _0x2a029a=_[_0xc90d('0x38')](_0xd19769['FaxInteractions'],'id');return _0xd19769[_0xc90d('0x3c')](_0x2a029a)['then'](function(){for(var _0x42b001=0x0;_0x42b001<_0x2a029a[_0xc90d('0xf')];_0x42b001+=0x1){_0xf349ed[_0xc90d('0x3b')]('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x2a029a[_0x42b001]),'UserId':Number(_0xd19769['id'])});}});}})[_0xc90d('0x30')](function(){if(_0x25ef9f===_0xc90d('0x37')){var _0x1ffafd=_['map'](_0xd19769[_0xc90d('0x19')],'id');return _0xd19769[_0xc90d('0x3d')](_0x1ffafd)[_0xc90d('0x30')](function(){for(var _0x2211c8=0x0;_0x2211c8<_0x1ffafd['length'];_0x2211c8+=0x1){_0xf349ed['emit'](_0xc90d('0x3e'),{'SmsInteractionId':Number(_0x1ffafd[_0x2211c8]),'UserId':Number(_0xd19769['id'])});}});}})['then'](function(){if(_0x25ef9f===_0xc90d('0x37')){var _0x50cf1e=_[_0xc90d('0x38')](_0xd19769['OpenchannelInteractions'],'id');return _0xd19769[_0xc90d('0x3f')](_0x50cf1e)[_0xc90d('0x30')](function(){for(var _0x49ec61=0x0;_0x49ec61<_0x50cf1e[_0xc90d('0xf')];_0x49ec61+=0x1){_0xf349ed[_0xc90d('0x3b')](_0xc90d('0x40'),{'OpenchannelInteractionId':Number(_0x50cf1e[_0x49ec61]),'UserId':Number(_0xd19769['id'])});}});}})[_0xc90d('0x41')](function(_0x1cbe7a){_0x4305da['log'](_0x1cbe7a);});}}function onDisconnect(_0x12ccbc,_0x479d38){joinOrLeave(_0x12ccbc,_0xc90d('0x37'),_0x479d38);}function onConnect(_0x4c40e4){joinOrLeave(_0x4c40e4,_0xc90d('0x42'));}exports[_0xc90d('0x43')]=function(_0xd8aa17){_0xd8aa17['on']('connection',function(_0x420080){_0x420080['setMaxListeners'](0x0);_0x420080[_0xc90d('0x44')]=_0x420080[_0xc90d('0x45')][_0xc90d('0x46')][_0xc90d('0x47')]+':'+_0x420080[_0xc90d('0x45')][_0xc90d('0x46')][_0xc90d('0x48')];_0x420080[_0xc90d('0x49')]=new Date();_0x420080[_0xc90d('0x4a')]=function(_0xda59d6){console[_0xc90d('0x4a')](_0xc90d('0x4b')+_0x420080['nsp'][_0xc90d('0x5')]+'['+_0x420080[_0xc90d('0x44')]+']',_0xda59d6);};_0x420080['on'](_0xc90d('0x4c'),function(){onDisconnect(_0x420080,_0xd8aa17);_0x420080[_0xc90d('0x4a')](_0xc90d('0x4d'));});onConnect(_0x420080);_0x420080['log'](_0xc90d('0x4e'));});};