65716e9fe10306f516c7d2836c2e3df1353ea29a
[motion2.git] / server / api / realtime / realtime.controller.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 _0x2ef3=['originated','agents','find','merge','pick','getAgents','online','getMembers','length','UserId','push','User','Pause','agent','all','catch','util','lodash','jayson/promise','../../components/parsers/qs','../../config/logger','api','client','http','offset','undefined','limit','count','status','set','json','error','stack','getQueues','openchannel','fax','whatsapp','resolve','query','channel','toLowerCase','Invalid\x20channel','Queue','rawAttributes','fieldName','getOptions','user','role','type','outbound','QueueCampaigns','startCase','Queues','name','filter','UserProfile','findAndCountAll','then','voice','format','Unable\x20to\x20retrieve\x20RPC\x20%s\x20queues','result','loggedIn','available','talking','paused','pTalking','message','dialActive','dialMethod','Trunk','startPredictive','startProgressive','erlangBusyFactor','dialPredictiveInterval','dialPredictiveIntervalMaxThreshold','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalAvgTalktime','rows','map','get','loggedInDb','waiting'];(function(_0x91384,_0x545eef){var _0x44daa0=function(_0x5a0cc5){while(--_0x5a0cc5){_0x91384['push'](_0x91384['shift']());}};_0x44daa0(++_0x545eef);}(_0x2ef3,0xba));var _0x32ef=function(_0x5837d4,_0x41fd33){_0x5837d4=_0x5837d4-0x0;var _0x21d2ae=_0x2ef3[_0x5837d4];return _0x21d2ae;};'use strict';var util=require(_0x32ef('0x0'));var _=require(_0x32ef('0x1'));var jayson=require(_0x32ef('0x2'));var qs=require(_0x32ef('0x3'));var logger=require(_0x32ef('0x4'))(_0x32ef('0x5'));var db=require('../../mysqldb')['db'];var client=jayson[_0x32ef('0x6')][_0x32ef('0x7')]({'port':0x232a});var routingClient=jayson['client'][_0x32ef('0x7')]({'port':0x232c});function respondWithFilteredResult(_0x37dd1d,_0x4c8104){return function(_0x5dfa09){if(_0x5dfa09){var _0x2c0089=typeof _0x4c8104[_0x32ef('0x8')]===_0x32ef('0x9')&&typeof _0x4c8104[_0x32ef('0xa')]===_0x32ef('0x9');var _0x298066=_0x5dfa09[_0x32ef('0xb')];var _0x2bbb50=_0x2c0089?0x0:_0x4c8104[_0x32ef('0x8')];var _0x77df79=_0x2c0089?_0x5dfa09['count']:_0x4c8104['offset']+_0x4c8104[_0x32ef('0xa')];var _0x33281d;if(_0x77df79>=_0x298066){_0x77df79=_0x298066;_0x33281d=0xc8;}else{_0x33281d=0xce;}_0x37dd1d[_0x32ef('0xc')](_0x33281d);return _0x37dd1d[_0x32ef('0xd')]('Content-Range',_0x2bbb50+'-'+_0x77df79+'/'+_0x298066)[_0x32ef('0xe')](_0x5dfa09);}return null;};}function handleError(_0x5afcc2,_0x1a5106){_0x1a5106=_0x1a5106||0x1f4;return function(_0x49d590){logger[_0x32ef('0xf')](_0x49d590[_0x32ef('0x10')]);if(_0x49d590['name']){delete _0x49d590['name'];}_0x5afcc2[_0x32ef('0xc')](_0x1a5106)['send'](_0x49d590);};}exports[_0x32ef('0x11')]=function(_0x40a6e6,_0x93d492){var _0x54c7f5=['mail','chat','sms',_0x32ef('0x12'),_0x32ef('0x13'),_0x32ef('0x14'),'voice'];var _0x5d559b={'count':0x0,'rows':[]},_0x1eb468={},_0x1a9476;Promise[_0x32ef('0x15')]()['then'](function(){if(_0x40a6e6[_0x32ef('0x16')][_0x32ef('0x17')]){if(!_['includes'](_0x54c7f5,_0x40a6e6[_0x32ef('0x16')][_0x32ef('0x17')][_0x32ef('0x18')]()))throw new Error(_0x32ef('0x19'));_0x1a9476=_0x40a6e6[_0x32ef('0x16')][_0x32ef('0x17')]['toLowerCase']();}var _0x3c5b78=_['startCase'](_0x1a9476)+_0x32ef('0x1a');var _0x3a20ca=_['map'](db[_0x3c5b78][_0x32ef('0x1b')],function(_0x97780){return{'name':_0x97780[_0x32ef('0x1c')],'type':_0x97780['type']['key']};});_0x1eb468=qs[_0x32ef('0x1d')](_0x3a20ca,_0x40a6e6);if(_0x40a6e6[_0x32ef('0x1e')][_0x32ef('0x1f')]==='user'){var _0x59585f={'params':{'id':_0x40a6e6[_0x32ef('0x1e')]['userProfileId']},'query':{'section':_0x1a9476==='voice'&&_0x40a6e6[_0x32ef('0x16')][_0x32ef('0x20')]===_0x32ef('0x21')?_0x32ef('0x22'):_[_0x32ef('0x23')](_0x1a9476)+_0x32ef('0x24'),'type':_0x40a6e6[_0x32ef('0x16')][_0x32ef('0x20')],'nolimit':!![],'sort':_0x32ef('0x25'),'filter':_0x40a6e6[_0x32ef('0x16')][_0x32ef('0x26')]}};return db[_0x32ef('0x27')]['getResources'](_0x59585f);}return db[_0x3c5b78][_0x32ef('0x28')](_0x1eb468);})[_0x32ef('0x29')](function(_0x5a04cd){_0x5d559b[_0x32ef('0xb')]=_0x5a04cd[_0x32ef('0xb')];var _0x30b250=_0x1a9476===_0x32ef('0x2a')?client:routingClient;return _0x30b250['request'](_[_0x32ef('0x23')](_0x1a9476)+_0x32ef('0x24'),_0x40a6e6)[_0x32ef('0x29')](function(_0x2ac686){if(_0x2ac686[_0x32ef('0xf')])throw new Error(util[_0x32ef('0x2b')](_0x32ef('0x2c'),_0x1a9476));var _0x575f3e=_0x2ac686[_0x32ef('0x2d')];var _0x537214=[_0x32ef('0x2e'),_0x32ef('0x2f'),'waiting',_0x32ef('0x30'),_0x32ef('0x31')];if(_0x1a9476===_0x32ef('0x2a')&&_0x40a6e6[_0x32ef('0x16')][_0x32ef('0x20')]==='outbound'){_0x537214['push'](_0x32ef('0x32'),'originated',_0x32ef('0x33'),_0x32ef('0x34'),_0x32ef('0x35'),_0x32ef('0x36'),_0x32ef('0x37'),_0x32ef('0x38'),'erlangCalls','erlangCallToSecond','erlangAbandonmentRate',_0x32ef('0x39'),_0x32ef('0x3a'),_0x32ef('0x3b'),'dialPredictiveIntervalMinThreshold','predictiveIntervalAvailable',_0x32ef('0x3c'),_0x32ef('0x3d'),_0x32ef('0x3e'),'predictiveIntervalDroppedCallsCallersExit','predictiveIntervalAvgHoldtime',_0x32ef('0x3f'));}var _0x21706f=_0x5a04cd[_0x32ef('0x40')][_0x32ef('0x41')](function(_0x3a7c49){var _0x211c79=_0x3a7c49[_0x32ef('0x42')]({'plain':!![]});_0x211c79[_0x32ef('0x31')]=0x0;_0x211c79[_0x32ef('0x43')]=0x0;_0x211c79['loggedIn']=0x0;_0x211c79[_0x32ef('0x2f')]=0x0;_0x211c79[_0x32ef('0x31')]=0x0;_0x211c79[_0x32ef('0x44')]=0x0;if(_0x1a9476==='voice'){_0x211c79[_0x32ef('0x30')]=0x0;if(_0x40a6e6[_0x32ef('0x16')][_0x32ef('0x20')]===_0x32ef('0x21')){_0x211c79[_0x32ef('0x32')]=0x0;_0x211c79[_0x32ef('0x45')]=0x0;}}_0x211c79[_0x32ef('0x46')]=[];var _0x1cebed=_[_0x32ef('0x47')](_0x575f3e[_0x32ef('0x40')],['id',_0x211c79['id']]);if(_0x1cebed)_[_0x32ef('0x48')](_0x211c79,_[_0x32ef('0x49')](_0x1cebed,_0x537214));if(_0x1a9476==='voice'){return _0x3a7c49[_0x32ef('0x4a')]({'attributes':['id',_0x32ef('0x25'),_0x32ef('0x4b')],'joinTableAttributes':[],'raw':!![]})[_0x32ef('0x29')](function(_0x2f92f5){return _0x3a7c49[_0x32ef('0x4c')]({'raw':!![]})[_0x32ef('0x29')](function(_0x596d5a){for(var _0x538758=0x0;_0x538758<_0x2f92f5[_0x32ef('0x4d')];_0x538758++){var _0x13e158=_[_0x32ef('0x47')](_0x596d5a,[_0x32ef('0x4e'),_0x2f92f5[_0x538758]['id']]);var _0x5dca14={'id':_0x2f92f5[_0x538758]['id'],'name':_0x2f92f5[_0x538758][_0x32ef('0x25')],'online':Boolean(_0x2f92f5[_0x538758][_0x32ef('0x4b')]),'paused':_0x13e158?Boolean(_0x13e158['paused']):![]};if(_0x5dca14[_0x32ef('0x4b')])_0x211c79['loggedInDb']++;if(_0x5dca14[_0x32ef('0x31')])_0x211c79[_0x32ef('0x31')]++;_0x211c79[_0x32ef('0x46')][_0x32ef('0x4f')](_0x5dca14);}return _0x211c79;});});}else{var _0x2c2b62=_0x32ef('0x50')+_[_0x32ef('0x23')](_0x1a9476)+_0x32ef('0x1a');var _0x3de659=_0x1a9476+_0x32ef('0x51');return db[_0x2c2b62]['findAll']({'where':{[_[_0x32ef('0x23')](_0x1a9476)+'QueueId']:_0x3a7c49['id']},'raw':!![]})[_0x32ef('0x29')](function(_0x33c25b){return db[_0x32ef('0x50')]['findAll']({'attributes':['id',_0x32ef('0x25'),_0x32ef('0x4b'),_0x3de659],'where':{'id':_[_0x32ef('0x41')](_0x33c25b,_0x32ef('0x4e')),'role':_0x32ef('0x52')},'raw':!![]});})[_0x32ef('0x29')](function(_0x12c9e6){for(var _0x47dbe1=0x0;_0x47dbe1<_0x12c9e6['length'];_0x47dbe1++){var _0x36252c={'id':_0x12c9e6[_0x47dbe1]['id'],'name':_0x12c9e6[_0x47dbe1][_0x32ef('0x25')],'online':Boolean(_0x12c9e6[_0x47dbe1][_0x32ef('0x4b')]),'paused':Boolean(_0x12c9e6[_0x47dbe1][_0x3de659])};if(_0x36252c[_0x32ef('0x4b')])_0x211c79[_0x32ef('0x43')]++;if(_0x36252c[_0x32ef('0x31')])_0x211c79[_0x32ef('0x31')]++;_0x211c79[_0x32ef('0x46')][_0x32ef('0x4f')](_0x36252c);}return _0x211c79;});}});return Promise[_0x32ef('0x53')](_0x21706f);});})[_0x32ef('0x29')](function(_0x30ad49){_0x5d559b[_0x32ef('0x40')]=_0x30ad49;return _0x5d559b;})['then'](respondWithFilteredResult(_0x93d492,_0x1eb468))[_0x32ef('0x54')](handleError(_0x93d492,null));};