Built motion from commit bab6f49e.|2.6.17
[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 _0x288a=['then','getAgentIdsByQueues','rows','getSortedAgentsIdsByStatus','getAgentIdsByStatus','length','map','User','rawAttributes','fieldName','type','key','role','online','getOptions','push','sequelize','literal','FIELD(id,','forEach','Pause','where','merge','user','userProfileId','Agents','extraQueryConditions','assign','UserProfile','getResources','find','filterAgentAttributes','getAgentStatus','voice','talking','voiceStatus','Status','sortAgentsByStatus','split','pick','resolve','startCase','Queue','dialActive','dialMethod','QueueCampaigns','Queues','name','findAndCountAll','getRealtimeQueues','initializeQueues','catch','util','../../components/realtime/agents','../../components/realtime/queues','../../components/parsers/qs','../../errors/api','handleError','offset','limit','undefined','count','status','set','json','getAgents','getChannels','query','globalQueueFilter','pauseTypeFilter','pause','*pause','channel','isValidChannel','format','Channel\x20parameter\x20%s\x20is\x20invalid','toLowerCase','sort','includes','globalStatus','validateSortParameter','getUpdatedSortOptions','fields','join','order'];(function(_0x2a32a1,_0x54c30b){var _0x1f8488=function(_0x26a9d6){while(--_0x26a9d6){_0x2a32a1['push'](_0x2a32a1['shift']());}};_0x1f8488(++_0x54c30b);}(_0x288a,0x188));var _0xa288=function(_0x12aff6,_0x10b777){_0x12aff6=_0x12aff6-0x0;var _0x58940c=_0x288a[_0x12aff6];return _0x58940c;};'use strict';var _=require('lodash');var util=require(_0xa288('0x0'));var rta=require(_0xa288('0x1'));var rtq=require(_0xa288('0x2'));var qs=require(_0xa288('0x3'));var utils=require('../../config/utils');var db=require('../../mysqldb')['db'];var APIBadRequestError=require(_0xa288('0x4'))['APIBadRequestError'];var APIHandleError=require(_0xa288('0x4'))[_0xa288('0x5')];function respondWithFilteredResult(_0x101598,_0x4ad8fb){return function(_0x1e2c4b){if(_0x1e2c4b){var _0xaee90c=typeof _0x4ad8fb[_0xa288('0x6')]==='undefined'&&typeof _0x4ad8fb[_0xa288('0x7')]===_0xa288('0x8');var _0x341d34=_0x1e2c4b[_0xa288('0x9')];var _0x1a0c06=_0xaee90c?0x0:_0x4ad8fb[_0xa288('0x6')];var _0x3095cf=_0xaee90c?_0x1e2c4b[_0xa288('0x9')]:_0x4ad8fb['offset']+_0x4ad8fb['limit'];var _0x5883bd;if(_0x3095cf>=_0x341d34){_0x3095cf=_0x341d34;_0x5883bd=0xc8;}else{_0x5883bd=0xce;}_0x101598[_0xa288('0xa')](_0x5883bd);return _0x101598[_0xa288('0xb')]('Content-Range',_0x1a0c06+'-'+_0x3095cf+'/'+_0x341d34)[_0xa288('0xc')](_0x1e2c4b);}return null;};}exports[_0xa288('0xd')]=function(_0x3ea123,_0x1cabf2){var _0x17c9f4={'count':0x0,'rows':[]};var _0xd6d394={};var _0x3eb991;var _0x22f401=utils[_0xa288('0xe')]();var _0x687ba8;var _0x43c808;var _0x3b59e0=_0x3ea123[_0xa288('0xf')][_0xa288('0x10')];var _0x21ec88=_0x3ea123[_0xa288('0xf')]['globalStatusFilter'];var _0xc060c2=_0x3ea123[_0xa288('0xf')][_0xa288('0x11')];var _0xc7b694=_0x21ec88===_0xa288('0x12')||_0x21ec88===_0xa288('0x13')?!![]:![];var _0x49d93c=[];var _0x2adc53;var _0x3f14b7;Promise['resolve']()['then'](function(){if(_0x3ea123[_0xa288('0xf')][_0xa288('0x14')]){if(!utils[_0xa288('0x15')](_0x3ea123['query'][_0xa288('0x14')])){throw new APIBadRequestError(util[_0xa288('0x16')](_0xa288('0x17'),_0x3ea123['query'][_0xa288('0x14')]));}_0x3eb991=_0x3ea123[_0xa288('0xf')][_0xa288('0x14')][_0xa288('0x18')]();}if(!_0x3ea123[_0xa288('0xf')]['sort']||!_0x3ea123['query'][_0xa288('0x19')][_0xa288('0x1a')](_0xa288('0x1b'))){_0x3ea123[_0xa288('0xf')]['sort']=rta[_0xa288('0x1c')](_0x3ea123[_0xa288('0xf')][_0xa288('0x19')]);return;}var _0x3fe4b0=rta[_0xa288('0x1d')](_0x3ea123[_0xa288('0xf')][_0xa288('0x19')]);_0x3ea123[_0xa288('0xf')][_0xa288('0x19')]=_0x3fe4b0[_0xa288('0x1e')][_0xa288('0x1f')](',');_0x2adc53=_0x3fe4b0[_0xa288('0x20')];})[_0xa288('0x21')](function(){if(!_0x3b59e0){return[];}return rta[_0xa288('0x22')](_0x3b59e0,_0x3eb991);})[_0xa288('0x21')](function(_0x5878fb){_0x49d93c=_0x5878fb;return rta['getRealtimeAgents']();})[_0xa288('0x21')](function(_0x41df47){_0x43c808=_0x41df47[_0xa288('0x23')];if((!_0x21ec88||_0xc7b694)&&!_0x2adc53){return _0x49d93c;}if(_0x2adc53&&!_0x21ec88){return rta[_0xa288('0x24')](_0x43c808,_0x49d93c,_0x2adc53);}else{return rta[_0xa288('0x25')](_0x43c808,_0x49d93c,_0x21ec88);}})[_0xa288('0x21')](function(_0x14919b){_0x49d93c=_0x14919b;var _0x382caf=![];if(_0x49d93c[_0xa288('0x26')]===0x0){if(_0x3b59e0||_0x21ec88){_0x382caf=!![];}if(_0xc7b694){_0x382caf=![];}}if(_0x382caf){return _0x17c9f4;}var _0x104290=_[_0xa288('0x27')](db[_0xa288('0x28')][_0xa288('0x29')],function(_0x307c5b){return{'name':_0x307c5b[_0xa288('0x2a')],'type':_0x307c5b[_0xa288('0x2b')][_0xa288('0x2c')]};});_0x3ea123['query'][_0xa288('0x2d')]='agent';_0x3ea123[_0xa288('0xf')][_0xa288('0x2e')]=!![];_0xd6d394=qs[_0xa288('0x2f')](_0x104290,_0x3ea123);_0xd6d394['raw']=!![];var _0x3f38bf=[];if(_0x49d93c[_0xa288('0x26')]>0x0){_0x3f38bf[_0xa288('0x30')]({'id':{'$in':_0x49d93c}});if(_0x2adc53&&!_0x21ec88){_0x3f14b7=[db[_0xa288('0x31')][_0xa288('0x32')](_0xa288('0x33')+_0x49d93c+')')];_0xd6d394[_0xa288('0x20')]=_0x3f14b7;}}if(_0xc7b694){_0x22f401[_0xa288('0x34')](function(_0x45f717){var _0x5b37f8=!![];if(_0x21ec88==='*pause'&&_0x3eb991!==_0x45f717){_0x5b37f8=![];}_0x3f38bf['push']({[_0x45f717+_0xa288('0x35')]:_0x5b37f8});});if(_0xc060c2){_0x3f38bf['push']({'pauseType':_0xc060c2});}}else if(_0x21ec88){_0x22f401[_0xa288('0x34')](function(_0x15f103){_0x3f38bf[_0xa288('0x30')]({[_0x15f103+_0xa288('0x35')]:![]});});}_0xd6d394[_0xa288('0x36')]=_[_0xa288('0x37')](_0xd6d394['where'],{'$and':_0x3f38bf});if(_0x3ea123['user']['role']===_0xa288('0x38')){var _0x42cea4={'params':{'id':_0x3ea123['user'][_0xa288('0x39')]},'query':{'section':_0xa288('0x3a'),'role':'agent','online':!![],'raw':!![],'ids':_0x49d93c,'customSorting':_0x3f14b7}};if(_0xc7b694){_0x42cea4[_0xa288('0xf')][_0xa288('0x3b')]=_0x3f38bf;}_0x42cea4[_0xa288('0xf')]=Object[_0xa288('0x3c')](_0x42cea4[_0xa288('0xf')],_0x3ea123[_0xa288('0xf')]);delete _0x42cea4['query']['id'];return db[_0xa288('0x3d')][_0xa288('0x3e')](_0x42cea4);}return db[_0xa288('0x28')]['findAndCountAll'](_0xd6d394);})[_0xa288('0x21')](function(_0x165851){_0x17c9f4[_0xa288('0x9')]=_0x165851[_0xa288('0x9')];_0x687ba8=_0x165851[_0xa288('0x23')];return _0x687ba8[_0xa288('0x27')](function(_0x16866a){var _0x5031a6=_[_0xa288('0x3f')](_0x43c808,['id',_0x16866a['id']]);if(_0x5031a6){var _0x399348=rta[_0xa288('0x40')](_0x5031a6);_['merge'](_0x16866a,_0x399348);}_0x16866a[_0xa288('0x1b')]=rta[_0xa288('0x41')](_0x16866a);if(_0x16866a['globalStatus'][_0xa288('0x1a')](_0xa288('0x12'))){_0x22f401[_0xa288('0x34')](function(_0x5835ed){if(_0x16866a[_0x5835ed+_0xa288('0x35')]){if(_0x5835ed===_0xa288('0x42')){if(_0x16866a['voiceStatus']!==_0xa288('0x43')){_0x16866a[_0xa288('0x44')]=_0xa288('0x12');}}else{_0x16866a[_0x5835ed+_0xa288('0x45')]=_0xa288('0x12');}}});}return _0x16866a;});})['then'](function(_0x1c1145){if(!_0x2adc53||_0x3f14b7){return _0x1c1145;}return rta[_0xa288('0x46')](_0x1c1145,_0x2adc53);})[_0xa288('0x21')](function(_0x416855){var _0xe356b=null;if(_0x3ea123[_0xa288('0xf')][_0xa288('0x1e')]){var _0x1b4c5d=_0x3ea123[_0xa288('0xf')][_0xa288('0x1e')][_0xa288('0x47')](',');_0xe356b=_0x416855['map'](function(_0x53d88b){return _[_0xa288('0x48')](_0x53d88b,_0x1b4c5d);});}_0x17c9f4[_0xa288('0x23')]=_0xe356b||_0x416855;return _0x17c9f4;})[_0xa288('0x21')](respondWithFilteredResult(_0x1cabf2,_0xd6d394))['catch'](APIHandleError(_0x1cabf2));};exports['getQueues']=function(_0x275984,_0x17ab89){var _0x487c13={'count':0x0,'rows':[]};var _0x3a07cb={};var _0x495d5d;var _0x4ec14a;var _0x279f12;Promise[_0xa288('0x49')]()[_0xa288('0x21')](function(){if(_0x275984['query'][_0xa288('0x14')]){if(!utils[_0xa288('0x15')](_0x275984[_0xa288('0xf')][_0xa288('0x14')])){throw new APIBadRequestError(util[_0xa288('0x16')](_0xa288('0x17'),_0x275984['query'][_0xa288('0x14')]));}_0x495d5d=_0x275984['query'][_0xa288('0x14')][_0xa288('0x18')]();}var _0x242609=_[_0xa288('0x4a')](_0x495d5d)+_0xa288('0x4b');var _0x392a6f=_[_0xa288('0x27')](db[_0x242609][_0xa288('0x29')],function(_0x6d79c){return{'name':_0x6d79c[_0xa288('0x2a')],'type':_0x6d79c[_0xa288('0x2b')][_0xa288('0x2c')]};});if(!_0x275984['query'][_0xa288('0x1e')]){var _0x2bd373=['id','name'];if(_0x495d5d==='voice'){_0x2bd373[_0xa288('0x30')](_0xa288('0x2b'));if(_0x275984[_0xa288('0xf')]['type']==='outbound'){_0x2bd373[_0xa288('0x30')]([_0xa288('0x4c'),_0xa288('0x4d')]);}}_0x275984['query'][_0xa288('0x1e')]=_0x2bd373[_0xa288('0x1f')](',');}_0x3a07cb=qs[_0xa288('0x2f')](_0x392a6f,_0x275984);if(_0x275984[_0xa288('0x38')][_0xa288('0x2d')]==='user'){var _0x43bed5={'params':{'id':_0x275984[_0xa288('0x38')]['userProfileId']},'query':{'section':_0x495d5d===_0xa288('0x42')&&_0x275984['query']['type']==='outbound'?_0xa288('0x4e'):_[_0xa288('0x4a')](_0x495d5d)+_0xa288('0x4f'),'type':_0x275984[_0xa288('0xf')]['type'],'nolimit':!![],'sort':_0xa288('0x50'),'filter':_0x275984[_0xa288('0xf')]['filter']}};_0x43bed5[_0xa288('0xf')]=Object[_0xa288('0x3c')](_0x43bed5[_0xa288('0xf')],_0x275984[_0xa288('0xf')]);delete _0x43bed5[_0xa288('0xf')]['id'];return db[_0xa288('0x3d')][_0xa288('0x3e')](_0x43bed5);}return db[_0x242609][_0xa288('0x51')](_0x3a07cb);})[_0xa288('0x21')](function(_0xd1d7de){_0x487c13[_0xa288('0x9')]=_0xd1d7de[_0xa288('0x9')];_0x4ec14a=_0xd1d7de[_0xa288('0x23')];return rtq[_0xa288('0x52')](_0x275984,_0x495d5d);})[_0xa288('0x21')](function(_0x1beff5){_0x279f12=_0x1beff5['rows'];return rtq[_0xa288('0x53')](_0x4ec14a,_0x279f12,_0x495d5d,_0x275984['query'][_0xa288('0x2b')]);})['then'](function(_0x42f66c){_0x487c13[_0xa288('0x23')]=_0x42f66c;return _0x487c13;})[_0xa288('0x21')](respondWithFilteredResult(_0x17ab89,_0x3a07cb))[_0xa288('0x54')](APIHandleError(_0x17ab89));};