7e99c3f487e5f017dfcdf832cd55f3a717ef8de6
[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 _0xc6fc=['fields','order','getAgentIdsByQueues','getRealtimeAgents','getSortedAgentsIdsByStatus','getAgentIdsByStatus','length','map','User','fieldName','type','key','role','agent','getOptions','raw','push','sequelize','literal','FIELD(id,','Pause','forEach','where','merge','user','userProfileId','Agents','online','extraQueryConditions','assign','omit','findAndCountAll','rows','find','filterAgentAttributes','globalStatus','getAgentStatus','voice','voiceStatus','talking','sortAgentsByStatus','getRealtimeAgentsQueryFields','resolve','Channel\x20parameter\x20%s\x20is\x20invalid','startCase','rawAttributes','name','outbound','dialActive','dialMethod','join','QueueCampaigns','Queues','filter','getResources','getRealtimeQueues','initializeQueues','catch','lodash','util','../../components/realtime/agents','../../components/realtime/queues','../../components/parsers/qs','../../config/utils','../../mysqldb','../../errors/api','APIBadRequestError','handleError','offset','undefined','limit','count','set','Content-Range','getAgents','query','globalQueueFilter','globalStatusFilter','pause','*pause','then','channel','isValidChannel','format','toLowerCase','sort','includes','validateSortParameter'];(function(_0x5a125c,_0x155fa2){var _0x4c70af=function(_0x5dccb6){while(--_0x5dccb6){_0x5a125c['push'](_0x5a125c['shift']());}};_0x4c70af(++_0x155fa2);}(_0xc6fc,0x92));var _0xcc6f=function(_0x15876c,_0x510dd4){_0x15876c=_0x15876c-0x0;var _0x39d91b=_0xc6fc[_0x15876c];return _0x39d91b;};'use strict';var _=require(_0xcc6f('0x0'));var util=require(_0xcc6f('0x1'));var rta=require(_0xcc6f('0x2'));var rtq=require(_0xcc6f('0x3'));var qs=require(_0xcc6f('0x4'));var utils=require(_0xcc6f('0x5'));var db=require(_0xcc6f('0x6'))['db'];var APIBadRequestError=require(_0xcc6f('0x7'))[_0xcc6f('0x8')];var APIHandleError=require(_0xcc6f('0x7'))[_0xcc6f('0x9')];function respondWithFilteredResult(_0x2c48fb,_0x5bea14){return function(_0x4c1c81){if(_0x4c1c81){var _0x340ab4=typeof _0x5bea14[_0xcc6f('0xa')]===_0xcc6f('0xb')&&typeof _0x5bea14[_0xcc6f('0xc')]===_0xcc6f('0xb');var _0x7ef54d=_0x4c1c81[_0xcc6f('0xd')];var _0x476e38=_0x340ab4?0x0:_0x5bea14[_0xcc6f('0xa')];var _0x6f56b9=_0x340ab4?_0x4c1c81['count']:_0x5bea14['offset']+_0x5bea14[_0xcc6f('0xc')];var _0x550a8b;if(_0x6f56b9>=_0x7ef54d){_0x6f56b9=_0x7ef54d;_0x550a8b=0xc8;}else{_0x550a8b=0xce;}_0x2c48fb['status'](_0x550a8b);return _0x2c48fb[_0xcc6f('0xe')](_0xcc6f('0xf'),_0x476e38+'-'+_0x6f56b9+'/'+_0x7ef54d)['json'](_0x4c1c81);}return null;};}exports[_0xcc6f('0x10')]=function(_0x51ff26,_0x599d5c){var _0x22835f={'count':0x0,'rows':[]};var _0x5e374e={};var _0x219640;var _0x23d53f=utils['getChannels']();var _0x450adf;var _0x5ba7bc;var _0x39f493=_0x51ff26[_0xcc6f('0x11')][_0xcc6f('0x12')];var _0x5dabd0=_0x51ff26[_0xcc6f('0x11')][_0xcc6f('0x13')];var _0x3e9b6e=_0x51ff26[_0xcc6f('0x11')]['pauseTypeFilter'];var _0x59bf43=_0x5dabd0===_0xcc6f('0x14')||_0x5dabd0===_0xcc6f('0x15')?!![]:![];var _0xd58b28=[];var _0x13feac;var _0xdeb69c;Promise['resolve']()[_0xcc6f('0x16')](function(){if(_0x51ff26[_0xcc6f('0x11')][_0xcc6f('0x17')]){if(!utils[_0xcc6f('0x18')](_0x51ff26['query'][_0xcc6f('0x17')])){throw new APIBadRequestError(util[_0xcc6f('0x19')]('Channel\x20parameter\x20%s\x20is\x20invalid',_0x51ff26[_0xcc6f('0x11')][_0xcc6f('0x17')]));}_0x219640=_0x51ff26[_0xcc6f('0x11')][_0xcc6f('0x17')][_0xcc6f('0x1a')]();}if(!_0x51ff26[_0xcc6f('0x11')]['sort']||!_0x51ff26[_0xcc6f('0x11')][_0xcc6f('0x1b')][_0xcc6f('0x1c')]('globalStatus')){_0x51ff26[_0xcc6f('0x11')][_0xcc6f('0x1b')]=rta[_0xcc6f('0x1d')](_0x51ff26['query'][_0xcc6f('0x1b')]);return;}var _0x673e2d=rta['getUpdatedSortOptions'](_0x51ff26['query'][_0xcc6f('0x1b')]);_0x51ff26[_0xcc6f('0x11')][_0xcc6f('0x1b')]=_0x673e2d[_0xcc6f('0x1e')]['join'](',');_0x13feac=_0x673e2d[_0xcc6f('0x1f')];})[_0xcc6f('0x16')](function(){if(!_0x39f493){return[];}return rta[_0xcc6f('0x20')](_0x39f493,_0x219640);})[_0xcc6f('0x16')](function(_0x56f551){_0xd58b28=_0x56f551;return rta[_0xcc6f('0x21')]();})[_0xcc6f('0x16')](function(_0x25db49){_0x5ba7bc=_0x25db49['rows'];if((!_0x5dabd0||_0x59bf43)&&!_0x13feac){return _0xd58b28;}if(_0x13feac&&!_0x5dabd0){return rta[_0xcc6f('0x22')](_0x5ba7bc,_0xd58b28,_0x13feac);}else{return rta[_0xcc6f('0x23')](_0x5ba7bc,_0xd58b28,_0x5dabd0);}})[_0xcc6f('0x16')](function(_0x2e1a2f){_0xd58b28=_0x2e1a2f;var _0x20364f=![];if(_0xd58b28[_0xcc6f('0x24')]===0x0){if(_0x39f493||_0x5dabd0){_0x20364f=!![];}if(_0x59bf43){_0x20364f=![];}}if(_0x20364f){return _0x22835f;}var _0x39b1e3=_[_0xcc6f('0x25')](db[_0xcc6f('0x26')]['rawAttributes'],function(_0x31fc2a){return{'name':_0x31fc2a[_0xcc6f('0x27')],'type':_0x31fc2a[_0xcc6f('0x28')][_0xcc6f('0x29')]};});_0x51ff26[_0xcc6f('0x11')][_0xcc6f('0x2a')]=_0xcc6f('0x2b');_0x5e374e=qs[_0xcc6f('0x2c')](_0x39b1e3,_0x51ff26);_0x5e374e[_0xcc6f('0x2d')]=!![];var _0x1daa15=[];if(_0xd58b28['length']>0x0){_0x1daa15[_0xcc6f('0x2e')]({'id':{'$in':_0xd58b28}});if(_0x13feac&&!_0x5dabd0){_0xdeb69c=[db[_0xcc6f('0x2f')][_0xcc6f('0x30')](_0xcc6f('0x31')+_0xd58b28+')')];_0x5e374e[_0xcc6f('0x1f')]=_0xdeb69c;}}if(_0x59bf43){_0x23d53f['forEach'](function(_0x25b068){var _0x42a0dd=!![];if(_0x5dabd0===_0xcc6f('0x15')&&_0x219640!==_0x25b068){_0x42a0dd=![];}_0x1daa15[_0xcc6f('0x2e')]({[_0x25b068+_0xcc6f('0x32')]:_0x42a0dd});});if(_0x3e9b6e){_0x1daa15[_0xcc6f('0x2e')]({'pauseType':_0x3e9b6e});}}else if(_0x5dabd0){_0x23d53f[_0xcc6f('0x33')](function(_0x314033){_0x1daa15['push']({[_0x314033+_0xcc6f('0x32')]:![]});});}_0x5e374e[_0xcc6f('0x34')]=_[_0xcc6f('0x35')](_0x5e374e[_0xcc6f('0x34')],{'$and':_0x1daa15});if(_0x51ff26[_0xcc6f('0x36')][_0xcc6f('0x2a')]==='user'){var _0xd27134={'params':{'id':_0x51ff26[_0xcc6f('0x36')][_0xcc6f('0x37')]},'query':{'section':_0xcc6f('0x38'),'role':_0xcc6f('0x2b'),'raw':!![],'ids':_0xd58b28,'customSorting':_0xdeb69c}};if(_0x51ff26[_0xcc6f('0x11')][_0xcc6f('0x39')]){_0xd27134[_0xcc6f('0x11')][_0xcc6f('0x39')]=!![];}if(_0x59bf43){_0xd27134['query'][_0xcc6f('0x3a')]=_0x1daa15;}_0xd27134['query']=Object[_0xcc6f('0x3b')](_0xd27134['query'],_[_0xcc6f('0x3c')](_0x51ff26[_0xcc6f('0x11')],'id'));return db['UserProfile']['getResources'](_0xd27134);}return db[_0xcc6f('0x26')][_0xcc6f('0x3d')](_0x5e374e);})[_0xcc6f('0x16')](function(_0x282c07){_0x22835f[_0xcc6f('0xd')]=_0x282c07[_0xcc6f('0xd')];_0x450adf=_0x282c07[_0xcc6f('0x3e')];return _0x450adf[_0xcc6f('0x25')](function(_0x237be2){var _0x423ac8=_[_0xcc6f('0x3f')](_0x5ba7bc,['id',_0x237be2['id']]);if(_0x423ac8){var _0x31e674=rta[_0xcc6f('0x40')](_0x423ac8);_[_0xcc6f('0x35')](_0x237be2,_0x31e674);}_0x237be2[_0xcc6f('0x41')]=rta[_0xcc6f('0x42')](_0x237be2);if(_0x237be2[_0xcc6f('0x41')][_0xcc6f('0x1c')](_0xcc6f('0x14'))){_0x23d53f[_0xcc6f('0x33')](function(_0x572b5e){if(_0x237be2[_0x572b5e+_0xcc6f('0x32')]){if(_0x572b5e===_0xcc6f('0x43')){if(_0x237be2[_0xcc6f('0x44')]!==_0xcc6f('0x45')){_0x237be2[_0xcc6f('0x44')]=_0xcc6f('0x14');}}else{_0x237be2[_0x572b5e+'Status']=_0xcc6f('0x14');}}});}return _0x237be2;});})[_0xcc6f('0x16')](function(_0x45df9f){if(!_0x13feac||_0xdeb69c){return _0x45df9f;}return rta[_0xcc6f('0x46')](_0x45df9f,_0x13feac);})[_0xcc6f('0x16')](function(_0x36b539){var _0x2777bd=rta[_0xcc6f('0x47')]();_0x22835f['rows']=_0x36b539[_0xcc6f('0x25')](function(_0x47dc95){return _['pick'](_0x47dc95,_0x2777bd);});return _0x22835f;})[_0xcc6f('0x16')](respondWithFilteredResult(_0x599d5c,_0x5e374e))['catch'](APIHandleError(_0x599d5c));};exports['getQueues']=function(_0x445351,_0x38ddee){var _0x1aab8b={'count':0x0,'rows':[]};var _0xe10979={};var _0x38489f;var _0x871325;var _0x27bfd4;Promise[_0xcc6f('0x48')]()['then'](function(){if(_0x445351[_0xcc6f('0x11')][_0xcc6f('0x17')]){if(!utils['isValidChannel'](_0x445351[_0xcc6f('0x11')][_0xcc6f('0x17')])){throw new APIBadRequestError(util[_0xcc6f('0x19')](_0xcc6f('0x49'),_0x445351[_0xcc6f('0x11')]['channel']));}_0x38489f=_0x445351[_0xcc6f('0x11')]['channel'][_0xcc6f('0x1a')]();}var _0x5e2bfb=_[_0xcc6f('0x4a')](_0x38489f)+'Queue';var _0x152dd5=_[_0xcc6f('0x25')](db[_0x5e2bfb][_0xcc6f('0x4b')],function(_0x18d1e7){return{'name':_0x18d1e7[_0xcc6f('0x27')],'type':_0x18d1e7['type'][_0xcc6f('0x29')]};});if(!_0x445351['query'][_0xcc6f('0x1e')]){var _0x44fd47=['id',_0xcc6f('0x4c')];if(_0x38489f===_0xcc6f('0x43')){_0x44fd47[_0xcc6f('0x2e')](_0xcc6f('0x28'));if(_0x445351[_0xcc6f('0x11')][_0xcc6f('0x28')]===_0xcc6f('0x4d')){_0x44fd47[_0xcc6f('0x2e')]([_0xcc6f('0x4e'),_0xcc6f('0x4f')]);}}_0x445351[_0xcc6f('0x11')][_0xcc6f('0x1e')]=_0x44fd47[_0xcc6f('0x50')](',');}_0xe10979=qs['getOptions'](_0x152dd5,_0x445351);if(_0x445351[_0xcc6f('0x36')][_0xcc6f('0x2a')]===_0xcc6f('0x36')){var _0x45778f={'params':{'id':_0x445351[_0xcc6f('0x36')][_0xcc6f('0x37')]},'query':{'section':_0x38489f===_0xcc6f('0x43')&&_0x445351[_0xcc6f('0x11')]['type']===_0xcc6f('0x4d')?_0xcc6f('0x51'):_[_0xcc6f('0x4a')](_0x38489f)+_0xcc6f('0x52'),'type':_0x445351['query'][_0xcc6f('0x28')],'nolimit':!![],'sort':_0xcc6f('0x4c'),'filter':_0x445351['query'][_0xcc6f('0x53')]}};_0x45778f['query']=Object[_0xcc6f('0x3b')](_0x45778f[_0xcc6f('0x11')],_0x445351[_0xcc6f('0x11')]);delete _0x45778f[_0xcc6f('0x11')]['id'];return db['UserProfile'][_0xcc6f('0x54')](_0x45778f);}return db[_0x5e2bfb][_0xcc6f('0x3d')](_0xe10979);})[_0xcc6f('0x16')](function(_0x55cdf8){_0x1aab8b[_0xcc6f('0xd')]=_0x55cdf8[_0xcc6f('0xd')];_0x871325=_0x55cdf8[_0xcc6f('0x3e')];return rtq[_0xcc6f('0x55')](_0x445351,_0x38489f);})['then'](function(_0x182246){_0x27bfd4=_0x182246[_0xcc6f('0x3e')];return rtq[_0xcc6f('0x56')](_0x871325,_0x27bfd4,_0x38489f,_0x445351[_0xcc6f('0x11')][_0xcc6f('0x28')]);})[_0xcc6f('0x16')](function(_0x29dcc0){_0x1aab8b[_0xcc6f('0x3e')]=_0x29dcc0;return _0x1aab8b;})['then'](respondWithFilteredResult(_0x38ddee,_0xe10979))[_0xcc6f('0x57')](APIHandleError(_0x38ddee));};