Built motion from commit (unavailable).|2.5.23
[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 _0xffad=['push','ChatQueue','FaxQueue','SmsQueue','MailQueue','OpenchannelQueue','WhatsappQueue','User','Trunk','VoiceQueue','Campaign','voice:inbound','getVoiceQueues','getChatQueues','getFaxQueues','getSmsQueues','getMailQueues','getOpenchannelQueues','getWhatsappQueues','all','voice','chat','fax','mail','openchannel','whatsapp','telephone:%s','trunk:%s','campaign:%s:%s','leave','removeChatInteractions','user_has_chat_interactions:remove','removeMailInteractions','emit','user_has_mail_interactions:remove','removeSmsInteractions','user_has_sms_interactions:remove','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','catch','log','join','default','connection','address','request','remoteAddress','remotePort','connectedAt','SocketIO\x20','disconnect','DISCONNECTED','CONNECTED','lodash','util','../mysqldb','./environment','role','agent','telephone','name','type','ivr','UserProfileSection','findOne','then','VoiceQueues','ChatQueues','FaxQueues','SmsQueues','MailQueues','OpenchannelQueues','WhatsappQueues','findAll','Telephones','Trunks','IvrCampaigns','UserProfileResource','resourceId','map','%s:queue:%s','Agents','length','user:%s','handshake','query','find','userProfileId','ChatInteraction','ChatInteractions','MailInteraction','MailInteractions','FaxInteraction','FaxInteractions','SmsInteraction','SmsInteractions','OpenchannelInteraction','OpenchannelInteractions','WhatsappInteraction','WhatsappInteractions','format','admin','voice:outbound','include'];(function(_0x1cf135,_0x519b1c){var _0x588b36=function(_0x245b73){while(--_0x245b73){_0x1cf135['push'](_0x1cf135['shift']());}};_0x588b36(++_0x519b1c);}(_0xffad,0x175));var _0xdffa=function(_0x2059b2,_0x297359){_0x2059b2=_0x2059b2-0x0;var _0x31a4f7=_0xffad[_0x2059b2];return _0x31a4f7;};'use strict';var _=require(_0xdffa('0x0'));var util=require(_0xdffa('0x1'));var BPromise=require('bluebird');var db=require(_0xdffa('0x2'))['db'];var config=require(_0xdffa('0x3'));var queryQueues={'attributes':['id','name'],'include':[{'as':'Agents','model':db['User'],'attributes':['id','name',_0xdffa('0x4')],'raw':!![],'where':{'role':_0xdffa('0x5')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id','name'],'where':{'role':_0xdffa('0x6')}};var queryTrunks={'raw':!![],'attributes':['id',_0xdffa('0x7')]};var queryAgents={'raw':!![],'attributes':['id','name'],'where':{'role':_0xdffa('0x5')}};var queryCampaigns={'raw':!![],'attributes':['id',_0xdffa('0x7'),_0xdffa('0x8')],'where':{'type':_0xdffa('0x9')}};function getAssociatedResources(_0x38fae8,_0x4764f7,_0x4679f8){return db[_0xdffa('0xa')][_0xdffa('0xb')]({'where':{'name':_0x38fae8,'userProfileId':_0x4764f7},'raw':!![]})[_0xdffa('0xc')](function(_0x5badcb){if(_0x5badcb){if(_0x5badcb['autoAssociation']){switch(_0x38fae8){case _0xdffa('0xd'):case _0xdffa('0xe'):case _0xdffa('0xf'):case _0xdffa('0x10'):case _0xdffa('0x11'):case _0xdffa('0x12'):case _0xdffa('0x13'):return db[_0x4679f8][_0xdffa('0x14')](queryQueues);case _0xdffa('0x15'):return db[_0x4679f8]['findAll'](queryTelephones);case _0xdffa('0x16'):return db[_0x4679f8][_0xdffa('0x14')](queryTrunks);case _0xdffa('0x17'):return db[_0x4679f8][_0xdffa('0x14')](queryCampaigns);}}else{return db[_0xdffa('0x18')][_0xdffa('0x14')]({'attributes':[_0xdffa('0x19')],'where':{'sectionId':_0x5badcb['id']},'raw':!![]})[_0xdffa('0xc')](function(_0x465abc){if(_0x465abc){var _0x1423d9={'where':{'id':_[_0xdffa('0x1a')](_0x465abc,'resourceId')},'raw':!![]};switch(_0x4679f8){case'User':_0x1423d9['where']['role']=_0xdffa('0x6');break;case'Campaign':_0x1423d9['where']['type']=_0xdffa('0x9');break;}return db[_0x4679f8][_0xdffa('0x14')](_0x1423d9);}else{return[];}});}}else{return[];}})[_0xdffa('0xc')](function(_0x1ffd90){return _0x1ffd90;});}function joinOrLeaveQueues(_0x430b39,_0xa81358,_0x2fce46,_0x3fcc17){_0x430b39[_0xa81358](util['format'](_0xdffa('0x1b'),_0x2fce46,_0x3fcc17[_0xdffa('0x7')]));if(_0x3fcc17[_0xdffa('0x1c')]){for(var _0x50efba=0x0;_0x50efba<_0x3fcc17[_0xdffa('0x1c')][_0xdffa('0x1d')];_0x50efba+=0x1){_0x430b39[_0xa81358](util['format'](_0xdffa('0x1e'),_0x3fcc17[_0xdffa('0x1c')][_0x50efba][_0xdffa('0x7')]));}}}function joinOrLeave(_0x45eeb7,_0x5200b3,_0x1d6186){var _0x1e6068;if(_0x45eeb7[_0xdffa('0x1f')][_0xdffa('0x20')]['id']){db['User'][_0xdffa('0x21')]({'attributes':['id',_0xdffa('0x7'),'role',_0xdffa('0x22')],'where':{'id':_0x45eeb7[_0xdffa('0x1f')][_0xdffa('0x20')]['id']},'include':[{'model':db[_0xdffa('0x23')],'as':_0xdffa('0x24'),'attributes':['id'],'raw':!![]},{'model':db[_0xdffa('0x25')],'as':_0xdffa('0x26'),'attributes':['id'],'raw':!![]},{'model':db[_0xdffa('0x27')],'as':_0xdffa('0x28'),'attributes':['id'],'raw':!![]},{'model':db[_0xdffa('0x29')],'as':_0xdffa('0x2a'),'attributes':['id'],'raw':!![]},{'model':db[_0xdffa('0x2b')],'as':_0xdffa('0x2c'),'attributes':['id'],'raw':!![]},{'model':db[_0xdffa('0x2d')],'as':_0xdffa('0x2e'),'attributes':['id'],'raw':!![]}]})[_0xdffa('0xc')](function(_0x123c13){if(_0x123c13){_0x1e6068=_0x123c13;_0x45eeb7[_0x5200b3](util[_0xdffa('0x2f')](_0xdffa('0x1e'),_0x123c13[_0xdffa('0x7')]));var _0x37600c=[];switch(_0x123c13[_0xdffa('0x4')]){case _0xdffa('0x30'):_0x45eeb7[_0x5200b3]('voice:inbound');_0x45eeb7[_0x5200b3](_0xdffa('0x31'));if(queryQueues['hasOwnProperty'](_0xdffa('0x32'))){delete queryQueues[_0xdffa('0x32')];}_0x37600c[_0xdffa('0x33')](db['VoiceQueue'][_0xdffa('0x14')](queryQueues));_0x37600c[_0xdffa('0x33')](db[_0xdffa('0x34')]['findAll'](queryQueues));_0x37600c['push'](db[_0xdffa('0x35')][_0xdffa('0x14')](queryQueues));_0x37600c[_0xdffa('0x33')](db[_0xdffa('0x36')][_0xdffa('0x14')](queryQueues));_0x37600c[_0xdffa('0x33')](db[_0xdffa('0x37')]['findAll'](queryQueues));_0x37600c[_0xdffa('0x33')](db[_0xdffa('0x38')][_0xdffa('0x14')](queryQueues));_0x37600c['push'](db[_0xdffa('0x39')][_0xdffa('0x14')](queryQueues));_0x37600c['push'](db[_0xdffa('0x3a')][_0xdffa('0x14')](queryTelephones));_0x37600c['push'](db[_0xdffa('0x3b')][_0xdffa('0x14')](queryTrunks));_0x37600c['push'](db['Campaign']['findAll'](queryCampaigns));_0x37600c[_0xdffa('0x33')](db['User'][_0xdffa('0x14')](queryAgents));break;case'user':_0x45eeb7[_0x5200b3]('voice:inbound');_0x45eeb7[_0x5200b3]('voice:outbound');_0x37600c[_0xdffa('0x33')](getAssociatedResources(_0xdffa('0xd'),_0x123c13['userProfileId'],_0xdffa('0x3c')));_0x37600c[_0xdffa('0x33')](getAssociatedResources(_0xdffa('0xe'),_0x123c13[_0xdffa('0x22')],_0xdffa('0x34')));_0x37600c[_0xdffa('0x33')](getAssociatedResources(_0xdffa('0xf'),_0x123c13[_0xdffa('0x22')],'FaxQueue'));_0x37600c[_0xdffa('0x33')](getAssociatedResources(_0xdffa('0x10'),_0x123c13[_0xdffa('0x22')],_0xdffa('0x36')));_0x37600c[_0xdffa('0x33')](getAssociatedResources(_0xdffa('0x11'),_0x123c13[_0xdffa('0x22')],_0xdffa('0x37')));_0x37600c[_0xdffa('0x33')](getAssociatedResources(_0xdffa('0x12'),_0x123c13[_0xdffa('0x22')],'OpenchannelQueue'));_0x37600c[_0xdffa('0x33')](getAssociatedResources(_0xdffa('0x13'),_0x123c13['userProfileId'],_0xdffa('0x39')));_0x37600c[_0xdffa('0x33')](getAssociatedResources(_0xdffa('0x15'),_0x123c13[_0xdffa('0x22')],_0xdffa('0x3a')));_0x37600c[_0xdffa('0x33')](getAssociatedResources('Trunks',_0x123c13[_0xdffa('0x22')],_0xdffa('0x3b')));_0x37600c[_0xdffa('0x33')](getAssociatedResources(_0xdffa('0x17'),_0x123c13[_0xdffa('0x22')],_0xdffa('0x3d')));_0x37600c[_0xdffa('0x33')](db[_0xdffa('0x3a')][_0xdffa('0x14')](queryAgents));break;case _0xdffa('0x5'):_0x45eeb7[_0x5200b3](_0xdffa('0x3e'));_0x45eeb7[_0x5200b3](_0xdffa('0x31'));_0x37600c[_0xdffa('0x33')](_0x123c13[_0xdffa('0x3f')]({'attributes':['id',_0xdffa('0x7')]}));_0x37600c[_0xdffa('0x33')](_0x123c13[_0xdffa('0x40')]({'attributes':['id',_0xdffa('0x7')]}));_0x37600c[_0xdffa('0x33')](_0x123c13[_0xdffa('0x41')]({'attributes':['id',_0xdffa('0x7')]}));_0x37600c[_0xdffa('0x33')](_0x123c13[_0xdffa('0x42')]({'attributes':['id',_0xdffa('0x7')]}));_0x37600c[_0xdffa('0x33')](_0x123c13[_0xdffa('0x43')]({'attributes':['id',_0xdffa('0x7')]}));_0x37600c['push'](_0x123c13[_0xdffa('0x44')]({'attributes':['id',_0xdffa('0x7')]}));_0x37600c['push'](_0x123c13[_0xdffa('0x45')]({'attributes':['id',_0xdffa('0x7')]}));break;}return BPromise[_0xdffa('0x46')](_0x37600c);}})[_0xdffa('0xc')](function(_0x5233cc){if(_0x5233cc&&_0x5233cc[_0xdffa('0x1d')]){for(var _0x10cf35=0x0;_0x10cf35<_0x5233cc[_0xdffa('0x1d')];_0x10cf35+=0x1){for(var _0x54d37d=0x0;_0x54d37d<_0x5233cc[_0x10cf35]['length'];_0x54d37d+=0x1){switch(_0x10cf35){case 0x0:joinOrLeaveQueues(_0x45eeb7,_0x5200b3,_0xdffa('0x47'),_0x5233cc[_0x10cf35][_0x54d37d]);break;case 0x1:joinOrLeaveQueues(_0x45eeb7,_0x5200b3,_0xdffa('0x48'),_0x5233cc[_0x10cf35][_0x54d37d]);break;case 0x2:joinOrLeaveQueues(_0x45eeb7,_0x5200b3,_0xdffa('0x49'),_0x5233cc[_0x10cf35][_0x54d37d]);break;case 0x3:joinOrLeaveQueues(_0x45eeb7,_0x5200b3,'sms',_0x5233cc[_0x10cf35][_0x54d37d]);break;case 0x4:joinOrLeaveQueues(_0x45eeb7,_0x5200b3,_0xdffa('0x4a'),_0x5233cc[_0x10cf35][_0x54d37d]);break;case 0x5:joinOrLeaveQueues(_0x45eeb7,_0x5200b3,_0xdffa('0x4b'),_0x5233cc[_0x10cf35][_0x54d37d]);break;case 0x6:joinOrLeaveQueues(_0x45eeb7,_0x5200b3,_0xdffa('0x4c'),_0x5233cc[_0x10cf35][_0x54d37d]);break;case 0x7:if(_0x1e6068[_0xdffa('0x4')]!==_0xdffa('0x5'))_0x45eeb7[_0x5200b3](util['format'](_0xdffa('0x4d'),_0x5233cc[_0x10cf35][_0x54d37d][_0xdffa('0x7')]));break;case 0x8:if(_0x1e6068['role']!=='agent')_0x45eeb7[_0x5200b3](util['format'](_0xdffa('0x4e'),_0x5233cc[_0x10cf35][_0x54d37d][_0xdffa('0x7')]));break;case 0x9:if(_0x1e6068[_0xdffa('0x4')]!==_0xdffa('0x5'))_0x45eeb7[_0x5200b3](util['format'](_0xdffa('0x4f'),_0x5233cc[_0x10cf35][_0x54d37d][_0xdffa('0x8')],_0x5233cc[_0x10cf35][_0x54d37d]['name']));break;case 0xa:_0x45eeb7[_0x5200b3](util[_0xdffa('0x2f')](_0xdffa('0x1e'),_0x5233cc[_0x10cf35][_0x54d37d][_0xdffa('0x7')]));break;}}}}})[_0xdffa('0xc')](function(){if(_0x5200b3===_0xdffa('0x50')){var _0x2da914=_[_0xdffa('0x1a')](_0x1e6068[_0xdffa('0x24')],'id');return _0x1e6068[_0xdffa('0x51')](_0x2da914)[_0xdffa('0xc')](function(){for(var _0x4fa36a=0x0;_0x4fa36a<_0x2da914['length'];_0x4fa36a+=0x1){_0x1d6186['emit'](_0xdffa('0x52'),{'ChatInteractionId':Number(_0x2da914[_0x4fa36a]),'UserId':Number(_0x1e6068['id'])});}});}})[_0xdffa('0xc')](function(){if(_0x5200b3===_0xdffa('0x50')){var _0x489dfe=_[_0xdffa('0x1a')](_0x1e6068[_0xdffa('0x26')],'id');return _0x1e6068[_0xdffa('0x53')](_0x489dfe)[_0xdffa('0xc')](function(){for(var _0x5999be=0x0;_0x5999be<_0x489dfe[_0xdffa('0x1d')];_0x5999be+=0x1){_0x1d6186[_0xdffa('0x54')](_0xdffa('0x55'),{'MailInteractionId':Number(_0x489dfe[_0x5999be]),'UserId':Number(_0x1e6068['id'])});}});}})[_0xdffa('0xc')](function(){if(_0x5200b3===_0xdffa('0x50')){var _0x4d1535=_['map'](_0x1e6068[_0xdffa('0x28')],'id');return _0x1e6068['removeFaxInteractions'](_0x4d1535)[_0xdffa('0xc')](function(){for(var _0x30c74d=0x0;_0x30c74d<_0x4d1535['length'];_0x30c74d+=0x1){_0x1d6186[_0xdffa('0x54')]('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x4d1535[_0x30c74d]),'UserId':Number(_0x1e6068['id'])});}});}})['then'](function(){if(_0x5200b3===_0xdffa('0x50')){var _0x3caab9=_[_0xdffa('0x1a')](_0x1e6068[_0xdffa('0x2a')],'id');return _0x1e6068[_0xdffa('0x56')](_0x3caab9)[_0xdffa('0xc')](function(){for(var _0x4c61a=0x0;_0x4c61a<_0x3caab9[_0xdffa('0x1d')];_0x4c61a+=0x1){_0x1d6186[_0xdffa('0x54')](_0xdffa('0x57'),{'SmsInteractionId':Number(_0x3caab9[_0x4c61a]),'UserId':Number(_0x1e6068['id'])});}});}})[_0xdffa('0xc')](function(){if(_0x5200b3==='leave'){var _0x41b738=_[_0xdffa('0x1a')](_0x1e6068[_0xdffa('0x2c')],'id');return _0x1e6068[_0xdffa('0x58')](_0x41b738)[_0xdffa('0xc')](function(){for(var _0x57e590=0x0;_0x57e590<_0x41b738[_0xdffa('0x1d')];_0x57e590+=0x1){_0x1d6186[_0xdffa('0x54')](_0xdffa('0x59'),{'OpenchannelInteractionId':Number(_0x41b738[_0x57e590]),'UserId':Number(_0x1e6068['id'])});}});}})[_0xdffa('0xc')](function(){if(_0x5200b3===_0xdffa('0x50')){var _0x4b4148=_['map'](_0x1e6068[_0xdffa('0x2e')],'id');return _0x1e6068[_0xdffa('0x5a')](_0x4b4148)[_0xdffa('0xc')](function(){for(var _0x1dbad7=0x0;_0x1dbad7<_0x4b4148[_0xdffa('0x1d')];_0x1dbad7+=0x1){_0x1d6186[_0xdffa('0x54')](_0xdffa('0x5b'),{'WhatsappInteractionId':Number(_0x4b4148[_0x1dbad7]),'UserId':Number(_0x1e6068['id'])});}});}})[_0xdffa('0x5c')](function(_0x394172){_0x45eeb7[_0xdffa('0x5d')](_0x394172);});}}function onDisconnect(_0x1311e2,_0xdf07a5){joinOrLeave(_0x1311e2,_0xdffa('0x50'),_0xdf07a5);}function onConnect(_0x13948b){joinOrLeave(_0x13948b,_0xdffa('0x5e'));}exports[_0xdffa('0x5f')]=function(_0x4649e){_0x4649e['on'](_0xdffa('0x60'),function(_0x50e9cf){_0x50e9cf['setMaxListeners'](0x0);_0x50e9cf[_0xdffa('0x61')]=_0x50e9cf[_0xdffa('0x62')]['connection'][_0xdffa('0x63')]+':'+_0x50e9cf[_0xdffa('0x62')]['connection'][_0xdffa('0x64')];_0x50e9cf[_0xdffa('0x65')]=new Date();_0x50e9cf[_0xdffa('0x5d')]=function(_0x5c00de){console[_0xdffa('0x5d')](_0xdffa('0x66')+_0x50e9cf['nsp'][_0xdffa('0x7')]+'['+_0x50e9cf[_0xdffa('0x61')]+']',_0x5c00de);};_0x50e9cf['on'](_0xdffa('0x67'),function(){onDisconnect(_0x50e9cf,_0x4649e);_0x50e9cf[_0xdffa('0x5d')](_0xdffa('0x68'));});onConnect(_0x50e9cf);_0x50e9cf['log'](_0xdffa('0x69'));});};