Built motion from commit (unavailable).|2.5.14
[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 _0xac65=['VoiceQueues','ChatQueues','FaxQueues','SmsQueues','MailQueues','OpenchannelQueues','WhatsappQueues','findAll','Telephones','Trunks','IvrCampaigns','UserProfileResource','resourceId','map','User','Campaign','where','format','%s:queue:%s','user:%s','handshake','query','find','userProfileId','ChatInteraction','MailInteraction','FaxInteraction','FaxInteractions','SmsInteractions','WhatsappInteraction','voice:inbound','hasOwnProperty','include','VoiceQueue','push','ChatQueue','SmsQueue','MailQueue','WhatsappQueue','voice:outbound','OpenchannelQueue','Trunk','getVoiceQueues','getFaxQueues','getMailQueues','getWhatsappQueues','length','chat','fax','sms','mail','whatsapp','telephone:%s','trunk:%s','campaign:%s:%s','leave','removeChatInteractions','emit','user_has_chat_interactions:remove','MailInteractions','removeMailInteractions','user_has_mail_interactions:remove','removeFaxInteractions','user_has_fax_interactions:remove','user_has_sms_interactions:remove','OpenchannelInteractions','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','WhatsappInteractions','user_has_whatsapp_interactions:remove','catch','log','join','default','connection','setMaxListeners','address','request','remoteAddress','remotePort','connectedAt','SocketIO\x20','disconnect','DISCONNECTED','CONNECTED','lodash','util','bluebird','./environment','name','Agents','role','agent','telephone','type','ivr','UserProfileSection','findOne','then','autoAssociation'];(function(_0x4b4b4e,_0x341f0c){var _0xf1a943=function(_0x36fb59){while(--_0x36fb59){_0x4b4b4e['push'](_0x4b4b4e['shift']());}};_0xf1a943(++_0x341f0c);}(_0xac65,0x11d));var _0x5ac6=function(_0x4a1c8f,_0x53af36){_0x4a1c8f=_0x4a1c8f-0x0;var _0x1f148f=_0xac65[_0x4a1c8f];return _0x1f148f;};'use strict';var _=require(_0x5ac6('0x0'));var util=require(_0x5ac6('0x1'));var BPromise=require(_0x5ac6('0x2'));var db=require('../mysqldb')['db'];var config=require(_0x5ac6('0x3'));var queryQueues={'attributes':['id',_0x5ac6('0x4')],'include':[{'as':_0x5ac6('0x5'),'model':db['User'],'attributes':['id',_0x5ac6('0x4'),_0x5ac6('0x6')],'raw':!![],'where':{'role':_0x5ac6('0x7')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id','name'],'where':{'role':_0x5ac6('0x8')}};var queryTrunks={'raw':!![],'attributes':['id',_0x5ac6('0x4')]};var queryAgents={'raw':!![],'attributes':['id',_0x5ac6('0x4')],'where':{'role':_0x5ac6('0x7')}};var queryCampaigns={'raw':!![],'attributes':['id',_0x5ac6('0x4'),_0x5ac6('0x9')],'where':{'type':_0x5ac6('0xa')}};function getAssociatedResources(_0x4609fb,_0x1006ff,_0x3b04ab){return db[_0x5ac6('0xb')][_0x5ac6('0xc')]({'where':{'name':_0x4609fb,'userProfileId':_0x1006ff},'raw':!![]})[_0x5ac6('0xd')](function(_0x40a152){if(_0x40a152){if(_0x40a152[_0x5ac6('0xe')]){switch(_0x4609fb){case _0x5ac6('0xf'):case _0x5ac6('0x10'):case _0x5ac6('0x11'):case _0x5ac6('0x12'):case _0x5ac6('0x13'):case _0x5ac6('0x14'):case _0x5ac6('0x15'):return db[_0x3b04ab][_0x5ac6('0x16')](queryQueues);case _0x5ac6('0x17'):return db[_0x3b04ab][_0x5ac6('0x16')](queryTelephones);case _0x5ac6('0x18'):return db[_0x3b04ab]['findAll'](queryTrunks);case _0x5ac6('0x19'):return db[_0x3b04ab][_0x5ac6('0x16')](queryCampaigns);}}else{return db[_0x5ac6('0x1a')]['findAll']({'attributes':[_0x5ac6('0x1b')],'where':{'sectionId':_0x40a152['id']},'raw':!![]})[_0x5ac6('0xd')](function(_0x2db3af){if(_0x2db3af){var _0x158e9a={'where':{'id':_[_0x5ac6('0x1c')](_0x2db3af,'resourceId')},'raw':!![]};switch(_0x3b04ab){case _0x5ac6('0x1d'):_0x158e9a['where']['role']=_0x5ac6('0x8');break;case _0x5ac6('0x1e'):_0x158e9a[_0x5ac6('0x1f')][_0x5ac6('0x9')]=_0x5ac6('0xa');break;}return db[_0x3b04ab][_0x5ac6('0x16')](_0x158e9a);}else{return[];}});}}else{return[];}})[_0x5ac6('0xd')](function(_0x223441){return _0x223441;});}function joinOrLeaveQueues(_0x446733,_0x5a5bfa,_0xcb282a,_0x27d28e){_0x446733[_0x5a5bfa](util[_0x5ac6('0x20')](_0x5ac6('0x21'),_0xcb282a,_0x27d28e['name']));if(_0x27d28e[_0x5ac6('0x5')]){for(var _0x4fa376=0x0;_0x4fa376<_0x27d28e[_0x5ac6('0x5')]['length'];_0x4fa376+=0x1){_0x446733[_0x5a5bfa](util[_0x5ac6('0x20')](_0x5ac6('0x22'),_0x27d28e['Agents'][_0x4fa376][_0x5ac6('0x4')]));}}}function joinOrLeave(_0x270c8d,_0x52ba3f,_0x1c81e7){var _0x4c07d6;if(_0x270c8d[_0x5ac6('0x23')][_0x5ac6('0x24')]['id']){db[_0x5ac6('0x1d')][_0x5ac6('0x25')]({'attributes':['id',_0x5ac6('0x4'),_0x5ac6('0x6'),_0x5ac6('0x26')],'where':{'id':_0x270c8d['handshake'][_0x5ac6('0x24')]['id']},'include':[{'model':db[_0x5ac6('0x27')],'as':'ChatInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x5ac6('0x28')],'as':'MailInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x5ac6('0x29')],'as':_0x5ac6('0x2a'),'attributes':['id'],'raw':!![]},{'model':db['SmsInteraction'],'as':_0x5ac6('0x2b'),'attributes':['id'],'raw':!![]},{'model':db['OpenchannelInteraction'],'as':'OpenchannelInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x5ac6('0x2c')],'as':'WhatsappInteractions','attributes':['id'],'raw':!![]}]})[_0x5ac6('0xd')](function(_0x2c02f7){if(_0x2c02f7){_0x4c07d6=_0x2c02f7;_0x270c8d[_0x52ba3f](util['format']('user:%s',_0x2c02f7[_0x5ac6('0x4')]));var _0x591b0a=[];switch(_0x2c02f7[_0x5ac6('0x6')]){case'admin':_0x270c8d[_0x52ba3f](_0x5ac6('0x2d'));_0x270c8d[_0x52ba3f]('voice:outbound');if(queryQueues[_0x5ac6('0x2e')](_0x5ac6('0x2f'))){delete queryQueues[_0x5ac6('0x2f')];}_0x591b0a['push'](db[_0x5ac6('0x30')][_0x5ac6('0x16')](queryQueues));_0x591b0a[_0x5ac6('0x31')](db[_0x5ac6('0x32')][_0x5ac6('0x16')](queryQueues));_0x591b0a[_0x5ac6('0x31')](db['FaxQueue']['findAll'](queryQueues));_0x591b0a[_0x5ac6('0x31')](db[_0x5ac6('0x33')][_0x5ac6('0x16')](queryQueues));_0x591b0a[_0x5ac6('0x31')](db[_0x5ac6('0x34')][_0x5ac6('0x16')](queryQueues));_0x591b0a[_0x5ac6('0x31')](db['OpenchannelQueue'][_0x5ac6('0x16')](queryQueues));_0x591b0a[_0x5ac6('0x31')](db[_0x5ac6('0x35')][_0x5ac6('0x16')](queryQueues));_0x591b0a[_0x5ac6('0x31')](db[_0x5ac6('0x1d')][_0x5ac6('0x16')](queryTelephones));_0x591b0a[_0x5ac6('0x31')](db['Trunk'][_0x5ac6('0x16')](queryTrunks));_0x591b0a[_0x5ac6('0x31')](db['Campaign']['findAll'](queryCampaigns));_0x591b0a[_0x5ac6('0x31')](db[_0x5ac6('0x1d')][_0x5ac6('0x16')](queryAgents));break;case'user':_0x270c8d[_0x52ba3f](_0x5ac6('0x2d'));_0x270c8d[_0x52ba3f](_0x5ac6('0x36'));_0x591b0a[_0x5ac6('0x31')](getAssociatedResources('VoiceQueues',_0x2c02f7[_0x5ac6('0x26')],'VoiceQueue'));_0x591b0a['push'](getAssociatedResources('ChatQueues',_0x2c02f7[_0x5ac6('0x26')],_0x5ac6('0x32')));_0x591b0a[_0x5ac6('0x31')](getAssociatedResources(_0x5ac6('0x11'),_0x2c02f7[_0x5ac6('0x26')],'FaxQueue'));_0x591b0a['push'](getAssociatedResources(_0x5ac6('0x12'),_0x2c02f7[_0x5ac6('0x26')],_0x5ac6('0x33')));_0x591b0a[_0x5ac6('0x31')](getAssociatedResources(_0x5ac6('0x13'),_0x2c02f7[_0x5ac6('0x26')],'MailQueue'));_0x591b0a[_0x5ac6('0x31')](getAssociatedResources('OpenchannelQueues',_0x2c02f7['userProfileId'],_0x5ac6('0x37')));_0x591b0a[_0x5ac6('0x31')](getAssociatedResources(_0x5ac6('0x15'),_0x2c02f7[_0x5ac6('0x26')],_0x5ac6('0x35')));_0x591b0a[_0x5ac6('0x31')](getAssociatedResources(_0x5ac6('0x17'),_0x2c02f7[_0x5ac6('0x26')],_0x5ac6('0x1d')));_0x591b0a['push'](getAssociatedResources(_0x5ac6('0x18'),_0x2c02f7[_0x5ac6('0x26')],_0x5ac6('0x38')));_0x591b0a[_0x5ac6('0x31')](getAssociatedResources(_0x5ac6('0x19'),_0x2c02f7['userProfileId'],_0x5ac6('0x1e')));_0x591b0a[_0x5ac6('0x31')](db[_0x5ac6('0x1d')][_0x5ac6('0x16')](queryAgents));break;case'agent':_0x270c8d[_0x52ba3f]('voice:inbound');_0x270c8d[_0x52ba3f](_0x5ac6('0x36'));_0x591b0a[_0x5ac6('0x31')](_0x2c02f7[_0x5ac6('0x39')]({'attributes':['id','name']}));_0x591b0a[_0x5ac6('0x31')](_0x2c02f7['getChatQueues']({'attributes':['id',_0x5ac6('0x4')]}));_0x591b0a['push'](_0x2c02f7[_0x5ac6('0x3a')]({'attributes':['id',_0x5ac6('0x4')]}));_0x591b0a[_0x5ac6('0x31')](_0x2c02f7['getSmsQueues']({'attributes':['id','name']}));_0x591b0a[_0x5ac6('0x31')](_0x2c02f7[_0x5ac6('0x3b')]({'attributes':['id','name']}));_0x591b0a[_0x5ac6('0x31')](_0x2c02f7['getOpenchannelQueues']({'attributes':['id','name']}));_0x591b0a[_0x5ac6('0x31')](_0x2c02f7[_0x5ac6('0x3c')]({'attributes':['id',_0x5ac6('0x4')]}));break;}return BPromise['all'](_0x591b0a);}})[_0x5ac6('0xd')](function(_0x13b7d9){if(_0x13b7d9&&_0x13b7d9[_0x5ac6('0x3d')]){for(var _0x407dc4=0x0;_0x407dc4<_0x13b7d9['length'];_0x407dc4+=0x1){for(var _0x2ea720=0x0;_0x2ea720<_0x13b7d9[_0x407dc4][_0x5ac6('0x3d')];_0x2ea720+=0x1){switch(_0x407dc4){case 0x0:joinOrLeaveQueues(_0x270c8d,_0x52ba3f,'voice',_0x13b7d9[_0x407dc4][_0x2ea720]);break;case 0x1:joinOrLeaveQueues(_0x270c8d,_0x52ba3f,_0x5ac6('0x3e'),_0x13b7d9[_0x407dc4][_0x2ea720]);break;case 0x2:joinOrLeaveQueues(_0x270c8d,_0x52ba3f,_0x5ac6('0x3f'),_0x13b7d9[_0x407dc4][_0x2ea720]);break;case 0x3:joinOrLeaveQueues(_0x270c8d,_0x52ba3f,_0x5ac6('0x40'),_0x13b7d9[_0x407dc4][_0x2ea720]);break;case 0x4:joinOrLeaveQueues(_0x270c8d,_0x52ba3f,_0x5ac6('0x41'),_0x13b7d9[_0x407dc4][_0x2ea720]);break;case 0x5:joinOrLeaveQueues(_0x270c8d,_0x52ba3f,'openchannel',_0x13b7d9[_0x407dc4][_0x2ea720]);break;case 0x6:joinOrLeaveQueues(_0x270c8d,_0x52ba3f,_0x5ac6('0x42'),_0x13b7d9[_0x407dc4][_0x2ea720]);break;case 0x7:_0x270c8d[_0x52ba3f](util[_0x5ac6('0x20')](_0x5ac6('0x43'),_0x13b7d9[_0x407dc4][_0x2ea720][_0x5ac6('0x4')]));break;case 0x8:_0x270c8d[_0x52ba3f](util['format'](_0x5ac6('0x44'),_0x13b7d9[_0x407dc4][_0x2ea720][_0x5ac6('0x4')]));break;case 0x9:_0x270c8d[_0x52ba3f](util[_0x5ac6('0x20')](_0x5ac6('0x45'),_0x13b7d9[_0x407dc4][_0x2ea720][_0x5ac6('0x9')],_0x13b7d9[_0x407dc4][_0x2ea720][_0x5ac6('0x4')]));break;case 0xa:_0x270c8d[_0x52ba3f](util['format'](_0x5ac6('0x22'),_0x13b7d9[_0x407dc4][_0x2ea720]['name']));break;}}}}})['then'](function(){if(_0x52ba3f===_0x5ac6('0x46')){var _0x288410=_[_0x5ac6('0x1c')](_0x4c07d6['ChatInteractions'],'id');return _0x4c07d6[_0x5ac6('0x47')](_0x288410)[_0x5ac6('0xd')](function(){for(var _0xb07b84=0x0;_0xb07b84<_0x288410[_0x5ac6('0x3d')];_0xb07b84+=0x1){_0x1c81e7[_0x5ac6('0x48')](_0x5ac6('0x49'),{'ChatInteractionId':Number(_0x288410[_0xb07b84]),'UserId':Number(_0x4c07d6['id'])});}});}})[_0x5ac6('0xd')](function(){if(_0x52ba3f===_0x5ac6('0x46')){var _0x15995c=_[_0x5ac6('0x1c')](_0x4c07d6[_0x5ac6('0x4a')],'id');return _0x4c07d6[_0x5ac6('0x4b')](_0x15995c)[_0x5ac6('0xd')](function(){for(var _0x4ca920=0x0;_0x4ca920<_0x15995c[_0x5ac6('0x3d')];_0x4ca920+=0x1){_0x1c81e7[_0x5ac6('0x48')](_0x5ac6('0x4c'),{'MailInteractionId':Number(_0x15995c[_0x4ca920]),'UserId':Number(_0x4c07d6['id'])});}});}})[_0x5ac6('0xd')](function(){if(_0x52ba3f===_0x5ac6('0x46')){var _0x1dea96=_[_0x5ac6('0x1c')](_0x4c07d6[_0x5ac6('0x2a')],'id');return _0x4c07d6[_0x5ac6('0x4d')](_0x1dea96)[_0x5ac6('0xd')](function(){for(var _0x7672ef=0x0;_0x7672ef<_0x1dea96[_0x5ac6('0x3d')];_0x7672ef+=0x1){_0x1c81e7[_0x5ac6('0x48')](_0x5ac6('0x4e'),{'FaxInteractionId':Number(_0x1dea96[_0x7672ef]),'UserId':Number(_0x4c07d6['id'])});}});}})[_0x5ac6('0xd')](function(){if(_0x52ba3f===_0x5ac6('0x46')){var _0x30dc6f=_[_0x5ac6('0x1c')](_0x4c07d6[_0x5ac6('0x2b')],'id');return _0x4c07d6['removeSmsInteractions'](_0x30dc6f)['then'](function(){for(var _0x3e153c=0x0;_0x3e153c<_0x30dc6f[_0x5ac6('0x3d')];_0x3e153c+=0x1){_0x1c81e7['emit'](_0x5ac6('0x4f'),{'SmsInteractionId':Number(_0x30dc6f[_0x3e153c]),'UserId':Number(_0x4c07d6['id'])});}});}})[_0x5ac6('0xd')](function(){if(_0x52ba3f===_0x5ac6('0x46')){var _0x3b099b=_[_0x5ac6('0x1c')](_0x4c07d6[_0x5ac6('0x50')],'id');return _0x4c07d6[_0x5ac6('0x51')](_0x3b099b)[_0x5ac6('0xd')](function(){for(var _0x14340a=0x0;_0x14340a<_0x3b099b['length'];_0x14340a+=0x1){_0x1c81e7['emit'](_0x5ac6('0x52'),{'OpenchannelInteractionId':Number(_0x3b099b[_0x14340a]),'UserId':Number(_0x4c07d6['id'])});}});}})[_0x5ac6('0xd')](function(){if(_0x52ba3f==='leave'){var _0x3059ee=_[_0x5ac6('0x1c')](_0x4c07d6[_0x5ac6('0x53')],'id');return _0x4c07d6['removeWhatsappInteractions'](_0x3059ee)[_0x5ac6('0xd')](function(){for(var _0x467d2e=0x0;_0x467d2e<_0x3059ee[_0x5ac6('0x3d')];_0x467d2e+=0x1){_0x1c81e7[_0x5ac6('0x48')](_0x5ac6('0x54'),{'WhatsappInteractionId':Number(_0x3059ee[_0x467d2e]),'UserId':Number(_0x4c07d6['id'])});}});}})[_0x5ac6('0x55')](function(_0x3417c5){_0x270c8d[_0x5ac6('0x56')](_0x3417c5);});}}function onDisconnect(_0xf68c82,_0x3a2f4b){joinOrLeave(_0xf68c82,_0x5ac6('0x46'),_0x3a2f4b);}function onConnect(_0x1c4e4c){joinOrLeave(_0x1c4e4c,_0x5ac6('0x57'));}exports[_0x5ac6('0x58')]=function(_0x5eebe1){_0x5eebe1['on'](_0x5ac6('0x59'),function(_0x31a410){_0x31a410[_0x5ac6('0x5a')](0x0);_0x31a410[_0x5ac6('0x5b')]=_0x31a410[_0x5ac6('0x5c')][_0x5ac6('0x59')][_0x5ac6('0x5d')]+':'+_0x31a410[_0x5ac6('0x5c')][_0x5ac6('0x59')][_0x5ac6('0x5e')];_0x31a410[_0x5ac6('0x5f')]=new Date();_0x31a410[_0x5ac6('0x56')]=function(_0xecf294){console[_0x5ac6('0x56')](_0x5ac6('0x60')+_0x31a410['nsp'][_0x5ac6('0x4')]+'['+_0x31a410[_0x5ac6('0x5b')]+']',_0xecf294);};_0x31a410['on'](_0x5ac6('0x61'),function(){onDisconnect(_0x31a410,_0x5eebe1);_0x31a410[_0x5ac6('0x56')](_0x5ac6('0x62'));});onConnect(_0x31a410);_0x31a410[_0x5ac6('0x56')](_0x5ac6('0x63'));});};