Built motion from commit d1eab355.|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 _0x1be6=['initializeQueues','lodash','util','../../components/parsers/qs','../../config/utils','../../mysqldb','../../errors/api','APIBadRequestError','offset','undefined','limit','count','status','set','Content-Range','getAgents','globalQueueFilter','query','pauseTypeFilter','*pause','resolve','channel','isValidChannel','format','Channel\x20parameter\x20%s\x20is\x20invalid','toLowerCase','includes','globalStatus','validateSortParameter','sort','join','then','getAgentIdsByQueues','getRealtimeAgents','rows','getSortedAgentsIdsByStatus','getAgentIdsByStatus','length','User','fieldName','type','key','role','agent','getOptions','push','literal','FIELD(id,','order','forEach','Pause','where','user','userProfileId','online','extraQueryConditions','assign','omit','UserProfile','map','find','filterAgentAttributes','merge','getAgentStatus','pause','voiceStatus','talking','getRealtimeAgentsQueryFields','pick','catch','getQueues','startCase','Queue','rawAttributes','fields','voice','dialActive','dialMethod','outbound','Queues','name','findAndCountAll','getRealtimeQueues'];(function(_0x3308db,_0x15e3fa){var _0x13a767=function(_0x5b69b){while(--_0x5b69b){_0x3308db['push'](_0x3308db['shift']());}};_0x13a767(++_0x15e3fa);}(_0x1be6,0xa7));var _0x61be=function(_0x164bfe,_0x155993){_0x164bfe=_0x164bfe-0x0;var _0x23d7ec=_0x1be6[_0x164bfe];return _0x23d7ec;};'use strict';var _=require(_0x61be('0x0'));var util=require(_0x61be('0x1'));var rta=require('../../components/realtime/agents');var rtq=require('../../components/realtime/queues');var qs=require(_0x61be('0x2'));var utils=require(_0x61be('0x3'));var db=require(_0x61be('0x4'))['db'];var APIBadRequestError=require(_0x61be('0x5'))[_0x61be('0x6')];var APIHandleError=require(_0x61be('0x5'))['handleError'];function respondWithFilteredResult(_0x125cf3,_0x106205){return function(_0x4912fa){if(_0x4912fa){var _0x1f2888=typeof _0x106205[_0x61be('0x7')]===_0x61be('0x8')&&typeof _0x106205[_0x61be('0x9')]===_0x61be('0x8');var _0x2e1f37=_0x4912fa[_0x61be('0xa')];var _0x49e205=_0x1f2888?0x0:_0x106205['offset'];var _0xa82542=_0x1f2888?_0x4912fa[_0x61be('0xa')]:_0x106205[_0x61be('0x7')]+_0x106205[_0x61be('0x9')];var _0x5b1d7b;if(_0xa82542>=_0x2e1f37){_0xa82542=_0x2e1f37;_0x5b1d7b=0xc8;}else{_0x5b1d7b=0xce;}_0x125cf3[_0x61be('0xb')](_0x5b1d7b);return _0x125cf3[_0x61be('0xc')](_0x61be('0xd'),_0x49e205+'-'+_0xa82542+'/'+_0x2e1f37)['json'](_0x4912fa);}return null;};}exports[_0x61be('0xe')]=function(_0x296bad,_0x5961e7){var _0x52a043={'count':0x0,'rows':[]};var _0x97ac15={};var _0x578d66;var _0x348a39=utils['getChannels']();var _0x426690;var _0x33f20f;var _0x2e5d0b=_0x296bad['query'][_0x61be('0xf')];var _0x3bac32=_0x296bad[_0x61be('0x10')]['globalStatusFilter'];var _0x1688fe=_0x296bad[_0x61be('0x10')][_0x61be('0x11')];var _0x194b06=_0x3bac32==='pause'||_0x3bac32===_0x61be('0x12')?!![]:![];var _0x4b8922=[];var _0x21c346;var _0x2da60f;Promise[_0x61be('0x13')]()['then'](function(){if(_0x296bad[_0x61be('0x10')][_0x61be('0x14')]){if(!utils[_0x61be('0x15')](_0x296bad['query'][_0x61be('0x14')])){throw new APIBadRequestError(util[_0x61be('0x16')](_0x61be('0x17'),_0x296bad['query'][_0x61be('0x14')]));}_0x578d66=_0x296bad[_0x61be('0x10')][_0x61be('0x14')][_0x61be('0x18')]();}if(!_0x296bad[_0x61be('0x10')]['sort']||!_0x296bad['query']['sort'][_0x61be('0x19')](_0x61be('0x1a'))){_0x296bad['query']['sort']=rta[_0x61be('0x1b')](_0x296bad['query'][_0x61be('0x1c')]);return;}var _0x696176=rta['getUpdatedSortOptions'](_0x296bad['query'][_0x61be('0x1c')]);_0x296bad[_0x61be('0x10')]['sort']=_0x696176['fields'][_0x61be('0x1d')](',');_0x21c346=_0x696176['order'];})[_0x61be('0x1e')](function(){if(!_0x2e5d0b){return[];}return rta[_0x61be('0x1f')](_0x2e5d0b,_0x578d66);})[_0x61be('0x1e')](function(_0x4f37e6){_0x4b8922=_0x4f37e6;return rta[_0x61be('0x20')]();})[_0x61be('0x1e')](function(_0x345732){_0x33f20f=_0x345732[_0x61be('0x21')];if((!_0x3bac32||_0x194b06)&&!_0x21c346){return _0x4b8922;}if(_0x21c346&&!_0x3bac32){return rta[_0x61be('0x22')](_0x33f20f,_0x4b8922,_0x21c346);}else{return rta[_0x61be('0x23')](_0x33f20f,_0x4b8922,_0x3bac32);}})[_0x61be('0x1e')](function(_0x244632){_0x4b8922=_0x244632;var _0x59e652=![];if(_0x4b8922[_0x61be('0x24')]===0x0){if(_0x2e5d0b||_0x3bac32){_0x59e652=!![];}if(_0x194b06){_0x59e652=![];}}if(_0x59e652){return _0x52a043;}var _0x734937=_['map'](db[_0x61be('0x25')]['rawAttributes'],function(_0x50f021){return{'name':_0x50f021[_0x61be('0x26')],'type':_0x50f021[_0x61be('0x27')][_0x61be('0x28')]};});_0x296bad[_0x61be('0x10')][_0x61be('0x29')]=_0x61be('0x2a');_0x97ac15=qs[_0x61be('0x2b')](_0x734937,_0x296bad);_0x97ac15['raw']=!![];var _0x149fa5=[];if(_0x4b8922[_0x61be('0x24')]>0x0){_0x149fa5[_0x61be('0x2c')]({'id':{'$in':_0x4b8922}});if(_0x21c346&&!_0x3bac32){_0x2da60f=[db['sequelize'][_0x61be('0x2d')](_0x61be('0x2e')+_0x4b8922+')')];_0x97ac15[_0x61be('0x2f')]=_0x2da60f;}}if(_0x194b06){_0x348a39[_0x61be('0x30')](function(_0x34098e){var _0x791ca6=!![];if(_0x3bac32==='*pause'&&_0x578d66!==_0x34098e){_0x791ca6=![];}_0x149fa5[_0x61be('0x2c')]({[_0x34098e+'Pause']:_0x791ca6});});if(_0x1688fe){_0x149fa5[_0x61be('0x2c')]({'pauseType':_0x1688fe});}}else if(_0x3bac32){_0x348a39[_0x61be('0x30')](function(_0x4ac6a4){_0x149fa5['push']({[_0x4ac6a4+_0x61be('0x31')]:![]});});}_0x97ac15['where']=_['merge'](_0x97ac15[_0x61be('0x32')],{'$and':_0x149fa5});if(_0x296bad[_0x61be('0x33')][_0x61be('0x29')]===_0x61be('0x33')){var _0x5dd42b={'params':{'id':_0x296bad[_0x61be('0x33')][_0x61be('0x34')]},'query':{'section':'Agents','role':'agent','raw':!![],'ids':_0x4b8922,'customSorting':_0x2da60f}};if(_0x296bad[_0x61be('0x10')][_0x61be('0x35')]){_0x5dd42b['query'][_0x61be('0x35')]=!![];}if(_0x194b06){_0x5dd42b['query'][_0x61be('0x36')]=_0x149fa5;}_0x5dd42b['query']=Object[_0x61be('0x37')](_0x5dd42b['query'],_[_0x61be('0x38')](_0x296bad[_0x61be('0x10')],'id'));return db[_0x61be('0x39')]['getResources'](_0x5dd42b);}return db[_0x61be('0x25')]['findAndCountAll'](_0x97ac15);})[_0x61be('0x1e')](function(_0x43c3f4){_0x52a043[_0x61be('0xa')]=_0x43c3f4[_0x61be('0xa')];_0x426690=_0x43c3f4[_0x61be('0x21')];return _0x426690[_0x61be('0x3a')](function(_0x4cb6b1){var _0x46d2e7=_[_0x61be('0x3b')](_0x33f20f,['id',_0x4cb6b1['id']]);if(_0x46d2e7){var _0x5873c0=rta[_0x61be('0x3c')](_0x46d2e7);_[_0x61be('0x3d')](_0x4cb6b1,_0x5873c0);}_0x4cb6b1['globalStatus']=rta[_0x61be('0x3e')](_0x4cb6b1);if(_0x4cb6b1[_0x61be('0x1a')][_0x61be('0x19')](_0x61be('0x3f'))){_0x348a39[_0x61be('0x30')](function(_0x2522bf){if(_0x4cb6b1[_0x2522bf+_0x61be('0x31')]){if(_0x2522bf==='voice'){if(_0x4cb6b1[_0x61be('0x40')]!==_0x61be('0x41')){_0x4cb6b1['voiceStatus']=_0x61be('0x3f');}}else{_0x4cb6b1[_0x2522bf+'Status']=_0x61be('0x3f');}}});}return _0x4cb6b1;});})[_0x61be('0x1e')](function(_0x4662c9){if(!_0x21c346||_0x2da60f){return _0x4662c9;}return rta['sortAgentsByStatus'](_0x4662c9,_0x21c346);})[_0x61be('0x1e')](function(_0x40bb49){var _0x1c204e=rta[_0x61be('0x42')]();_0x52a043[_0x61be('0x21')]=_0x40bb49[_0x61be('0x3a')](function(_0x276c36){return _[_0x61be('0x43')](_0x276c36,_0x1c204e);});return _0x52a043;})['then'](respondWithFilteredResult(_0x5961e7,_0x97ac15))[_0x61be('0x44')](APIHandleError(_0x5961e7));};exports[_0x61be('0x45')]=function(_0x2a978a,_0x138d7b){var _0x37a344={'count':0x0,'rows':[]};var _0xa91c07={};var _0x35d810;var _0x213bcd;var _0x478d01;Promise[_0x61be('0x13')]()[_0x61be('0x1e')](function(){if(_0x2a978a[_0x61be('0x10')][_0x61be('0x14')]){if(!utils[_0x61be('0x15')](_0x2a978a[_0x61be('0x10')][_0x61be('0x14')])){throw new APIBadRequestError(util[_0x61be('0x16')](_0x61be('0x17'),_0x2a978a[_0x61be('0x10')][_0x61be('0x14')]));}_0x35d810=_0x2a978a[_0x61be('0x10')][_0x61be('0x14')][_0x61be('0x18')]();}var _0xe630e2=_[_0x61be('0x46')](_0x35d810)+_0x61be('0x47');var _0x28a348=_[_0x61be('0x3a')](db[_0xe630e2][_0x61be('0x48')],function(_0x3cb621){return{'name':_0x3cb621[_0x61be('0x26')],'type':_0x3cb621[_0x61be('0x27')][_0x61be('0x28')]};});if(!_0x2a978a[_0x61be('0x10')][_0x61be('0x49')]){var _0x29349f=['id','name'];if(_0x35d810===_0x61be('0x4a')){_0x29349f['push'](_0x61be('0x27'));if(_0x2a978a[_0x61be('0x10')][_0x61be('0x27')]==='outbound'){_0x29349f[_0x61be('0x2c')]([_0x61be('0x4b'),_0x61be('0x4c')]);}}_0x2a978a[_0x61be('0x10')][_0x61be('0x49')]=_0x29349f['join'](',');}_0xa91c07=qs[_0x61be('0x2b')](_0x28a348,_0x2a978a);if(_0x2a978a[_0x61be('0x33')]['role']===_0x61be('0x33')){var _0xd71291={'params':{'id':_0x2a978a[_0x61be('0x33')][_0x61be('0x34')]},'query':{'section':_0x35d810===_0x61be('0x4a')&&_0x2a978a[_0x61be('0x10')][_0x61be('0x27')]===_0x61be('0x4d')?'QueueCampaigns':_[_0x61be('0x46')](_0x35d810)+_0x61be('0x4e'),'type':_0x2a978a[_0x61be('0x10')][_0x61be('0x27')],'nolimit':!![],'sort':_0x61be('0x4f'),'filter':_0x2a978a[_0x61be('0x10')]['filter']}};_0xd71291[_0x61be('0x10')]=Object[_0x61be('0x37')](_0xd71291[_0x61be('0x10')],_0x2a978a[_0x61be('0x10')]);delete _0xd71291[_0x61be('0x10')]['id'];return db[_0x61be('0x39')]['getResources'](_0xd71291);}return db[_0xe630e2][_0x61be('0x50')](_0xa91c07);})[_0x61be('0x1e')](function(_0x462782){_0x37a344[_0x61be('0xa')]=_0x462782[_0x61be('0xa')];_0x213bcd=_0x462782['rows'];return rtq[_0x61be('0x51')](_0x2a978a,_0x35d810);})[_0x61be('0x1e')](function(_0x340a3c){_0x478d01=_0x340a3c['rows'];return rtq[_0x61be('0x52')](_0x213bcd,_0x478d01,_0x35d810,_0x2a978a[_0x61be('0x10')]['type']);})[_0x61be('0x1e')](function(_0x367a42){_0x37a344[_0x61be('0x21')]=_0x367a42;return _0x37a344;})[_0x61be('0x1e')](respondWithFilteredResult(_0x138d7b,_0xa91c07))[_0x61be('0x44')](APIHandleError(_0x138d7b));};