Built motion from commit (unavailable).|2.4.18
[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 _0xe8bd=['where','Campaign','format','length','user:%s','handshake','query','find','ChatInteractions','MailInteraction','MailInteractions','FaxInteraction','SmsInteraction','OpenchannelInteraction','admin','voice:outbound','hasOwnProperty','include','push','VoiceQueue','ChatQueue','FaxQueue','SmsQueue','user','voice:inbound','userProfileId','MailQueue','OpenchannelQueue','Trunk','getVoiceQueues','getChatQueues','getFaxQueues','getSmsQueues','getMailQueues','getOpenchannelQueues','all','sms','mail','openchannel','trunk:%s','campaign:%s:%s','leave','removeChatInteractions','emit','map','removeMailInteractions','removeFaxInteractions','user_has_fax_interactions:remove','SmsInteractions','user_has_sms_interactions:remove','OpenchannelInteractions','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','catch','log','join','default','connection','setMaxListeners','address','request','remotePort','connectedAt','SocketIO\x20','nsp','disconnect','DISCONNECTED','lodash','bluebird','../mysqldb','./environment','name','Agents','User','role','agent','telephone','type','ivr','findOne','then','ChatQueues','FaxQueues','SmsQueues','MailQueues','OpenchannelQueues','findAll','Telephones','Trunks','IvrCampaigns','UserProfileResource','resourceId'];(function(_0x142f78,_0x168833){var _0x338117=function(_0x1d34ab){while(--_0x1d34ab){_0x142f78['push'](_0x142f78['shift']());}};_0x338117(++_0x168833);}(_0xe8bd,0x9f));var _0xde8b=function(_0x2163d0,_0x5d3605){_0x2163d0=_0x2163d0-0x0;var _0x476c03=_0xe8bd[_0x2163d0];return _0x476c03;};'use strict';var _=require(_0xde8b('0x0'));var util=require('util');var BPromise=require(_0xde8b('0x1'));var db=require(_0xde8b('0x2'))['db'];var config=require(_0xde8b('0x3'));var queryQueues={'attributes':['id',_0xde8b('0x4')],'include':[{'as':_0xde8b('0x5'),'model':db[_0xde8b('0x6')],'attributes':['id',_0xde8b('0x4'),_0xde8b('0x7')],'raw':!![],'where':{'role':_0xde8b('0x8')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0xde8b('0x4')],'where':{'role':_0xde8b('0x9')}};var queryTrunks={'raw':!![],'attributes':['id',_0xde8b('0x4')]};var queryAgents={'raw':!![],'attributes':['id',_0xde8b('0x4')],'where':{'role':_0xde8b('0x8')}};var queryCampaigns={'raw':!![],'attributes':['id',_0xde8b('0x4'),_0xde8b('0xa')],'where':{'type':_0xde8b('0xb')}};function getAssociatedResources(_0x373c75,_0x538768,_0x49477a){return db['UserProfileSection'][_0xde8b('0xc')]({'where':{'name':_0x373c75,'userProfileId':_0x538768},'raw':!![]})[_0xde8b('0xd')](function(_0x55c227){if(_0x55c227){if(_0x55c227['autoAssociation']){switch(_0x373c75){case'VoiceQueues':case _0xde8b('0xe'):case _0xde8b('0xf'):case _0xde8b('0x10'):case _0xde8b('0x11'):case _0xde8b('0x12'):return db[_0x49477a][_0xde8b('0x13')](queryQueues);case _0xde8b('0x14'):return db[_0x49477a]['findAll'](queryTelephones);case _0xde8b('0x15'):return db[_0x49477a][_0xde8b('0x13')](queryTrunks);case _0xde8b('0x16'):return db[_0x49477a][_0xde8b('0x13')](queryCampaigns);}}else{return db[_0xde8b('0x17')][_0xde8b('0x13')]({'attributes':[_0xde8b('0x18')],'where':{'sectionId':_0x55c227['id']},'raw':!![]})[_0xde8b('0xd')](function(_0xd25a08){if(_0xd25a08){var _0x3abf38={'where':{'id':_['map'](_0xd25a08,_0xde8b('0x18'))},'raw':!![]};switch(_0x49477a){case _0xde8b('0x6'):_0x3abf38[_0xde8b('0x19')][_0xde8b('0x7')]=_0xde8b('0x9');break;case _0xde8b('0x1a'):_0x3abf38[_0xde8b('0x19')][_0xde8b('0xa')]=_0xde8b('0xb');break;}return db[_0x49477a]['findAll'](_0x3abf38);}else{return[];}});}}else{return[];}})[_0xde8b('0xd')](function(_0x318922){return _0x318922;});}function joinOrLeaveQueues(_0x222031,_0x59bb3a,_0x1e2ceb,_0x37ebc9){_0x222031[_0x59bb3a](util[_0xde8b('0x1b')]('%s:queue:%s',_0x1e2ceb,_0x37ebc9[_0xde8b('0x4')]));if(_0x37ebc9[_0xde8b('0x5')]){for(var _0x3c157f=0x0;_0x3c157f<_0x37ebc9[_0xde8b('0x5')][_0xde8b('0x1c')];_0x3c157f+=0x1){_0x222031[_0x59bb3a](util['format'](_0xde8b('0x1d'),_0x37ebc9['Agents'][_0x3c157f][_0xde8b('0x4')]));}}}function joinOrLeave(_0x1a1369,_0x187989,_0x429cc2){var _0xe67577;if(_0x1a1369[_0xde8b('0x1e')][_0xde8b('0x1f')]['id']){db[_0xde8b('0x6')][_0xde8b('0x20')]({'attributes':['id',_0xde8b('0x4'),'role','userProfileId'],'where':{'id':_0x1a1369[_0xde8b('0x1e')]['query']['id']},'include':[{'model':db['ChatInteraction'],'as':_0xde8b('0x21'),'attributes':['id'],'raw':!![]},{'model':db[_0xde8b('0x22')],'as':_0xde8b('0x23'),'attributes':['id'],'raw':!![]},{'model':db[_0xde8b('0x24')],'as':'FaxInteractions','attributes':['id'],'raw':!![]},{'model':db[_0xde8b('0x25')],'as':'SmsInteractions','attributes':['id'],'raw':!![]},{'model':db[_0xde8b('0x26')],'as':'OpenchannelInteractions','attributes':['id'],'raw':!![]}]})[_0xde8b('0xd')](function(_0x8ae7b7){if(_0x8ae7b7){_0xe67577=_0x8ae7b7;_0x1a1369[_0x187989](util[_0xde8b('0x1b')](_0xde8b('0x1d'),_0x8ae7b7[_0xde8b('0x4')]));var _0x44752e=[];switch(_0x8ae7b7['role']){case _0xde8b('0x27'):_0x1a1369[_0x187989]('voice:inbound');_0x1a1369[_0x187989](_0xde8b('0x28'));if(queryQueues[_0xde8b('0x29')](_0xde8b('0x2a'))){delete queryQueues[_0xde8b('0x2a')];}_0x44752e[_0xde8b('0x2b')](db[_0xde8b('0x2c')]['findAll'](queryQueues));_0x44752e[_0xde8b('0x2b')](db[_0xde8b('0x2d')][_0xde8b('0x13')](queryQueues));_0x44752e[_0xde8b('0x2b')](db[_0xde8b('0x2e')][_0xde8b('0x13')](queryQueues));_0x44752e[_0xde8b('0x2b')](db[_0xde8b('0x2f')][_0xde8b('0x13')](queryQueues));_0x44752e[_0xde8b('0x2b')](db['MailQueue'][_0xde8b('0x13')](queryQueues));_0x44752e[_0xde8b('0x2b')](db['OpenchannelQueue'][_0xde8b('0x13')](queryQueues));_0x44752e[_0xde8b('0x2b')](db[_0xde8b('0x6')][_0xde8b('0x13')](queryTelephones));_0x44752e[_0xde8b('0x2b')](db['Trunk'][_0xde8b('0x13')](queryTrunks));_0x44752e[_0xde8b('0x2b')](db['Campaign']['findAll'](queryCampaigns));_0x44752e[_0xde8b('0x2b')](db[_0xde8b('0x6')][_0xde8b('0x13')](queryAgents));break;case _0xde8b('0x30'):_0x1a1369[_0x187989](_0xde8b('0x31'));_0x1a1369[_0x187989](_0xde8b('0x28'));_0x44752e[_0xde8b('0x2b')](getAssociatedResources('VoiceQueues',_0x8ae7b7['userProfileId'],_0xde8b('0x2c')));_0x44752e[_0xde8b('0x2b')](getAssociatedResources(_0xde8b('0xe'),_0x8ae7b7[_0xde8b('0x32')],_0xde8b('0x2d')));_0x44752e[_0xde8b('0x2b')](getAssociatedResources('FaxQueues',_0x8ae7b7[_0xde8b('0x32')],_0xde8b('0x2e')));_0x44752e['push'](getAssociatedResources('SmsQueues',_0x8ae7b7['userProfileId'],'SmsQueue'));_0x44752e['push'](getAssociatedResources('MailQueues',_0x8ae7b7[_0xde8b('0x32')],_0xde8b('0x33')));_0x44752e[_0xde8b('0x2b')](getAssociatedResources('OpenchannelQueues',_0x8ae7b7[_0xde8b('0x32')],_0xde8b('0x34')));_0x44752e[_0xde8b('0x2b')](getAssociatedResources(_0xde8b('0x14'),_0x8ae7b7[_0xde8b('0x32')],_0xde8b('0x6')));_0x44752e['push'](getAssociatedResources(_0xde8b('0x15'),_0x8ae7b7[_0xde8b('0x32')],_0xde8b('0x35')));_0x44752e[_0xde8b('0x2b')](getAssociatedResources('IvrCampaigns',_0x8ae7b7[_0xde8b('0x32')],_0xde8b('0x1a')));_0x44752e['push'](db[_0xde8b('0x6')]['findAll'](queryAgents));break;case'agent':_0x1a1369[_0x187989](_0xde8b('0x31'));_0x1a1369[_0x187989](_0xde8b('0x28'));_0x44752e[_0xde8b('0x2b')](_0x8ae7b7[_0xde8b('0x36')]({'attributes':['id',_0xde8b('0x4')]}));_0x44752e['push'](_0x8ae7b7[_0xde8b('0x37')]({'attributes':['id',_0xde8b('0x4')]}));_0x44752e['push'](_0x8ae7b7[_0xde8b('0x38')]({'attributes':['id',_0xde8b('0x4')]}));_0x44752e['push'](_0x8ae7b7[_0xde8b('0x39')]({'attributes':['id',_0xde8b('0x4')]}));_0x44752e[_0xde8b('0x2b')](_0x8ae7b7[_0xde8b('0x3a')]({'attributes':['id',_0xde8b('0x4')]}));_0x44752e[_0xde8b('0x2b')](_0x8ae7b7[_0xde8b('0x3b')]({'attributes':['id',_0xde8b('0x4')]}));break;}return BPromise[_0xde8b('0x3c')](_0x44752e);}})['then'](function(_0x3b56fc){if(_0x3b56fc&&_0x3b56fc['length']){for(var _0x5a018d=0x0;_0x5a018d<_0x3b56fc[_0xde8b('0x1c')];_0x5a018d+=0x1){for(var _0x43776d=0x0;_0x43776d<_0x3b56fc[_0x5a018d]['length'];_0x43776d+=0x1){switch(_0x5a018d){case 0x0:joinOrLeaveQueues(_0x1a1369,_0x187989,'voice',_0x3b56fc[_0x5a018d][_0x43776d]);break;case 0x1:joinOrLeaveQueues(_0x1a1369,_0x187989,'chat',_0x3b56fc[_0x5a018d][_0x43776d]);break;case 0x2:joinOrLeaveQueues(_0x1a1369,_0x187989,'fax',_0x3b56fc[_0x5a018d][_0x43776d]);break;case 0x3:joinOrLeaveQueues(_0x1a1369,_0x187989,_0xde8b('0x3d'),_0x3b56fc[_0x5a018d][_0x43776d]);break;case 0x4:joinOrLeaveQueues(_0x1a1369,_0x187989,_0xde8b('0x3e'),_0x3b56fc[_0x5a018d][_0x43776d]);break;case 0x5:joinOrLeaveQueues(_0x1a1369,_0x187989,_0xde8b('0x3f'),_0x3b56fc[_0x5a018d][_0x43776d]);break;case 0x6:_0x1a1369[_0x187989](util[_0xde8b('0x1b')]('telephone:%s',_0x3b56fc[_0x5a018d][_0x43776d]['name']));break;case 0x7:_0x1a1369[_0x187989](util[_0xde8b('0x1b')](_0xde8b('0x40'),_0x3b56fc[_0x5a018d][_0x43776d]['name']));break;case 0x8:_0x1a1369[_0x187989](util['format'](_0xde8b('0x41'),_0x3b56fc[_0x5a018d][_0x43776d][_0xde8b('0xa')],_0x3b56fc[_0x5a018d][_0x43776d][_0xde8b('0x4')]));break;case 0x9:_0x1a1369[_0x187989](util['format']('user:%s',_0x3b56fc[_0x5a018d][_0x43776d][_0xde8b('0x4')]));break;}}}}})[_0xde8b('0xd')](function(){if(_0x187989===_0xde8b('0x42')){var _0x49dee6=_['map'](_0xe67577[_0xde8b('0x21')],'id');return _0xe67577[_0xde8b('0x43')](_0x49dee6)['then'](function(){for(var _0x305da1=0x0;_0x305da1<_0x49dee6[_0xde8b('0x1c')];_0x305da1+=0x1){_0x429cc2[_0xde8b('0x44')]('user_has_chat_interactions:remove',{'ChatInteractionId':Number(_0x49dee6[_0x305da1]),'UserId':Number(_0xe67577['id'])});}});}})[_0xde8b('0xd')](function(){if(_0x187989==='leave'){var _0x2eccbf=_[_0xde8b('0x45')](_0xe67577['MailInteractions'],'id');return _0xe67577[_0xde8b('0x46')](_0x2eccbf)[_0xde8b('0xd')](function(){for(var _0x5bb42b=0x0;_0x5bb42b<_0x2eccbf[_0xde8b('0x1c')];_0x5bb42b+=0x1){_0x429cc2[_0xde8b('0x44')]('user_has_mail_interactions:remove',{'MailInteractionId':Number(_0x2eccbf[_0x5bb42b]),'UserId':Number(_0xe67577['id'])});}});}})[_0xde8b('0xd')](function(){if(_0x187989===_0xde8b('0x42')){var _0x807506=_['map'](_0xe67577['FaxInteractions'],'id');return _0xe67577[_0xde8b('0x47')](_0x807506)['then'](function(){for(var _0x8c5adb=0x0;_0x8c5adb<_0x807506['length'];_0x8c5adb+=0x1){_0x429cc2[_0xde8b('0x44')](_0xde8b('0x48'),{'FaxInteractionId':Number(_0x807506[_0x8c5adb]),'UserId':Number(_0xe67577['id'])});}});}})[_0xde8b('0xd')](function(){if(_0x187989===_0xde8b('0x42')){var _0x239fb1=_['map'](_0xe67577[_0xde8b('0x49')],'id');return _0xe67577['removeSmsInteractions'](_0x239fb1)['then'](function(){for(var _0x3b2678=0x0;_0x3b2678<_0x239fb1['length'];_0x3b2678+=0x1){_0x429cc2[_0xde8b('0x44')](_0xde8b('0x4a'),{'SmsInteractionId':Number(_0x239fb1[_0x3b2678]),'UserId':Number(_0xe67577['id'])});}});}})[_0xde8b('0xd')](function(){if(_0x187989===_0xde8b('0x42')){var _0x30d1f6=_['map'](_0xe67577[_0xde8b('0x4b')],'id');return _0xe67577[_0xde8b('0x4c')](_0x30d1f6)[_0xde8b('0xd')](function(){for(var _0x160a0f=0x0;_0x160a0f<_0x30d1f6[_0xde8b('0x1c')];_0x160a0f+=0x1){_0x429cc2[_0xde8b('0x44')](_0xde8b('0x4d'),{'OpenchannelInteractionId':Number(_0x30d1f6[_0x160a0f]),'UserId':Number(_0xe67577['id'])});}});}})[_0xde8b('0x4e')](function(_0x55cc91){_0x1a1369[_0xde8b('0x4f')](_0x55cc91);});}}function onDisconnect(_0x4322dc,_0xb51724){joinOrLeave(_0x4322dc,_0xde8b('0x42'),_0xb51724);}function onConnect(_0x3d590a){joinOrLeave(_0x3d590a,_0xde8b('0x50'));}exports[_0xde8b('0x51')]=function(_0x5d0462){_0x5d0462['on'](_0xde8b('0x52'),function(_0x122d1d){_0x122d1d[_0xde8b('0x53')](0x0);_0x122d1d[_0xde8b('0x54')]=_0x122d1d[_0xde8b('0x55')]['connection']['remoteAddress']+':'+_0x122d1d[_0xde8b('0x55')][_0xde8b('0x52')][_0xde8b('0x56')];_0x122d1d[_0xde8b('0x57')]=new Date();_0x122d1d[_0xde8b('0x4f')]=function(_0x56718a){console[_0xde8b('0x4f')](_0xde8b('0x58')+_0x122d1d[_0xde8b('0x59')]['name']+'['+_0x122d1d[_0xde8b('0x54')]+']',_0x56718a);};_0x122d1d['on'](_0xde8b('0x5a'),function(){onDisconnect(_0x122d1d,_0x5d0462);_0x122d1d[_0xde8b('0x4f')](_0xde8b('0x5b'));});onConnect(_0x122d1d);_0x122d1d[_0xde8b('0x4f')]('CONNECTED');});};