Built motion from commit e38a297d.|2.6.18
[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 _0xfaa6=['voice','voiceStatus','talking','Status','sortAgentsByStatus','fields','split','catch','getQueues','Queue','outbound','dialMethod','QueueCampaigns','startCase','Queues','name','filter','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','resolve','channel','isValidChannel','format','Channel\x20parameter\x20%s\x20is\x20invalid','toLowerCase','sort','includes','globalStatus','validateSortParameter','getUpdatedSortOptions','join','then','getAgentIdsByQueues','getRealtimeAgents','rows','getSortedAgentsIdsByStatus','getAgentIdsByStatus','length','User','rawAttributes','type','key','role','agent','online','getOptions','push','literal','FIELD(id,','order','*pause','Pause','where','merge','user','Agents','assign','getResources','findAndCountAll','map','find','filterAgentAttributes','pause','forEach'];(function(_0x1a2630,_0x1eeb71){var _0x5d3763=function(_0x15757c){while(--_0x15757c){_0x1a2630['push'](_0x1a2630['shift']());}};_0x5d3763(++_0x1eeb71);}(_0xfaa6,0xbd));var _0x6faa=function(_0x52b7b9,_0x43ed4b){_0x52b7b9=_0x52b7b9-0x0;var _0x5b5d30=_0xfaa6[_0x52b7b9];return _0x5b5d30;};'use strict';var _=require(_0x6faa('0x0'));var util=require(_0x6faa('0x1'));var rta=require(_0x6faa('0x2'));var rtq=require(_0x6faa('0x3'));var qs=require(_0x6faa('0x4'));var utils=require(_0x6faa('0x5'));var db=require(_0x6faa('0x6'))['db'];var APIBadRequestError=require(_0x6faa('0x7'))[_0x6faa('0x8')];var APIHandleError=require(_0x6faa('0x7'))['handleError'];function respondWithFilteredResult(_0x5565cc,_0x370ebc){return function(_0x4e6b8b){if(_0x4e6b8b){var _0x229c57=typeof _0x370ebc[_0x6faa('0x9')]===_0x6faa('0xa')&&typeof _0x370ebc[_0x6faa('0xb')]===_0x6faa('0xa');var _0x4c5d33=_0x4e6b8b[_0x6faa('0xc')];var _0x1d682b=_0x229c57?0x0:_0x370ebc[_0x6faa('0x9')];var _0x31fc9a=_0x229c57?_0x4e6b8b[_0x6faa('0xc')]:_0x370ebc[_0x6faa('0x9')]+_0x370ebc[_0x6faa('0xb')];var _0x584efe;if(_0x31fc9a>=_0x4c5d33){_0x31fc9a=_0x4c5d33;_0x584efe=0xc8;}else{_0x584efe=0xce;}_0x5565cc[_0x6faa('0xd')](_0x584efe);return _0x5565cc[_0x6faa('0xe')](_0x6faa('0xf'),_0x1d682b+'-'+_0x31fc9a+'/'+_0x4c5d33)['json'](_0x4e6b8b);}return null;};}exports[_0x6faa('0x10')]=function(_0x2d06c1,_0x17913c){var _0x147a10={'count':0x0,'rows':[]};var _0x3605fa={};var _0x20c2a6;var _0x1ce5f5=utils[_0x6faa('0x11')]();var _0x215c6f;var _0x4b4cb0;var _0x47e044=_0x2d06c1[_0x6faa('0x12')][_0x6faa('0x13')];var _0x2779b8=_0x2d06c1[_0x6faa('0x12')][_0x6faa('0x14')];var _0x38f4dd=_0x2d06c1[_0x6faa('0x12')]['pauseTypeFilter'];var _0x59c342=_0x2779b8==='pause'||_0x2779b8==='*pause'?!![]:![];var _0x4b9320=[];var _0xe67697;var _0x4026ae;Promise[_0x6faa('0x15')]()['then'](function(){if(_0x2d06c1[_0x6faa('0x12')][_0x6faa('0x16')]){if(!utils[_0x6faa('0x17')](_0x2d06c1['query']['channel'])){throw new APIBadRequestError(util[_0x6faa('0x18')](_0x6faa('0x19'),_0x2d06c1[_0x6faa('0x12')][_0x6faa('0x16')]));}_0x20c2a6=_0x2d06c1[_0x6faa('0x12')][_0x6faa('0x16')][_0x6faa('0x1a')]();}if(!_0x2d06c1[_0x6faa('0x12')][_0x6faa('0x1b')]||!_0x2d06c1[_0x6faa('0x12')][_0x6faa('0x1b')][_0x6faa('0x1c')](_0x6faa('0x1d'))){_0x2d06c1[_0x6faa('0x12')][_0x6faa('0x1b')]=rta[_0x6faa('0x1e')](_0x2d06c1[_0x6faa('0x12')][_0x6faa('0x1b')]);return;}var _0x3b0fae=rta[_0x6faa('0x1f')](_0x2d06c1[_0x6faa('0x12')][_0x6faa('0x1b')]);_0x2d06c1[_0x6faa('0x12')][_0x6faa('0x1b')]=_0x3b0fae['fields'][_0x6faa('0x20')](',');_0xe67697=_0x3b0fae['order'];})[_0x6faa('0x21')](function(){if(!_0x47e044){return[];}return rta[_0x6faa('0x22')](_0x47e044,_0x20c2a6);})[_0x6faa('0x21')](function(_0x3f9e87){_0x4b9320=_0x3f9e87;return rta[_0x6faa('0x23')]();})['then'](function(_0x56cae0){_0x4b4cb0=_0x56cae0[_0x6faa('0x24')];if((!_0x2779b8||_0x59c342)&&!_0xe67697){return _0x4b9320;}if(_0xe67697&&!_0x2779b8){return rta[_0x6faa('0x25')](_0x4b4cb0,_0x4b9320,_0xe67697);}else{return rta[_0x6faa('0x26')](_0x4b4cb0,_0x4b9320,_0x2779b8);}})[_0x6faa('0x21')](function(_0x19f768){_0x4b9320=_0x19f768;var _0x3a7b08=![];if(_0x4b9320[_0x6faa('0x27')]===0x0){if(_0x47e044||_0x2779b8){_0x3a7b08=!![];}if(_0x59c342){_0x3a7b08=![];}}if(_0x3a7b08){return _0x147a10;}var _0x1cf367=_['map'](db[_0x6faa('0x28')][_0x6faa('0x29')],function(_0x186538){return{'name':_0x186538['fieldName'],'type':_0x186538[_0x6faa('0x2a')][_0x6faa('0x2b')]};});_0x2d06c1[_0x6faa('0x12')][_0x6faa('0x2c')]=_0x6faa('0x2d');_0x2d06c1[_0x6faa('0x12')][_0x6faa('0x2e')]=!![];_0x3605fa=qs[_0x6faa('0x2f')](_0x1cf367,_0x2d06c1);_0x3605fa['raw']=!![];var _0x1b7778=[];if(_0x4b9320[_0x6faa('0x27')]>0x0){_0x1b7778[_0x6faa('0x30')]({'id':{'$in':_0x4b9320}});if(_0xe67697&&!_0x2779b8){_0x4026ae=[db['sequelize'][_0x6faa('0x31')](_0x6faa('0x32')+_0x4b9320+')')];_0x3605fa[_0x6faa('0x33')]=_0x4026ae;}}if(_0x59c342){_0x1ce5f5['forEach'](function(_0x3f6279){var _0x504527=!![];if(_0x2779b8===_0x6faa('0x34')&&_0x20c2a6!==_0x3f6279){_0x504527=![];}_0x1b7778[_0x6faa('0x30')]({[_0x3f6279+'Pause']:_0x504527});});if(_0x38f4dd){_0x1b7778[_0x6faa('0x30')]({'pauseType':_0x38f4dd});}}else if(_0x2779b8){_0x1ce5f5['forEach'](function(_0x34e20c){_0x1b7778[_0x6faa('0x30')]({[_0x34e20c+_0x6faa('0x35')]:![]});});}_0x3605fa[_0x6faa('0x36')]=_[_0x6faa('0x37')](_0x3605fa[_0x6faa('0x36')],{'$and':_0x1b7778});if(_0x2d06c1[_0x6faa('0x38')][_0x6faa('0x2c')]===_0x6faa('0x38')){var _0x45c7b6={'params':{'id':_0x2d06c1['user']['userProfileId']},'query':{'section':_0x6faa('0x39'),'role':_0x6faa('0x2d'),'online':!![],'raw':!![],'ids':_0x4b9320,'customSorting':_0x4026ae}};if(_0x59c342){_0x45c7b6[_0x6faa('0x12')]['extraQueryConditions']=_0x1b7778;}_0x45c7b6[_0x6faa('0x12')]=Object[_0x6faa('0x3a')](_0x45c7b6[_0x6faa('0x12')],_0x2d06c1[_0x6faa('0x12')]);delete _0x45c7b6[_0x6faa('0x12')]['id'];return db['UserProfile'][_0x6faa('0x3b')](_0x45c7b6);}return db['User'][_0x6faa('0x3c')](_0x3605fa);})[_0x6faa('0x21')](function(_0x14a14a){_0x147a10[_0x6faa('0xc')]=_0x14a14a[_0x6faa('0xc')];_0x215c6f=_0x14a14a['rows'];return _0x215c6f[_0x6faa('0x3d')](function(_0x58e0a4){var _0x3d888d=_[_0x6faa('0x3e')](_0x4b4cb0,['id',_0x58e0a4['id']]);if(_0x3d888d){var _0x3fbd29=rta[_0x6faa('0x3f')](_0x3d888d);_[_0x6faa('0x37')](_0x58e0a4,_0x3fbd29);}_0x58e0a4[_0x6faa('0x1d')]=rta['getAgentStatus'](_0x58e0a4);if(_0x58e0a4[_0x6faa('0x1d')][_0x6faa('0x1c')](_0x6faa('0x40'))){_0x1ce5f5[_0x6faa('0x41')](function(_0xaf53b6){if(_0x58e0a4[_0xaf53b6+'Pause']){if(_0xaf53b6===_0x6faa('0x42')){if(_0x58e0a4[_0x6faa('0x43')]!==_0x6faa('0x44')){_0x58e0a4[_0x6faa('0x43')]='pause';}}else{_0x58e0a4[_0xaf53b6+_0x6faa('0x45')]='pause';}}});}return _0x58e0a4;});})['then'](function(_0x1d5101){if(!_0xe67697||_0x4026ae){return _0x1d5101;}return rta[_0x6faa('0x46')](_0x1d5101,_0xe67697);})['then'](function(_0x1f34ff){var _0x46b104=null;if(_0x2d06c1[_0x6faa('0x12')][_0x6faa('0x47')]){var _0x49dd9f=_0x2d06c1['query']['fields'][_0x6faa('0x48')](',');_0x46b104=_0x1f34ff[_0x6faa('0x3d')](function(_0x1f190c){return _['pick'](_0x1f190c,_0x49dd9f);});}_0x147a10[_0x6faa('0x24')]=_0x46b104||_0x1f34ff;return _0x147a10;})['then'](respondWithFilteredResult(_0x17913c,_0x3605fa))[_0x6faa('0x49')](APIHandleError(_0x17913c));};exports[_0x6faa('0x4a')]=function(_0x33508d,_0x4c1bb9){var _0x4cb7b4={'count':0x0,'rows':[]};var _0x5088d7={};var _0x44103f;var _0xf9888a;var _0x183ff7;Promise[_0x6faa('0x15')]()['then'](function(){if(_0x33508d[_0x6faa('0x12')]['channel']){if(!utils[_0x6faa('0x17')](_0x33508d[_0x6faa('0x12')][_0x6faa('0x16')])){throw new APIBadRequestError(util[_0x6faa('0x18')]('Channel\x20parameter\x20%s\x20is\x20invalid',_0x33508d[_0x6faa('0x12')][_0x6faa('0x16')]));}_0x44103f=_0x33508d[_0x6faa('0x12')][_0x6faa('0x16')]['toLowerCase']();}var _0x274fae=_['startCase'](_0x44103f)+_0x6faa('0x4b');var _0x58edcc=_[_0x6faa('0x3d')](db[_0x274fae]['rawAttributes'],function(_0x1e5e6d){return{'name':_0x1e5e6d['fieldName'],'type':_0x1e5e6d['type'][_0x6faa('0x2b')]};});if(!_0x33508d['query'][_0x6faa('0x47')]){var _0x325654=['id','name'];if(_0x44103f===_0x6faa('0x42')){_0x325654[_0x6faa('0x30')](_0x6faa('0x2a'));if(_0x33508d[_0x6faa('0x12')][_0x6faa('0x2a')]===_0x6faa('0x4c')){_0x325654[_0x6faa('0x30')](['dialActive',_0x6faa('0x4d')]);}}_0x33508d[_0x6faa('0x12')][_0x6faa('0x47')]=_0x325654[_0x6faa('0x20')](',');}_0x5088d7=qs[_0x6faa('0x2f')](_0x58edcc,_0x33508d);if(_0x33508d['user']['role']==='user'){var _0xdc5311={'params':{'id':_0x33508d[_0x6faa('0x38')]['userProfileId']},'query':{'section':_0x44103f==='voice'&&_0x33508d[_0x6faa('0x12')][_0x6faa('0x2a')]===_0x6faa('0x4c')?_0x6faa('0x4e'):_[_0x6faa('0x4f')](_0x44103f)+_0x6faa('0x50'),'type':_0x33508d[_0x6faa('0x12')][_0x6faa('0x2a')],'nolimit':!![],'sort':_0x6faa('0x51'),'filter':_0x33508d[_0x6faa('0x12')][_0x6faa('0x52')]}};_0xdc5311[_0x6faa('0x12')]=Object[_0x6faa('0x3a')](_0xdc5311[_0x6faa('0x12')],_0x33508d[_0x6faa('0x12')]);delete _0xdc5311[_0x6faa('0x12')]['id'];return db['UserProfile'][_0x6faa('0x3b')](_0xdc5311);}return db[_0x274fae]['findAndCountAll'](_0x5088d7);})[_0x6faa('0x21')](function(_0x520301){_0x4cb7b4[_0x6faa('0xc')]=_0x520301[_0x6faa('0xc')];_0xf9888a=_0x520301[_0x6faa('0x24')];return rtq[_0x6faa('0x53')](_0x33508d,_0x44103f);})[_0x6faa('0x21')](function(_0x465840){_0x183ff7=_0x465840[_0x6faa('0x24')];return rtq[_0x6faa('0x54')](_0xf9888a,_0x183ff7,_0x44103f,_0x33508d[_0x6faa('0x12')]['type']);})[_0x6faa('0x21')](function(_0xf71687){_0x4cb7b4[_0x6faa('0x24')]=_0xf71687;return _0x4cb7b4;})[_0x6faa('0x21')](respondWithFilteredResult(_0x4c1bb9,_0x5088d7))['catch'](APIHandleError(_0x4c1bb9));};