Built motion from commit ae138b72.|2.6.28
[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 _0x56d5=['getQueues','resolve','format','Channel\x20parameter\x20%s\x20is\x20invalid','Queue','rawAttributes','key','name','voice','dialMethod','join','QueueCampaigns','startCase','Queues','filter','UserProfile','getRealtimeQueues','initializeQueues','lodash','../../components/realtime/agents','../../components/realtime/queues','../../components/parsers/qs','../../config/utils','../../mysqldb','APIBadRequestError','../../errors/api','limit','undefined','offset','count','json','query','globalQueueFilter','globalStatusFilter','pause','*pause','then','channel','isValidChannel','toLowerCase','sort','includes','globalStatus','validateSortParameter','getUpdatedSortOptions','fields','order','getAgentIdsByQueues','getSortedAgentsIdsByStatus','getAgentIdsByStatus','map','User','fieldName','type','role','agent','getOptions','raw','length','push','sequelize','literal','FIELD(id,','forEach','Pause','where','merge','user','userProfileId','Agents','online','extraQueryConditions','assign','getResources','findAndCountAll','rows','find','filterAgentAttributes','getAgentStatus','talking','voiceStatus','Status','sortAgentsByStatus','getRealtimeAgentsQueryFields','pick','catch'];(function(_0x51f42c,_0x35889f){var _0x13ef7d=function(_0x368796){while(--_0x368796){_0x51f42c['push'](_0x51f42c['shift']());}};_0x13ef7d(++_0x35889f);}(_0x56d5,0xbe));var _0x556d=function(_0x14b688,_0x54013a){_0x14b688=_0x14b688-0x0;var _0x57e00b=_0x56d5[_0x14b688];return _0x57e00b;};'use strict';var _=require(_0x556d('0x0'));var util=require('util');var rta=require(_0x556d('0x1'));var rtq=require(_0x556d('0x2'));var qs=require(_0x556d('0x3'));var utils=require(_0x556d('0x4'));var db=require(_0x556d('0x5'))['db'];var APIBadRequestError=require('../../errors/api')[_0x556d('0x6')];var APIHandleError=require(_0x556d('0x7'))['handleError'];function respondWithFilteredResult(_0x538374,_0x58d6a7){return function(_0x2b7baf){if(_0x2b7baf){var _0x100178=typeof _0x58d6a7['offset']==='undefined'&&typeof _0x58d6a7[_0x556d('0x8')]===_0x556d('0x9');var _0x5bc37e=_0x2b7baf['count'];var _0x30b08f=_0x100178?0x0:_0x58d6a7[_0x556d('0xa')];var _0x305981=_0x100178?_0x2b7baf[_0x556d('0xb')]:_0x58d6a7[_0x556d('0xa')]+_0x58d6a7[_0x556d('0x8')];var _0x59c594;if(_0x305981>=_0x5bc37e){_0x305981=_0x5bc37e;_0x59c594=0xc8;}else{_0x59c594=0xce;}_0x538374['status'](_0x59c594);return _0x538374['set']('Content-Range',_0x30b08f+'-'+_0x305981+'/'+_0x5bc37e)[_0x556d('0xc')](_0x2b7baf);}return null;};}exports['getAgents']=function(_0x1a12dc,_0x1f9c37){var _0x2be02d={'count':0x0,'rows':[]};var _0x5e33c9={};var _0xed7e06;var _0x2ccf17=utils['getChannels']();var _0x17b273;var _0x2efbb9;var _0x22aaed=_0x1a12dc[_0x556d('0xd')][_0x556d('0xe')];var _0x224e91=_0x1a12dc[_0x556d('0xd')][_0x556d('0xf')];var _0x337e5a=_0x1a12dc[_0x556d('0xd')]['pauseTypeFilter'];var _0x999c40=_0x224e91===_0x556d('0x10')||_0x224e91===_0x556d('0x11')?!![]:![];var _0x37936f=[];var _0x5a8762;var _0x3dd2c9;Promise['resolve']()[_0x556d('0x12')](function(){if(_0x1a12dc[_0x556d('0xd')][_0x556d('0x13')]){if(!utils[_0x556d('0x14')](_0x1a12dc[_0x556d('0xd')][_0x556d('0x13')])){throw new APIBadRequestError(util['format']('Channel\x20parameter\x20%s\x20is\x20invalid',_0x1a12dc['query'][_0x556d('0x13')]));}_0xed7e06=_0x1a12dc[_0x556d('0xd')][_0x556d('0x13')][_0x556d('0x15')]();}if(!_0x1a12dc[_0x556d('0xd')][_0x556d('0x16')]||!_0x1a12dc[_0x556d('0xd')][_0x556d('0x16')][_0x556d('0x17')](_0x556d('0x18'))){_0x1a12dc[_0x556d('0xd')][_0x556d('0x16')]=rta[_0x556d('0x19')](_0x1a12dc['query'][_0x556d('0x16')]);return;}var _0x5927a4=rta[_0x556d('0x1a')](_0x1a12dc[_0x556d('0xd')][_0x556d('0x16')]);_0x1a12dc[_0x556d('0xd')]['sort']=_0x5927a4[_0x556d('0x1b')]['join'](',');_0x5a8762=_0x5927a4[_0x556d('0x1c')];})[_0x556d('0x12')](function(){if(!_0x22aaed){return[];}return rta[_0x556d('0x1d')](_0x22aaed,_0xed7e06);})[_0x556d('0x12')](function(_0x5cddb0){_0x37936f=_0x5cddb0;return rta['getRealtimeAgents']();})[_0x556d('0x12')](function(_0x34c7f9){_0x2efbb9=_0x34c7f9['rows'];if((!_0x224e91||_0x999c40)&&!_0x5a8762){return _0x37936f;}if(_0x5a8762&&!_0x224e91){return rta[_0x556d('0x1e')](_0x2efbb9,_0x37936f,_0x5a8762);}else{return rta[_0x556d('0x1f')](_0x2efbb9,_0x37936f,_0x224e91);}})[_0x556d('0x12')](function(_0x192257){_0x37936f=_0x192257;var _0x5895b4=![];if(_0x37936f['length']===0x0){if(_0x22aaed||_0x224e91){_0x5895b4=!![];}if(_0x999c40){_0x5895b4=![];}}if(_0x5895b4){return _0x2be02d;}var _0x19894d=_[_0x556d('0x20')](db[_0x556d('0x21')]['rawAttributes'],function(_0x3a93d1){return{'name':_0x3a93d1[_0x556d('0x22')],'type':_0x3a93d1[_0x556d('0x23')]['key']};});_0x1a12dc[_0x556d('0xd')][_0x556d('0x24')]=_0x556d('0x25');_0x5e33c9=qs[_0x556d('0x26')](_0x19894d,_0x1a12dc);_0x5e33c9[_0x556d('0x27')]=!![];var _0x3f099f=[];if(_0x37936f[_0x556d('0x28')]>0x0){_0x3f099f[_0x556d('0x29')]({'id':{'$in':_0x37936f}});if(_0x5a8762&&!_0x224e91){_0x3dd2c9=[db[_0x556d('0x2a')][_0x556d('0x2b')](_0x556d('0x2c')+_0x37936f+')')];_0x5e33c9[_0x556d('0x1c')]=_0x3dd2c9;}}if(_0x999c40){_0x2ccf17[_0x556d('0x2d')](function(_0x5f240b){var _0x1f3e8d=!![];if(_0x224e91===_0x556d('0x11')&&_0xed7e06!==_0x5f240b){_0x1f3e8d=![];}_0x3f099f[_0x556d('0x29')]({[_0x5f240b+_0x556d('0x2e')]:_0x1f3e8d});});if(_0x337e5a){_0x3f099f[_0x556d('0x29')]({'pauseType':_0x337e5a});}}else if(_0x224e91){_0x2ccf17['forEach'](function(_0x29e94a){_0x3f099f[_0x556d('0x29')]({[_0x29e94a+_0x556d('0x2e')]:![]});});}_0x5e33c9[_0x556d('0x2f')]=_[_0x556d('0x30')](_0x5e33c9[_0x556d('0x2f')],{'$and':_0x3f099f});if(_0x1a12dc['user'][_0x556d('0x24')]==='user'){var _0x403e9c={'params':{'id':_0x1a12dc[_0x556d('0x31')][_0x556d('0x32')]},'query':{'section':_0x556d('0x33'),'role':'agent','raw':!![],'ids':_0x37936f,'customSorting':_0x3dd2c9}};if(_0x1a12dc[_0x556d('0xd')][_0x556d('0x34')]){_0x403e9c[_0x556d('0xd')][_0x556d('0x34')]=!![];}if(_0x999c40){_0x403e9c['query'][_0x556d('0x35')]=_0x3f099f;}_0x403e9c[_0x556d('0xd')]=Object[_0x556d('0x36')](_0x403e9c['query'],_0x1a12dc[_0x556d('0xd')]);return db['UserProfile'][_0x556d('0x37')](_0x403e9c);}return db[_0x556d('0x21')][_0x556d('0x38')](_0x5e33c9);})[_0x556d('0x12')](function(_0x33bdd9){_0x2be02d[_0x556d('0xb')]=_0x33bdd9[_0x556d('0xb')];_0x17b273=_0x33bdd9[_0x556d('0x39')];return _0x17b273[_0x556d('0x20')](function(_0x285e39){var _0x3547f5=_[_0x556d('0x3a')](_0x2efbb9,['id',_0x285e39['id']]);if(_0x3547f5){var _0x3800b6=rta[_0x556d('0x3b')](_0x3547f5);_[_0x556d('0x30')](_0x285e39,_0x3800b6);}_0x285e39[_0x556d('0x18')]=rta[_0x556d('0x3c')](_0x285e39);if(_0x285e39[_0x556d('0x18')][_0x556d('0x17')]('pause')){_0x2ccf17[_0x556d('0x2d')](function(_0x338264){if(_0x285e39[_0x338264+_0x556d('0x2e')]){if(_0x338264==='voice'){if(_0x285e39['voiceStatus']!==_0x556d('0x3d')){_0x285e39[_0x556d('0x3e')]='pause';}}else{_0x285e39[_0x338264+_0x556d('0x3f')]='pause';}}});}return _0x285e39;});})[_0x556d('0x12')](function(_0x30d59c){if(!_0x5a8762||_0x3dd2c9){return _0x30d59c;}return rta[_0x556d('0x40')](_0x30d59c,_0x5a8762);})[_0x556d('0x12')](function(_0x3213e0){var _0x2ded53=rta[_0x556d('0x41')]();_0x2be02d[_0x556d('0x39')]=_0x3213e0[_0x556d('0x20')](function(_0x4e888d){return _[_0x556d('0x42')](_0x4e888d,_0x2ded53);});return _0x2be02d;})[_0x556d('0x12')](respondWithFilteredResult(_0x1f9c37,_0x5e33c9))[_0x556d('0x43')](APIHandleError(_0x1f9c37));};exports[_0x556d('0x44')]=function(_0x20ea45,_0x17e624){var _0xacef7b={'count':0x0,'rows':[]};var _0x42a416={};var _0x30fdfa;var _0x1a5f96;var _0x5d2911;Promise[_0x556d('0x45')]()[_0x556d('0x12')](function(){if(_0x20ea45[_0x556d('0xd')]['channel']){if(!utils['isValidChannel'](_0x20ea45['query'][_0x556d('0x13')])){throw new APIBadRequestError(util[_0x556d('0x46')](_0x556d('0x47'),_0x20ea45['query'][_0x556d('0x13')]));}_0x30fdfa=_0x20ea45[_0x556d('0xd')][_0x556d('0x13')]['toLowerCase']();}var _0x236c0b=_['startCase'](_0x30fdfa)+_0x556d('0x48');var _0x1b4299=_['map'](db[_0x236c0b][_0x556d('0x49')],function(_0x4cdde7){return{'name':_0x4cdde7['fieldName'],'type':_0x4cdde7[_0x556d('0x23')][_0x556d('0x4a')]};});if(!_0x20ea45['query'][_0x556d('0x1b')]){var _0x1f0cce=['id',_0x556d('0x4b')];if(_0x30fdfa===_0x556d('0x4c')){_0x1f0cce[_0x556d('0x29')](_0x556d('0x23'));if(_0x20ea45[_0x556d('0xd')][_0x556d('0x23')]==='outbound'){_0x1f0cce['push'](['dialActive',_0x556d('0x4d')]);}}_0x20ea45[_0x556d('0xd')][_0x556d('0x1b')]=_0x1f0cce[_0x556d('0x4e')](',');}_0x42a416=qs[_0x556d('0x26')](_0x1b4299,_0x20ea45);if(_0x20ea45[_0x556d('0x31')]['role']==='user'){var _0x4a1fb0={'params':{'id':_0x20ea45[_0x556d('0x31')]['userProfileId']},'query':{'section':_0x30fdfa==='voice'&&_0x20ea45[_0x556d('0xd')][_0x556d('0x23')]==='outbound'?_0x556d('0x4f'):_[_0x556d('0x50')](_0x30fdfa)+_0x556d('0x51'),'type':_0x20ea45['query'][_0x556d('0x23')],'nolimit':!![],'sort':_0x556d('0x4b'),'filter':_0x20ea45[_0x556d('0xd')][_0x556d('0x52')]}};_0x4a1fb0[_0x556d('0xd')]=Object[_0x556d('0x36')](_0x4a1fb0[_0x556d('0xd')],_0x20ea45[_0x556d('0xd')]);delete _0x4a1fb0[_0x556d('0xd')]['id'];return db[_0x556d('0x53')][_0x556d('0x37')](_0x4a1fb0);}return db[_0x236c0b][_0x556d('0x38')](_0x42a416);})[_0x556d('0x12')](function(_0x12dc11){_0xacef7b['count']=_0x12dc11['count'];_0x1a5f96=_0x12dc11[_0x556d('0x39')];return rtq[_0x556d('0x54')](_0x20ea45,_0x30fdfa);})[_0x556d('0x12')](function(_0x15a648){_0x5d2911=_0x15a648[_0x556d('0x39')];return rtq[_0x556d('0x55')](_0x1a5f96,_0x5d2911,_0x30fdfa,_0x20ea45[_0x556d('0xd')][_0x556d('0x23')]);})[_0x556d('0x12')](function(_0x3f8127){_0xacef7b[_0x556d('0x39')]=_0x3f8127;return _0xacef7b;})[_0x556d('0x12')](respondWithFilteredResult(_0x17e624,_0x42a416))[_0x556d('0x43')](APIHandleError(_0x17e624));};