fa07a9329ea9db2741535b3bdaebdb5cdfe48cb6
[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 _0x72ee=['forEach','push','Pause','where','user','Agents','agent','online','getResources','User','rows','map','filterAgentAttributes','merge','getAgentStatus','voice','voiceStatus','talking','sortAgentsByStatus','pick','catch','isValidChannel','startCase','Queue','name','userProfileId','outbound','QueueCampaigns','Queues','assign','UserProfile','getRealtimeQueues','initializeQueues','lodash','util','../../components/realtime/agents','../../components/realtime/queues','../../components/parsers/qs','../../config/utils','../../mysqldb','../../errors/api','APIBadRequestError','offset','undefined','limit','count','status','set','Content-Range','getAgents','getChannels','query','globalQueueFilter','globalStatusFilter','pause','*pause','resolve','channel','format','Channel\x20parameter\x20%s\x20is\x20invalid','toLowerCase','sort','includes','globalStatus','validateSortParameter','getUpdatedSortOptions','fields','join','order','then','getAgentIdsByQueues','getRealtimeAgents','getSortedAgentsIdsByStatus','getAgentIdsByStatus','rawAttributes','fieldName','type','key','role','getOptions','raw','length'];(function(_0x91d019,_0x5223c4){var _0x19de1f=function(_0x3e1311){while(--_0x3e1311){_0x91d019['push'](_0x91d019['shift']());}};_0x19de1f(++_0x5223c4);}(_0x72ee,0x1bb));var _0xe72e=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0x72ee[_0x4565bf];return _0x5610ba;};'use strict';var _=require(_0xe72e('0x0'));var util=require(_0xe72e('0x1'));var rta=require(_0xe72e('0x2'));var rtq=require(_0xe72e('0x3'));var qs=require(_0xe72e('0x4'));var utils=require(_0xe72e('0x5'));var db=require(_0xe72e('0x6'))['db'];var APIBadRequestError=require(_0xe72e('0x7'))[_0xe72e('0x8')];var APIHandleError=require(_0xe72e('0x7'))['handleError'];function respondWithFilteredResult(_0x1bd998,_0x159e6c){return function(_0x34c4ca){if(_0x34c4ca){var _0x387a02=typeof _0x159e6c[_0xe72e('0x9')]===_0xe72e('0xa')&&typeof _0x159e6c[_0xe72e('0xb')]===_0xe72e('0xa');var _0x407fcd=_0x34c4ca[_0xe72e('0xc')];var _0x3e2a3e=_0x387a02?0x0:_0x159e6c[_0xe72e('0x9')];var _0x57b6e4=_0x387a02?_0x34c4ca[_0xe72e('0xc')]:_0x159e6c[_0xe72e('0x9')]+_0x159e6c['limit'];var _0x518bef;if(_0x57b6e4>=_0x407fcd){_0x57b6e4=_0x407fcd;_0x518bef=0xc8;}else{_0x518bef=0xce;}_0x1bd998[_0xe72e('0xd')](_0x518bef);return _0x1bd998[_0xe72e('0xe')](_0xe72e('0xf'),_0x3e2a3e+'-'+_0x57b6e4+'/'+_0x407fcd)['json'](_0x34c4ca);}return null;};}exports[_0xe72e('0x10')]=function(_0xa161c0,_0x57a177){var _0x34b593={'count':0x0,'rows':[]};var _0x4c2a2={};var _0x58e738;var _0x30521d=utils[_0xe72e('0x11')]();var _0xa59dce;var _0x3f6320;var _0x1294f5=_0xa161c0[_0xe72e('0x12')][_0xe72e('0x13')];var _0x20a1cd=_0xa161c0[_0xe72e('0x12')][_0xe72e('0x14')];var _0xc6abd7=_0xa161c0['query']['pauseTypeFilter'];var _0x13cffe=_0x20a1cd===_0xe72e('0x15')||_0x20a1cd===_0xe72e('0x16')?!![]:![];var _0x1e75ca=[];var _0x32dea8;var _0x2f4b60;Promise[_0xe72e('0x17')]()['then'](function(){if(_0xa161c0[_0xe72e('0x12')][_0xe72e('0x18')]){if(!utils['isValidChannel'](_0xa161c0[_0xe72e('0x12')][_0xe72e('0x18')])){throw new APIBadRequestError(util[_0xe72e('0x19')](_0xe72e('0x1a'),_0xa161c0[_0xe72e('0x12')][_0xe72e('0x18')]));}_0x58e738=_0xa161c0[_0xe72e('0x12')][_0xe72e('0x18')][_0xe72e('0x1b')]();}if(!_0xa161c0[_0xe72e('0x12')][_0xe72e('0x1c')]||!_0xa161c0[_0xe72e('0x12')][_0xe72e('0x1c')][_0xe72e('0x1d')](_0xe72e('0x1e'))){_0xa161c0[_0xe72e('0x12')][_0xe72e('0x1c')]=rta[_0xe72e('0x1f')](_0xa161c0['query']['sort']);return;}var _0x55fcca=rta[_0xe72e('0x20')](_0xa161c0[_0xe72e('0x12')][_0xe72e('0x1c')]);_0xa161c0[_0xe72e('0x12')][_0xe72e('0x1c')]=_0x55fcca[_0xe72e('0x21')][_0xe72e('0x22')](',');_0x32dea8=_0x55fcca[_0xe72e('0x23')];})[_0xe72e('0x24')](function(){if(!_0x1294f5){return[];}return rta[_0xe72e('0x25')](_0x1294f5,_0x58e738);})['then'](function(_0xf1fa1e){_0x1e75ca=_0xf1fa1e;return rta[_0xe72e('0x26')]();})[_0xe72e('0x24')](function(_0x1e260d){_0x3f6320=_0x1e260d['rows'];if((!_0x20a1cd||_0x13cffe)&&!_0x32dea8){return _0x1e75ca;}if(_0x32dea8&&!_0x20a1cd){return rta[_0xe72e('0x27')](_0x3f6320,_0x1e75ca,_0x32dea8);}else{return rta[_0xe72e('0x28')](_0x3f6320,_0x1e75ca,_0x20a1cd);}})['then'](function(_0x1c1825){_0x1e75ca=_0x1c1825;var _0x3e5e46=![];if(_0x1e75ca['length']===0x0){if(_0x1294f5||_0x20a1cd){_0x3e5e46=!![];}if(_0x13cffe){_0x3e5e46=![];}}if(_0x3e5e46){return _0x34b593;}var _0x23c506=_['map'](db['User'][_0xe72e('0x29')],function(_0x7e9a21){return{'name':_0x7e9a21[_0xe72e('0x2a')],'type':_0x7e9a21[_0xe72e('0x2b')][_0xe72e('0x2c')]};});_0xa161c0[_0xe72e('0x12')][_0xe72e('0x2d')]='agent';_0x4c2a2=qs[_0xe72e('0x2e')](_0x23c506,_0xa161c0);_0x4c2a2[_0xe72e('0x2f')]=!![];var _0x73df56=[];if(_0x1e75ca[_0xe72e('0x30')]>0x0){_0x73df56['push']({'id':{'$in':_0x1e75ca}});if(_0x32dea8&&!_0x20a1cd){_0x2f4b60=[db['sequelize']['literal']('FIELD(id,'+_0x1e75ca+')')];_0x4c2a2['order']=_0x2f4b60;}}if(_0x13cffe){_0x30521d[_0xe72e('0x31')](function(_0x2b5e64){var _0x2ad173=!![];if(_0x20a1cd===_0xe72e('0x16')&&_0x58e738!==_0x2b5e64){_0x2ad173=![];}_0x73df56[_0xe72e('0x32')]({[_0x2b5e64+_0xe72e('0x33')]:_0x2ad173});});if(_0xc6abd7){_0x73df56[_0xe72e('0x32')]({'pauseType':_0xc6abd7});}}else if(_0x20a1cd){_0x30521d[_0xe72e('0x31')](function(_0x57daec){_0x73df56[_0xe72e('0x32')]({[_0x57daec+'Pause']:![]});});}_0x4c2a2[_0xe72e('0x34')]=_['merge'](_0x4c2a2[_0xe72e('0x34')],{'$and':_0x73df56});if(_0xa161c0[_0xe72e('0x35')][_0xe72e('0x2d')]===_0xe72e('0x35')){var _0x5b15fd={'params':{'id':_0xa161c0[_0xe72e('0x35')]['userProfileId']},'query':{'section':_0xe72e('0x36'),'role':_0xe72e('0x37'),'raw':!![],'ids':_0x1e75ca,'customSorting':_0x2f4b60}};if(_0xa161c0[_0xe72e('0x12')][_0xe72e('0x38')]){_0x5b15fd[_0xe72e('0x12')][_0xe72e('0x38')]=!![];}if(_0x13cffe){_0x5b15fd[_0xe72e('0x12')]['extraQueryConditions']=_0x73df56;}_0x5b15fd[_0xe72e('0x12')]=Object['assign'](_0x5b15fd[_0xe72e('0x12')],_['omit'](_0xa161c0['query'],'id'));return db['UserProfile'][_0xe72e('0x39')](_0x5b15fd);}return db[_0xe72e('0x3a')]['findAndCountAll'](_0x4c2a2);})[_0xe72e('0x24')](function(_0x6ba63c){_0x34b593[_0xe72e('0xc')]=_0x6ba63c[_0xe72e('0xc')];_0xa59dce=_0x6ba63c[_0xe72e('0x3b')];return _0xa59dce[_0xe72e('0x3c')](function(_0x34b375){var _0x5127d0=_['find'](_0x3f6320,['id',_0x34b375['id']]);if(_0x5127d0){var _0x2e03ee=rta[_0xe72e('0x3d')](_0x5127d0);_[_0xe72e('0x3e')](_0x34b375,_0x2e03ee);}_0x34b375[_0xe72e('0x1e')]=rta[_0xe72e('0x3f')](_0x34b375);if(_0x34b375[_0xe72e('0x1e')]['includes'](_0xe72e('0x15'))){_0x30521d[_0xe72e('0x31')](function(_0xea64df){if(_0x34b375[_0xea64df+_0xe72e('0x33')]){if(_0xea64df===_0xe72e('0x40')){if(_0x34b375[_0xe72e('0x41')]!==_0xe72e('0x42')){_0x34b375[_0xe72e('0x41')]=_0xe72e('0x15');}}else{_0x34b375[_0xea64df+'Status']=_0xe72e('0x15');}}});}return _0x34b375;});})[_0xe72e('0x24')](function(_0x29fe00){if(!_0x32dea8||_0x2f4b60){return _0x29fe00;}return rta[_0xe72e('0x43')](_0x29fe00,_0x32dea8);})[_0xe72e('0x24')](function(_0x54fd52){var _0x1defc5=rta['getRealtimeAgentsQueryFields']();_0x34b593[_0xe72e('0x3b')]=_0x54fd52[_0xe72e('0x3c')](function(_0x29f1a6){return _[_0xe72e('0x44')](_0x29f1a6,_0x1defc5);});return _0x34b593;})['then'](respondWithFilteredResult(_0x57a177,_0x4c2a2))[_0xe72e('0x45')](APIHandleError(_0x57a177));};exports['getQueues']=function(_0x372727,_0x181e09){var _0x59fae6={'count':0x0,'rows':[]};var _0x5b675e={};var _0x105f78;var _0x4320b1;var _0x1b2dec;Promise[_0xe72e('0x17')]()[_0xe72e('0x24')](function(){if(_0x372727[_0xe72e('0x12')][_0xe72e('0x18')]){if(!utils[_0xe72e('0x46')](_0x372727[_0xe72e('0x12')][_0xe72e('0x18')])){throw new APIBadRequestError(util[_0xe72e('0x19')](_0xe72e('0x1a'),_0x372727[_0xe72e('0x12')]['channel']));}_0x105f78=_0x372727[_0xe72e('0x12')][_0xe72e('0x18')][_0xe72e('0x1b')]();}var _0x496de4=_[_0xe72e('0x47')](_0x105f78)+_0xe72e('0x48');var _0x4135c0=_['map'](db[_0x496de4][_0xe72e('0x29')],function(_0x5b6da9){return{'name':_0x5b6da9[_0xe72e('0x2a')],'type':_0x5b6da9['type']['key']};});if(!_0x372727[_0xe72e('0x12')][_0xe72e('0x21')]){var _0x1e3113=['id',_0xe72e('0x49')];if(_0x105f78===_0xe72e('0x40')){_0x1e3113[_0xe72e('0x32')](_0xe72e('0x2b'));if(_0x372727['query'][_0xe72e('0x2b')]==='outbound'){_0x1e3113[_0xe72e('0x32')](['dialActive','dialMethod']);}}_0x372727[_0xe72e('0x12')][_0xe72e('0x21')]=_0x1e3113[_0xe72e('0x22')](',');}_0x5b675e=qs[_0xe72e('0x2e')](_0x4135c0,_0x372727);if(_0x372727[_0xe72e('0x35')][_0xe72e('0x2d')]===_0xe72e('0x35')){var _0x358344={'params':{'id':_0x372727[_0xe72e('0x35')][_0xe72e('0x4a')]},'query':{'section':_0x105f78===_0xe72e('0x40')&&_0x372727[_0xe72e('0x12')][_0xe72e('0x2b')]===_0xe72e('0x4b')?_0xe72e('0x4c'):_[_0xe72e('0x47')](_0x105f78)+_0xe72e('0x4d'),'type':_0x372727[_0xe72e('0x12')][_0xe72e('0x2b')],'nolimit':!![],'sort':_0xe72e('0x49'),'filter':_0x372727['query']['filter']}};_0x358344[_0xe72e('0x12')]=Object[_0xe72e('0x4e')](_0x358344['query'],_0x372727[_0xe72e('0x12')]);delete _0x358344['query']['id'];return db[_0xe72e('0x4f')][_0xe72e('0x39')](_0x358344);}return db[_0x496de4]['findAndCountAll'](_0x5b675e);})[_0xe72e('0x24')](function(_0x29615f){_0x59fae6[_0xe72e('0xc')]=_0x29615f['count'];_0x4320b1=_0x29615f['rows'];return rtq[_0xe72e('0x50')](_0x372727,_0x105f78);})['then'](function(_0x5dbf74){_0x1b2dec=_0x5dbf74[_0xe72e('0x3b')];return rtq[_0xe72e('0x51')](_0x4320b1,_0x1b2dec,_0x105f78,_0x372727['query'][_0xe72e('0x2b')]);})[_0xe72e('0x24')](function(_0x46a8ce){_0x59fae6['rows']=_0x46a8ce;return _0x59fae6;})[_0xe72e('0x24')](respondWithFilteredResult(_0x181e09,_0x5b675e))[_0xe72e('0x45')](APIHandleError(_0x181e09));};