Built motion from commit 449495f6.|2.6.27
[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 _0xae5d=['../../errors/api','APIBadRequestError','handleError','offset','undefined','limit','status','set','json','getChannels','query','globalQueueFilter','globalStatusFilter','pauseTypeFilter','pause','*pause','resolve','then','channel','isValidChannel','Channel\x20parameter\x20%s\x20is\x20invalid','toLowerCase','globalStatus','sort','validateSortParameter','fields','join','order','getAgentIdsByQueues','getRealtimeAgents','rows','getSortedAgentsIdsByStatus','getAgentIdsByStatus','length','map','User','rawAttributes','fieldName','type','key','role','agent','getOptions','raw','sequelize','literal','FIELD(id,','forEach','push','Pause','merge','where','user','userProfileId','Agents','online','assign','UserProfile','getResources','findAndCountAll','count','find','filterAgentAttributes','includes','voiceStatus','talking','pick','catch','getQueues','startCase','Queue','name','voice','outbound','dialActive','dialMethod','QueueCampaigns','filter','getRealtimeQueues','lodash','util','../../components/realtime/queues','../../components/parsers/qs','../../mysqldb'];(function(_0x2c7806,_0x42e5bb){var _0x42563b=function(_0x54110d){while(--_0x54110d){_0x2c7806['push'](_0x2c7806['shift']());}};_0x42563b(++_0x42e5bb);}(_0xae5d,0x1f3));var _0xdae5=function(_0x2a56ad,_0x2b94bf){_0x2a56ad=_0x2a56ad-0x0;var _0x425175=_0xae5d[_0x2a56ad];return _0x425175;};'use strict';var _=require(_0xdae5('0x0'));var util=require(_0xdae5('0x1'));var rta=require('../../components/realtime/agents');var rtq=require(_0xdae5('0x2'));var qs=require(_0xdae5('0x3'));var utils=require('../../config/utils');var db=require(_0xdae5('0x4'))['db'];var APIBadRequestError=require(_0xdae5('0x5'))[_0xdae5('0x6')];var APIHandleError=require(_0xdae5('0x5'))[_0xdae5('0x7')];function respondWithFilteredResult(_0x2e3eb6,_0x1107a0){return function(_0x3cacef){if(_0x3cacef){var _0x4abfa0=typeof _0x1107a0[_0xdae5('0x8')]===_0xdae5('0x9')&&typeof _0x1107a0[_0xdae5('0xa')]===_0xdae5('0x9');var _0x4fc048=_0x3cacef['count'];var _0x2d79c4=_0x4abfa0?0x0:_0x1107a0[_0xdae5('0x8')];var _0x24281e=_0x4abfa0?_0x3cacef['count']:_0x1107a0[_0xdae5('0x8')]+_0x1107a0[_0xdae5('0xa')];var _0x1b315e;if(_0x24281e>=_0x4fc048){_0x24281e=_0x4fc048;_0x1b315e=0xc8;}else{_0x1b315e=0xce;}_0x2e3eb6[_0xdae5('0xb')](_0x1b315e);return _0x2e3eb6[_0xdae5('0xc')]('Content-Range',_0x2d79c4+'-'+_0x24281e+'/'+_0x4fc048)[_0xdae5('0xd')](_0x3cacef);}return null;};}exports['getAgents']=function(_0x1262fe,_0x2e288f){var _0x47e53c={'count':0x0,'rows':[]};var _0x133274={};var _0x5ad5a8;var _0x212f47=utils[_0xdae5('0xe')]();var _0x207d46;var _0x5d1fec;var _0x171603=_0x1262fe[_0xdae5('0xf')][_0xdae5('0x10')];var _0x126de8=_0x1262fe['query'][_0xdae5('0x11')];var _0x5a5d36=_0x1262fe[_0xdae5('0xf')][_0xdae5('0x12')];var _0x5ab974=_0x126de8===_0xdae5('0x13')||_0x126de8===_0xdae5('0x14')?!![]:![];var _0x534a99=[];var _0x56e92b;var _0x1b5636;Promise[_0xdae5('0x15')]()[_0xdae5('0x16')](function(){if(_0x1262fe['query'][_0xdae5('0x17')]){if(!utils[_0xdae5('0x18')](_0x1262fe[_0xdae5('0xf')][_0xdae5('0x17')])){throw new APIBadRequestError(util['format'](_0xdae5('0x19'),_0x1262fe[_0xdae5('0xf')][_0xdae5('0x17')]));}_0x5ad5a8=_0x1262fe[_0xdae5('0xf')]['channel'][_0xdae5('0x1a')]();}if(!_0x1262fe[_0xdae5('0xf')]['sort']||!_0x1262fe[_0xdae5('0xf')]['sort']['includes'](_0xdae5('0x1b'))){_0x1262fe[_0xdae5('0xf')][_0xdae5('0x1c')]=rta[_0xdae5('0x1d')](_0x1262fe['query']['sort']);return;}var _0x24e74d=rta['getUpdatedSortOptions'](_0x1262fe[_0xdae5('0xf')]['sort']);_0x1262fe[_0xdae5('0xf')][_0xdae5('0x1c')]=_0x24e74d[_0xdae5('0x1e')][_0xdae5('0x1f')](',');_0x56e92b=_0x24e74d[_0xdae5('0x20')];})[_0xdae5('0x16')](function(){if(!_0x171603){return[];}return rta[_0xdae5('0x21')](_0x171603,_0x5ad5a8);})[_0xdae5('0x16')](function(_0x41d8d4){_0x534a99=_0x41d8d4;return rta[_0xdae5('0x22')]();})[_0xdae5('0x16')](function(_0x446b3f){_0x5d1fec=_0x446b3f[_0xdae5('0x23')];if((!_0x126de8||_0x5ab974)&&!_0x56e92b){return _0x534a99;}if(_0x56e92b&&!_0x126de8){return rta[_0xdae5('0x24')](_0x5d1fec,_0x534a99,_0x56e92b);}else{return rta[_0xdae5('0x25')](_0x5d1fec,_0x534a99,_0x126de8);}})[_0xdae5('0x16')](function(_0x49a5a1){_0x534a99=_0x49a5a1;var _0x17f57b=![];if(_0x534a99[_0xdae5('0x26')]===0x0){if(_0x171603||_0x126de8){_0x17f57b=!![];}if(_0x5ab974){_0x17f57b=![];}}if(_0x17f57b){return _0x47e53c;}var _0x37b817=_[_0xdae5('0x27')](db[_0xdae5('0x28')][_0xdae5('0x29')],function(_0x2a3640){return{'name':_0x2a3640[_0xdae5('0x2a')],'type':_0x2a3640[_0xdae5('0x2b')][_0xdae5('0x2c')]};});_0x1262fe[_0xdae5('0xf')][_0xdae5('0x2d')]=_0xdae5('0x2e');_0x133274=qs[_0xdae5('0x2f')](_0x37b817,_0x1262fe);_0x133274[_0xdae5('0x30')]=!![];var _0x2e4a67=[];if(_0x534a99[_0xdae5('0x26')]>0x0){_0x2e4a67['push']({'id':{'$in':_0x534a99}});if(_0x56e92b&&!_0x126de8){_0x1b5636=[db[_0xdae5('0x31')][_0xdae5('0x32')](_0xdae5('0x33')+_0x534a99+')')];_0x133274['order']=_0x1b5636;}}if(_0x5ab974){_0x212f47[_0xdae5('0x34')](function(_0x39490b){var _0x5d3686=!![];if(_0x126de8==='*pause'&&_0x5ad5a8!==_0x39490b){_0x5d3686=![];}_0x2e4a67[_0xdae5('0x35')]({[_0x39490b+_0xdae5('0x36')]:_0x5d3686});});if(_0x5a5d36){_0x2e4a67[_0xdae5('0x35')]({'pauseType':_0x5a5d36});}}else if(_0x126de8){_0x212f47[_0xdae5('0x34')](function(_0x13aa33){_0x2e4a67[_0xdae5('0x35')]({[_0x13aa33+'Pause']:![]});});}_0x133274['where']=_[_0xdae5('0x37')](_0x133274[_0xdae5('0x38')],{'$and':_0x2e4a67});if(_0x1262fe[_0xdae5('0x39')][_0xdae5('0x2d')]===_0xdae5('0x39')){var _0x252935={'params':{'id':_0x1262fe[_0xdae5('0x39')][_0xdae5('0x3a')]},'query':{'section':_0xdae5('0x3b'),'role':_0xdae5('0x2e'),'raw':!![],'ids':_0x534a99,'customSorting':_0x1b5636}};if(_0x1262fe[_0xdae5('0xf')][_0xdae5('0x3c')]){_0x252935[_0xdae5('0xf')][_0xdae5('0x3c')]=!![];}if(_0x5ab974){_0x252935[_0xdae5('0xf')]['extraQueryConditions']=_0x2e4a67;}_0x252935[_0xdae5('0xf')]=Object[_0xdae5('0x3d')](_0x252935['query'],_0x1262fe['query']);return db[_0xdae5('0x3e')][_0xdae5('0x3f')](_0x252935);}return db[_0xdae5('0x28')][_0xdae5('0x40')](_0x133274);})[_0xdae5('0x16')](function(_0x3b1a63){_0x47e53c[_0xdae5('0x41')]=_0x3b1a63[_0xdae5('0x41')];_0x207d46=_0x3b1a63[_0xdae5('0x23')];return _0x207d46['map'](function(_0x42fe75){var _0x1b378b=_[_0xdae5('0x42')](_0x5d1fec,['id',_0x42fe75['id']]);if(_0x1b378b){var _0x4f7407=rta[_0xdae5('0x43')](_0x1b378b);_['merge'](_0x42fe75,_0x4f7407);}_0x42fe75[_0xdae5('0x1b')]=rta['getAgentStatus'](_0x42fe75);if(_0x42fe75[_0xdae5('0x1b')][_0xdae5('0x44')](_0xdae5('0x13'))){_0x212f47[_0xdae5('0x34')](function(_0x24a384){if(_0x42fe75[_0x24a384+'Pause']){if(_0x24a384==='voice'){if(_0x42fe75[_0xdae5('0x45')]!==_0xdae5('0x46')){_0x42fe75[_0xdae5('0x45')]=_0xdae5('0x13');}}else{_0x42fe75[_0x24a384+'Status']='pause';}}});}return _0x42fe75;});})['then'](function(_0x33a7bd){if(!_0x56e92b||_0x1b5636){return _0x33a7bd;}return rta['sortAgentsByStatus'](_0x33a7bd,_0x56e92b);})[_0xdae5('0x16')](function(_0x4ca336){var _0x16354b=rta['getRealtimeAgentsQueryFields']();_0x47e53c[_0xdae5('0x23')]=_0x4ca336[_0xdae5('0x27')](function(_0x4940e8){return _[_0xdae5('0x47')](_0x4940e8,_0x16354b);});return _0x47e53c;})[_0xdae5('0x16')](respondWithFilteredResult(_0x2e288f,_0x133274))[_0xdae5('0x48')](APIHandleError(_0x2e288f));};exports[_0xdae5('0x49')]=function(_0x91e360,_0x12907d){var _0x199396={'count':0x0,'rows':[]};var _0xaa19c4={};var _0x4e1164;var _0x58ab47;var _0x1f9800;Promise[_0xdae5('0x15')]()[_0xdae5('0x16')](function(){if(_0x91e360['query'][_0xdae5('0x17')]){if(!utils[_0xdae5('0x18')](_0x91e360[_0xdae5('0xf')]['channel'])){throw new APIBadRequestError(util['format'](_0xdae5('0x19'),_0x91e360[_0xdae5('0xf')][_0xdae5('0x17')]));}_0x4e1164=_0x91e360[_0xdae5('0xf')][_0xdae5('0x17')]['toLowerCase']();}var _0x211a55=_[_0xdae5('0x4a')](_0x4e1164)+_0xdae5('0x4b');var _0x34c9cb=_[_0xdae5('0x27')](db[_0x211a55][_0xdae5('0x29')],function(_0x571212){return{'name':_0x571212[_0xdae5('0x2a')],'type':_0x571212[_0xdae5('0x2b')][_0xdae5('0x2c')]};});if(!_0x91e360[_0xdae5('0xf')][_0xdae5('0x1e')]){var _0xf2587a=['id',_0xdae5('0x4c')];if(_0x4e1164===_0xdae5('0x4d')){_0xf2587a[_0xdae5('0x35')](_0xdae5('0x2b'));if(_0x91e360[_0xdae5('0xf')]['type']===_0xdae5('0x4e')){_0xf2587a['push']([_0xdae5('0x4f'),_0xdae5('0x50')]);}}_0x91e360[_0xdae5('0xf')][_0xdae5('0x1e')]=_0xf2587a['join'](',');}_0xaa19c4=qs[_0xdae5('0x2f')](_0x34c9cb,_0x91e360);if(_0x91e360['user'][_0xdae5('0x2d')]===_0xdae5('0x39')){var _0xdfa7={'params':{'id':_0x91e360[_0xdae5('0x39')][_0xdae5('0x3a')]},'query':{'section':_0x4e1164===_0xdae5('0x4d')&&_0x91e360[_0xdae5('0xf')][_0xdae5('0x2b')]===_0xdae5('0x4e')?_0xdae5('0x51'):_[_0xdae5('0x4a')](_0x4e1164)+'Queues','type':_0x91e360[_0xdae5('0xf')][_0xdae5('0x2b')],'nolimit':!![],'sort':'name','filter':_0x91e360['query'][_0xdae5('0x52')]}};_0xdfa7['query']=Object[_0xdae5('0x3d')](_0xdfa7[_0xdae5('0xf')],_0x91e360['query']);delete _0xdfa7[_0xdae5('0xf')]['id'];return db[_0xdae5('0x3e')][_0xdae5('0x3f')](_0xdfa7);}return db[_0x211a55][_0xdae5('0x40')](_0xaa19c4);})[_0xdae5('0x16')](function(_0x46fc40){_0x199396[_0xdae5('0x41')]=_0x46fc40[_0xdae5('0x41')];_0x58ab47=_0x46fc40[_0xdae5('0x23')];return rtq[_0xdae5('0x53')](_0x91e360,_0x4e1164);})['then'](function(_0x261381){_0x1f9800=_0x261381[_0xdae5('0x23')];return rtq['initializeQueues'](_0x58ab47,_0x1f9800,_0x4e1164,_0x91e360[_0xdae5('0xf')]['type']);})[_0xdae5('0x16')](function(_0x5536a0){_0x199396[_0xdae5('0x23')]=_0x5536a0;return _0x199396;})[_0xdae5('0x16')](respondWithFilteredResult(_0x12907d,_0xaa19c4))[_0xdae5('0x48')](APIHandleError(_0x12907d));};