e0d888eddc3a9a15f3afbf546caa16ee6c7ed6b3
[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 _0x1885=['dialActive','dialMethod','fields','userProfileId','QueueCampaigns','Queues','name','filter','UserProfile','getResources','getRealtimeQueues','initializeQueues','lodash','util','../../components/realtime/agents','../../components/realtime/queues','../../components/parsers/qs','../../config/utils','../../mysqldb','APIBadRequestError','../../errors/api','handleError','undefined','limit','count','offset','status','Content-Range','json','getChannels','globalQueueFilter','globalStatusFilter','query','pauseTypeFilter','pause','resolve','then','channel','isValidChannel','format','Channel\x20parameter\x20%s\x20is\x20invalid','toLowerCase','sort','includes','globalStatus','validateSortParameter','join','order','getAgentIdsByQueues','getRealtimeAgents','rows','length','map','User','rawAttributes','fieldName','key','agent','getOptions','raw','push','sequelize','literal','*pause','Pause','forEach','where','merge','user','role','Agents','online','extraQueryConditions','assign','findAndCountAll','find','filterAgentAttributes','getAgentStatus','voice','voiceStatus','talking','Status','sortAgentsByStatus','getRealtimeAgentsQueryFields','pick','getQueues','startCase','type','outbound'];(function(_0x2064e5,_0x4f6fa2){var _0x21a233=function(_0x1b2491){while(--_0x1b2491){_0x2064e5['push'](_0x2064e5['shift']());}};_0x21a233(++_0x4f6fa2);}(_0x1885,0x117));var _0x5188=function(_0x3d30bf,_0x50411f){_0x3d30bf=_0x3d30bf-0x0;var _0x4930ae=_0x1885[_0x3d30bf];return _0x4930ae;};'use strict';var _=require(_0x5188('0x0'));var util=require(_0x5188('0x1'));var rta=require(_0x5188('0x2'));var rtq=require(_0x5188('0x3'));var qs=require(_0x5188('0x4'));var utils=require(_0x5188('0x5'));var db=require(_0x5188('0x6'))['db'];var APIBadRequestError=require('../../errors/api')[_0x5188('0x7')];var APIHandleError=require(_0x5188('0x8'))[_0x5188('0x9')];function respondWithFilteredResult(_0x3f88e8,_0x358256){return function(_0x1eb12f){if(_0x1eb12f){var _0x1e72a2=typeof _0x358256['offset']===_0x5188('0xa')&&typeof _0x358256[_0x5188('0xb')]==='undefined';var _0x2e72e9=_0x1eb12f[_0x5188('0xc')];var _0x1e2f25=_0x1e72a2?0x0:_0x358256[_0x5188('0xd')];var _0x57a694=_0x1e72a2?_0x1eb12f['count']:_0x358256[_0x5188('0xd')]+_0x358256[_0x5188('0xb')];var _0x154962;if(_0x57a694>=_0x2e72e9){_0x57a694=_0x2e72e9;_0x154962=0xc8;}else{_0x154962=0xce;}_0x3f88e8[_0x5188('0xe')](_0x154962);return _0x3f88e8['set'](_0x5188('0xf'),_0x1e2f25+'-'+_0x57a694+'/'+_0x2e72e9)[_0x5188('0x10')](_0x1eb12f);}return null;};}exports['getAgents']=function(_0x3af224,_0xe68c42){var _0x141586={'count':0x0,'rows':[]};var _0x10e1c8={};var _0x15a0c5;var _0xdc75a1=utils[_0x5188('0x11')]();var _0xc63b56;var _0x8edaed;var _0x581d31=_0x3af224['query'][_0x5188('0x12')];var _0x565dca=_0x3af224['query'][_0x5188('0x13')];var _0x1e4787=_0x3af224[_0x5188('0x14')][_0x5188('0x15')];var _0x5dd594=_0x565dca===_0x5188('0x16')||_0x565dca==='*pause'?!![]:![];var _0x2d28b5=[];var _0x108c33;var _0x25266b;Promise[_0x5188('0x17')]()[_0x5188('0x18')](function(){if(_0x3af224[_0x5188('0x14')][_0x5188('0x19')]){if(!utils[_0x5188('0x1a')](_0x3af224[_0x5188('0x14')]['channel'])){throw new APIBadRequestError(util[_0x5188('0x1b')](_0x5188('0x1c'),_0x3af224[_0x5188('0x14')][_0x5188('0x19')]));}_0x15a0c5=_0x3af224[_0x5188('0x14')][_0x5188('0x19')][_0x5188('0x1d')]();}if(!_0x3af224[_0x5188('0x14')][_0x5188('0x1e')]||!_0x3af224[_0x5188('0x14')][_0x5188('0x1e')][_0x5188('0x1f')](_0x5188('0x20'))){_0x3af224['query']['sort']=rta[_0x5188('0x21')](_0x3af224[_0x5188('0x14')][_0x5188('0x1e')]);return;}var _0x24b02d=rta['getUpdatedSortOptions'](_0x3af224[_0x5188('0x14')][_0x5188('0x1e')]);_0x3af224[_0x5188('0x14')][_0x5188('0x1e')]=_0x24b02d['fields'][_0x5188('0x22')](',');_0x108c33=_0x24b02d[_0x5188('0x23')];})['then'](function(){if(!_0x581d31){return[];}return rta[_0x5188('0x24')](_0x581d31,_0x15a0c5);})[_0x5188('0x18')](function(_0x324d23){_0x2d28b5=_0x324d23;return rta[_0x5188('0x25')]();})[_0x5188('0x18')](function(_0x3a2e52){_0x8edaed=_0x3a2e52[_0x5188('0x26')];if((!_0x565dca||_0x5dd594)&&!_0x108c33){return _0x2d28b5;}if(_0x108c33&&!_0x565dca){return rta['getSortedAgentsIdsByStatus'](_0x8edaed,_0x2d28b5,_0x108c33);}else{return rta['getAgentIdsByStatus'](_0x8edaed,_0x2d28b5,_0x565dca);}})[_0x5188('0x18')](function(_0x344614){_0x2d28b5=_0x344614;var _0x5a1811=![];if(_0x2d28b5[_0x5188('0x27')]===0x0){if(_0x581d31||_0x565dca){_0x5a1811=!![];}if(_0x5dd594){_0x5a1811=![];}}if(_0x5a1811){return _0x141586;}var _0x17e6fc=_[_0x5188('0x28')](db[_0x5188('0x29')][_0x5188('0x2a')],function(_0x2b0fc9){return{'name':_0x2b0fc9[_0x5188('0x2b')],'type':_0x2b0fc9['type'][_0x5188('0x2c')]};});_0x3af224[_0x5188('0x14')]['role']=_0x5188('0x2d');_0x10e1c8=qs[_0x5188('0x2e')](_0x17e6fc,_0x3af224);_0x10e1c8[_0x5188('0x2f')]=!![];var _0xfff380=[];if(_0x2d28b5[_0x5188('0x27')]>0x0){_0xfff380[_0x5188('0x30')]({'id':{'$in':_0x2d28b5}});if(_0x108c33&&!_0x565dca){_0x25266b=[db[_0x5188('0x31')][_0x5188('0x32')]('FIELD(id,'+_0x2d28b5+')')];_0x10e1c8[_0x5188('0x23')]=_0x25266b;}}if(_0x5dd594){_0xdc75a1['forEach'](function(_0x339e80){var _0x1d7817=!![];if(_0x565dca===_0x5188('0x33')&&_0x15a0c5!==_0x339e80){_0x1d7817=![];}_0xfff380[_0x5188('0x30')]({[_0x339e80+_0x5188('0x34')]:_0x1d7817});});if(_0x1e4787){_0xfff380[_0x5188('0x30')]({'pauseType':_0x1e4787});}}else if(_0x565dca){_0xdc75a1[_0x5188('0x35')](function(_0xc174f7){_0xfff380[_0x5188('0x30')]({[_0xc174f7+_0x5188('0x34')]:![]});});}_0x10e1c8[_0x5188('0x36')]=_[_0x5188('0x37')](_0x10e1c8[_0x5188('0x36')],{'$and':_0xfff380});if(_0x3af224[_0x5188('0x38')][_0x5188('0x39')]===_0x5188('0x38')){var _0x2b5b24={'params':{'id':_0x3af224[_0x5188('0x38')]['userProfileId']},'query':{'section':_0x5188('0x3a'),'role':'agent','raw':!![],'ids':_0x2d28b5,'customSorting':_0x25266b}};if(_0x3af224[_0x5188('0x14')][_0x5188('0x3b')]){_0x2b5b24[_0x5188('0x14')][_0x5188('0x3b')]=!![];}if(_0x5dd594){_0x2b5b24[_0x5188('0x14')][_0x5188('0x3c')]=_0xfff380;}_0x2b5b24[_0x5188('0x14')]=Object[_0x5188('0x3d')](_0x2b5b24['query'],_0x3af224[_0x5188('0x14')]);return db['UserProfile']['getResources'](_0x2b5b24);}return db[_0x5188('0x29')][_0x5188('0x3e')](_0x10e1c8);})[_0x5188('0x18')](function(_0x5c74f8){_0x141586[_0x5188('0xc')]=_0x5c74f8[_0x5188('0xc')];_0xc63b56=_0x5c74f8[_0x5188('0x26')];return _0xc63b56[_0x5188('0x28')](function(_0x9a8b83){var _0x25bfad=_[_0x5188('0x3f')](_0x8edaed,['id',_0x9a8b83['id']]);if(_0x25bfad){var _0x4a5e8a=rta[_0x5188('0x40')](_0x25bfad);_[_0x5188('0x37')](_0x9a8b83,_0x4a5e8a);}_0x9a8b83[_0x5188('0x20')]=rta[_0x5188('0x41')](_0x9a8b83);if(_0x9a8b83[_0x5188('0x20')]['includes'](_0x5188('0x16'))){_0xdc75a1[_0x5188('0x35')](function(_0x587bc8){if(_0x9a8b83[_0x587bc8+_0x5188('0x34')]){if(_0x587bc8===_0x5188('0x42')){if(_0x9a8b83[_0x5188('0x43')]!==_0x5188('0x44')){_0x9a8b83['voiceStatus']=_0x5188('0x16');}}else{_0x9a8b83[_0x587bc8+_0x5188('0x45')]=_0x5188('0x16');}}});}return _0x9a8b83;});})[_0x5188('0x18')](function(_0x169de3){if(!_0x108c33||_0x25266b){return _0x169de3;}return rta[_0x5188('0x46')](_0x169de3,_0x108c33);})[_0x5188('0x18')](function(_0x19c36a){var _0x485c39=rta[_0x5188('0x47')]();_0x141586[_0x5188('0x26')]=_0x19c36a[_0x5188('0x28')](function(_0x2071ba){return _[_0x5188('0x48')](_0x2071ba,_0x485c39);});return _0x141586;})['then'](respondWithFilteredResult(_0xe68c42,_0x10e1c8))['catch'](APIHandleError(_0xe68c42));};exports[_0x5188('0x49')]=function(_0x9b3769,_0x5015dc){var _0x1eab93={'count':0x0,'rows':[]};var _0x2f7228={};var _0x59d29d;var _0x1ee678;var _0x3ae0b3;Promise['resolve']()[_0x5188('0x18')](function(){if(_0x9b3769['query'][_0x5188('0x19')]){if(!utils[_0x5188('0x1a')](_0x9b3769['query']['channel'])){throw new APIBadRequestError(util[_0x5188('0x1b')](_0x5188('0x1c'),_0x9b3769['query'][_0x5188('0x19')]));}_0x59d29d=_0x9b3769['query'][_0x5188('0x19')][_0x5188('0x1d')]();}var _0x3e143a=_[_0x5188('0x4a')](_0x59d29d)+'Queue';var _0x484d24=_[_0x5188('0x28')](db[_0x3e143a][_0x5188('0x2a')],function(_0x22e803){return{'name':_0x22e803[_0x5188('0x2b')],'type':_0x22e803[_0x5188('0x4b')]['key']};});if(!_0x9b3769[_0x5188('0x14')]['fields']){var _0x80758b=['id','name'];if(_0x59d29d==='voice'){_0x80758b[_0x5188('0x30')](_0x5188('0x4b'));if(_0x9b3769['query'][_0x5188('0x4b')]===_0x5188('0x4c')){_0x80758b[_0x5188('0x30')]([_0x5188('0x4d'),_0x5188('0x4e')]);}}_0x9b3769[_0x5188('0x14')][_0x5188('0x4f')]=_0x80758b[_0x5188('0x22')](',');}_0x2f7228=qs['getOptions'](_0x484d24,_0x9b3769);if(_0x9b3769['user'][_0x5188('0x39')]===_0x5188('0x38')){var _0x305dde={'params':{'id':_0x9b3769[_0x5188('0x38')][_0x5188('0x50')]},'query':{'section':_0x59d29d===_0x5188('0x42')&&_0x9b3769['query'][_0x5188('0x4b')]===_0x5188('0x4c')?_0x5188('0x51'):_[_0x5188('0x4a')](_0x59d29d)+_0x5188('0x52'),'type':_0x9b3769[_0x5188('0x14')][_0x5188('0x4b')],'nolimit':!![],'sort':_0x5188('0x53'),'filter':_0x9b3769['query'][_0x5188('0x54')]}};_0x305dde[_0x5188('0x14')]=Object[_0x5188('0x3d')](_0x305dde[_0x5188('0x14')],_0x9b3769['query']);delete _0x305dde[_0x5188('0x14')]['id'];return db[_0x5188('0x55')][_0x5188('0x56')](_0x305dde);}return db[_0x3e143a][_0x5188('0x3e')](_0x2f7228);})['then'](function(_0x4ce076){_0x1eab93[_0x5188('0xc')]=_0x4ce076['count'];_0x1ee678=_0x4ce076[_0x5188('0x26')];return rtq[_0x5188('0x57')](_0x9b3769,_0x59d29d);})[_0x5188('0x18')](function(_0x1ee42d){_0x3ae0b3=_0x1ee42d[_0x5188('0x26')];return rtq[_0x5188('0x58')](_0x1ee678,_0x3ae0b3,_0x59d29d,_0x9b3769[_0x5188('0x14')][_0x5188('0x4b')]);})['then'](function(_0x40a99e){_0x1eab93['rows']=_0x40a99e;return _0x1eab93;})[_0x5188('0x18')](respondWithFilteredResult(_0x5015dc,_0x2f7228))['catch'](APIHandleError(_0x5015dc));};