Built motion from commit 511216ff.|2.6.34
[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 _0x86ab=['raw','sequelize','literal','FIELD(id,','forEach','push','Pause','where','merge','user','Agents','online','extraQueryConditions','assign','getResources','findAndCountAll','find','filterAgentAttributes','globalStatus','getAgentStatus','includes','voice','voiceStatus','talking','Status','sortAgentsByStatus','getRealtimeAgentsQueryFields','pick','catch','getQueues','startCase','Queue','fields','name','outbound','dialActive','dialMethod','join','userProfileId','QueueCampaigns','Queues','filter','UserProfile','getRealtimeQueues','lodash','../../components/realtime/agents','../../components/realtime/queues','../../components/parsers/qs','../../config/utils','APIBadRequestError','../../errors/api','handleError','offset','undefined','limit','count','status','set','Content-Range','json','getAgents','getChannels','query','pauseTypeFilter','pause','*pause','resolve','channel','isValidChannel','format','Channel\x20parameter\x20%s\x20is\x20invalid','toLowerCase','sort','validateSortParameter','getUpdatedSortOptions','order','then','getAgentIdsByQueues','getRealtimeAgents','rows','getSortedAgentsIdsByStatus','getAgentIdsByStatus','length','map','User','rawAttributes','fieldName','type','key','role','agent','getOptions'];(function(_0x28ea3b,_0x13d7a1){var _0x5ac766=function(_0x1ea77b){while(--_0x1ea77b){_0x28ea3b['push'](_0x28ea3b['shift']());}};_0x5ac766(++_0x13d7a1);}(_0x86ab,0x140));var _0xb86a=function(_0x704d5d,_0xf94e89){_0x704d5d=_0x704d5d-0x0;var _0x1020ee=_0x86ab[_0x704d5d];return _0x1020ee;};'use strict';var _=require(_0xb86a('0x0'));var util=require('util');var rta=require(_0xb86a('0x1'));var rtq=require(_0xb86a('0x2'));var qs=require(_0xb86a('0x3'));var utils=require(_0xb86a('0x4'));var db=require('../../mysqldb')['db'];var APIBadRequestError=require('../../errors/api')[_0xb86a('0x5')];var APIHandleError=require(_0xb86a('0x6'))[_0xb86a('0x7')];function respondWithFilteredResult(_0x2a6335,_0x336e69){return function(_0x49b89d){if(_0x49b89d){var _0x4e8159=typeof _0x336e69[_0xb86a('0x8')]===_0xb86a('0x9')&&typeof _0x336e69[_0xb86a('0xa')]===_0xb86a('0x9');var _0x15bb84=_0x49b89d[_0xb86a('0xb')];var _0x3f2439=_0x4e8159?0x0:_0x336e69['offset'];var _0x530efd=_0x4e8159?_0x49b89d[_0xb86a('0xb')]:_0x336e69[_0xb86a('0x8')]+_0x336e69[_0xb86a('0xa')];var _0x5235c2;if(_0x530efd>=_0x15bb84){_0x530efd=_0x15bb84;_0x5235c2=0xc8;}else{_0x5235c2=0xce;}_0x2a6335[_0xb86a('0xc')](_0x5235c2);return _0x2a6335[_0xb86a('0xd')](_0xb86a('0xe'),_0x3f2439+'-'+_0x530efd+'/'+_0x15bb84)[_0xb86a('0xf')](_0x49b89d);}return null;};}exports[_0xb86a('0x10')]=function(_0x167f10,_0x244367){var _0x2f0ae3={'count':0x0,'rows':[]};var _0x51ef57={};var _0x2a32e2;var _0x5acead=utils[_0xb86a('0x11')]();var _0x573fe0;var _0x16567d;var _0x3a3885=_0x167f10['query']['globalQueueFilter'];var _0x41a02d=_0x167f10[_0xb86a('0x12')]['globalStatusFilter'];var _0x675589=_0x167f10[_0xb86a('0x12')][_0xb86a('0x13')];var _0x1f49b5=_0x41a02d===_0xb86a('0x14')||_0x41a02d===_0xb86a('0x15')?!![]:![];var _0x3cc71d=[];var _0x5dca65;var _0x5b2dee;Promise[_0xb86a('0x16')]()['then'](function(){if(_0x167f10['query'][_0xb86a('0x17')]){if(!utils[_0xb86a('0x18')](_0x167f10[_0xb86a('0x12')]['channel'])){throw new APIBadRequestError(util[_0xb86a('0x19')](_0xb86a('0x1a'),_0x167f10[_0xb86a('0x12')][_0xb86a('0x17')]));}_0x2a32e2=_0x167f10[_0xb86a('0x12')]['channel'][_0xb86a('0x1b')]();}if(!_0x167f10[_0xb86a('0x12')][_0xb86a('0x1c')]||!_0x167f10[_0xb86a('0x12')][_0xb86a('0x1c')]['includes']('globalStatus')){_0x167f10[_0xb86a('0x12')][_0xb86a('0x1c')]=rta[_0xb86a('0x1d')](_0x167f10[_0xb86a('0x12')][_0xb86a('0x1c')]);return;}var _0x25ddc4=rta[_0xb86a('0x1e')](_0x167f10['query'][_0xb86a('0x1c')]);_0x167f10[_0xb86a('0x12')][_0xb86a('0x1c')]=_0x25ddc4['fields']['join'](',');_0x5dca65=_0x25ddc4[_0xb86a('0x1f')];})[_0xb86a('0x20')](function(){if(!_0x3a3885){return[];}return rta[_0xb86a('0x21')](_0x3a3885,_0x2a32e2);})['then'](function(_0x2d0de8){_0x3cc71d=_0x2d0de8;return rta[_0xb86a('0x22')]();})[_0xb86a('0x20')](function(_0x3abd9c){_0x16567d=_0x3abd9c[_0xb86a('0x23')];if((!_0x41a02d||_0x1f49b5)&&!_0x5dca65){return _0x3cc71d;}if(_0x5dca65&&!_0x41a02d){return rta[_0xb86a('0x24')](_0x16567d,_0x3cc71d,_0x5dca65);}else{return rta[_0xb86a('0x25')](_0x16567d,_0x3cc71d,_0x41a02d);}})[_0xb86a('0x20')](function(_0x4606e8){_0x3cc71d=_0x4606e8;var _0x16420c=![];if(_0x3cc71d[_0xb86a('0x26')]===0x0){if(_0x3a3885||_0x41a02d){_0x16420c=!![];}if(_0x1f49b5){_0x16420c=![];}}if(_0x16420c){return _0x2f0ae3;}var _0x41ca36=_[_0xb86a('0x27')](db[_0xb86a('0x28')][_0xb86a('0x29')],function(_0x4b5744){return{'name':_0x4b5744[_0xb86a('0x2a')],'type':_0x4b5744[_0xb86a('0x2b')][_0xb86a('0x2c')]};});_0x167f10[_0xb86a('0x12')][_0xb86a('0x2d')]=_0xb86a('0x2e');_0x51ef57=qs[_0xb86a('0x2f')](_0x41ca36,_0x167f10);_0x51ef57[_0xb86a('0x30')]=!![];var _0x20022f=[];if(_0x3cc71d[_0xb86a('0x26')]>0x0){_0x20022f['push']({'id':{'$in':_0x3cc71d}});if(_0x5dca65&&!_0x41a02d){_0x5b2dee=[db[_0xb86a('0x31')][_0xb86a('0x32')](_0xb86a('0x33')+_0x3cc71d+')')];_0x51ef57[_0xb86a('0x1f')]=_0x5b2dee;}}if(_0x1f49b5){_0x5acead[_0xb86a('0x34')](function(_0x21b5c8){var _0x458319=!![];if(_0x41a02d==='*pause'&&_0x2a32e2!==_0x21b5c8){_0x458319=![];}_0x20022f[_0xb86a('0x35')]({[_0x21b5c8+_0xb86a('0x36')]:_0x458319});});if(_0x675589){_0x20022f['push']({'pauseType':_0x675589});}}else if(_0x41a02d){_0x5acead[_0xb86a('0x34')](function(_0x18cf82){_0x20022f[_0xb86a('0x35')]({[_0x18cf82+_0xb86a('0x36')]:![]});});}_0x51ef57[_0xb86a('0x37')]=_[_0xb86a('0x38')](_0x51ef57[_0xb86a('0x37')],{'$and':_0x20022f});if(_0x167f10[_0xb86a('0x39')][_0xb86a('0x2d')]===_0xb86a('0x39')){var _0x5b2816={'params':{'id':_0x167f10[_0xb86a('0x39')]['userProfileId']},'query':{'section':_0xb86a('0x3a'),'role':_0xb86a('0x2e'),'raw':!![],'ids':_0x3cc71d,'customSorting':_0x5b2dee}};if(_0x167f10[_0xb86a('0x12')][_0xb86a('0x3b')]){_0x5b2816[_0xb86a('0x12')][_0xb86a('0x3b')]=!![];}if(_0x1f49b5){_0x5b2816['query'][_0xb86a('0x3c')]=_0x20022f;}_0x5b2816[_0xb86a('0x12')]=Object[_0xb86a('0x3d')](_0x5b2816[_0xb86a('0x12')],_['omit'](_0x167f10[_0xb86a('0x12')],'id'));return db['UserProfile'][_0xb86a('0x3e')](_0x5b2816);}return db[_0xb86a('0x28')][_0xb86a('0x3f')](_0x51ef57);})[_0xb86a('0x20')](function(_0x3382c6){_0x2f0ae3['count']=_0x3382c6['count'];_0x573fe0=_0x3382c6[_0xb86a('0x23')];return _0x573fe0[_0xb86a('0x27')](function(_0x2c4a8d){var _0x2cbd75=_[_0xb86a('0x40')](_0x16567d,['id',_0x2c4a8d['id']]);if(_0x2cbd75){var _0x3beeea=rta[_0xb86a('0x41')](_0x2cbd75);_['merge'](_0x2c4a8d,_0x3beeea);}_0x2c4a8d[_0xb86a('0x42')]=rta[_0xb86a('0x43')](_0x2c4a8d);if(_0x2c4a8d[_0xb86a('0x42')][_0xb86a('0x44')](_0xb86a('0x14'))){_0x5acead[_0xb86a('0x34')](function(_0x2feafa){if(_0x2c4a8d[_0x2feafa+_0xb86a('0x36')]){if(_0x2feafa===_0xb86a('0x45')){if(_0x2c4a8d[_0xb86a('0x46')]!==_0xb86a('0x47')){_0x2c4a8d[_0xb86a('0x46')]=_0xb86a('0x14');}}else{_0x2c4a8d[_0x2feafa+_0xb86a('0x48')]=_0xb86a('0x14');}}});}return _0x2c4a8d;});})[_0xb86a('0x20')](function(_0x423180){if(!_0x5dca65||_0x5b2dee){return _0x423180;}return rta[_0xb86a('0x49')](_0x423180,_0x5dca65);})[_0xb86a('0x20')](function(_0x3f7117){var _0x3bd6d0=rta[_0xb86a('0x4a')]();_0x2f0ae3[_0xb86a('0x23')]=_0x3f7117[_0xb86a('0x27')](function(_0x152627){return _[_0xb86a('0x4b')](_0x152627,_0x3bd6d0);});return _0x2f0ae3;})['then'](respondWithFilteredResult(_0x244367,_0x51ef57))[_0xb86a('0x4c')](APIHandleError(_0x244367));};exports[_0xb86a('0x4d')]=function(_0x2bf30f,_0x1c21f6){var _0x1c9c0f={'count':0x0,'rows':[]};var _0x2ee837={};var _0x333712;var _0x37eac3;var _0x1a5181;Promise[_0xb86a('0x16')]()[_0xb86a('0x20')](function(){if(_0x2bf30f[_0xb86a('0x12')][_0xb86a('0x17')]){if(!utils[_0xb86a('0x18')](_0x2bf30f[_0xb86a('0x12')][_0xb86a('0x17')])){throw new APIBadRequestError(util['format'](_0xb86a('0x1a'),_0x2bf30f['query'][_0xb86a('0x17')]));}_0x333712=_0x2bf30f[_0xb86a('0x12')][_0xb86a('0x17')][_0xb86a('0x1b')]();}var _0x293a72=_[_0xb86a('0x4e')](_0x333712)+_0xb86a('0x4f');var _0x270f56=_[_0xb86a('0x27')](db[_0x293a72][_0xb86a('0x29')],function(_0x4f94cb){return{'name':_0x4f94cb[_0xb86a('0x2a')],'type':_0x4f94cb[_0xb86a('0x2b')]['key']};});if(!_0x2bf30f['query'][_0xb86a('0x50')]){var _0x175f35=['id',_0xb86a('0x51')];if(_0x333712===_0xb86a('0x45')){_0x175f35[_0xb86a('0x35')](_0xb86a('0x2b'));if(_0x2bf30f[_0xb86a('0x12')][_0xb86a('0x2b')]===_0xb86a('0x52')){_0x175f35[_0xb86a('0x35')]([_0xb86a('0x53'),_0xb86a('0x54')]);}}_0x2bf30f[_0xb86a('0x12')][_0xb86a('0x50')]=_0x175f35[_0xb86a('0x55')](',');}_0x2ee837=qs[_0xb86a('0x2f')](_0x270f56,_0x2bf30f);if(_0x2bf30f['user'][_0xb86a('0x2d')]===_0xb86a('0x39')){var _0x202a2b={'params':{'id':_0x2bf30f['user'][_0xb86a('0x56')]},'query':{'section':_0x333712===_0xb86a('0x45')&&_0x2bf30f['query'][_0xb86a('0x2b')]==='outbound'?_0xb86a('0x57'):_[_0xb86a('0x4e')](_0x333712)+_0xb86a('0x58'),'type':_0x2bf30f[_0xb86a('0x12')][_0xb86a('0x2b')],'nolimit':!![],'sort':'name','filter':_0x2bf30f[_0xb86a('0x12')][_0xb86a('0x59')]}};_0x202a2b[_0xb86a('0x12')]=Object[_0xb86a('0x3d')](_0x202a2b[_0xb86a('0x12')],_0x2bf30f[_0xb86a('0x12')]);delete _0x202a2b['query']['id'];return db[_0xb86a('0x5a')][_0xb86a('0x3e')](_0x202a2b);}return db[_0x293a72]['findAndCountAll'](_0x2ee837);})[_0xb86a('0x20')](function(_0x492cac){_0x1c9c0f['count']=_0x492cac[_0xb86a('0xb')];_0x37eac3=_0x492cac[_0xb86a('0x23')];return rtq[_0xb86a('0x5b')](_0x2bf30f,_0x333712);})[_0xb86a('0x20')](function(_0x4cd0bf){_0x1a5181=_0x4cd0bf[_0xb86a('0x23')];return rtq['initializeQueues'](_0x37eac3,_0x1a5181,_0x333712,_0x2bf30f[_0xb86a('0x12')]['type']);})[_0xb86a('0x20')](function(_0x21c905){_0x1c9c0f[_0xb86a('0x23')]=_0x21c905;return _0x1c9c0f;})[_0xb86a('0x20')](respondWithFilteredResult(_0x1c21f6,_0x2ee837))[_0xb86a('0x4c')](APIHandleError(_0x1c21f6));};