Built motion from commit 10af8726.|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 _0x90b0=['merge','user','userProfileId','Agents','online','extraQueryConditions','assign','omit','getResources','User','findAndCountAll','rows','find','voice','voiceStatus','talking','pause','Status','sortAgentsByStatus','catch','resolve','format','Queue','rawAttributes','name','outbound','dialActive','dialMethod','join','QueueCampaigns','Queues','UserProfile','initializeQueues','lodash','util','../../components/realtime/agents','../../components/realtime/queues','../../components/parsers/qs','../../mysqldb','../../errors/api','handleError','offset','undefined','count','limit','status','set','Content-Range','getAgents','getChannels','query','globalQueueFilter','globalStatusFilter','*pause','then','channel','isValidChannel','toLowerCase','sort','includes','globalStatus','validateSortParameter','getUpdatedSortOptions','fields','getAgentIdsByQueues','getRealtimeAgents','getSortedAgentsIdsByStatus','getAgentIdsByStatus','length','map','type','key','role','agent','getOptions','push','sequelize','FIELD(id,','order','forEach','Pause','where'];(function(_0x33c465,_0x6cdaf5){var _0x5a808f=function(_0x13c907){while(--_0x13c907){_0x33c465['push'](_0x33c465['shift']());}};_0x5a808f(++_0x6cdaf5);}(_0x90b0,0x73));var _0x090b=function(_0x4774e5,_0x4e3600){_0x4774e5=_0x4774e5-0x0;var _0x3513a8=_0x90b0[_0x4774e5];return _0x3513a8;};'use strict';var _=require(_0x090b('0x0'));var util=require(_0x090b('0x1'));var rta=require(_0x090b('0x2'));var rtq=require(_0x090b('0x3'));var qs=require(_0x090b('0x4'));var utils=require('../../config/utils');var db=require(_0x090b('0x5'))['db'];var APIBadRequestError=require(_0x090b('0x6'))['APIBadRequestError'];var APIHandleError=require('../../errors/api')[_0x090b('0x7')];function respondWithFilteredResult(_0xfccb07,_0x7ce02d){return function(_0x480261){if(_0x480261){var _0x304f84=typeof _0x7ce02d[_0x090b('0x8')]===_0x090b('0x9')&&typeof _0x7ce02d['limit']==='undefined';var _0x9ac3d7=_0x480261[_0x090b('0xa')];var _0x54f9cd=_0x304f84?0x0:_0x7ce02d[_0x090b('0x8')];var _0x3c7489=_0x304f84?_0x480261[_0x090b('0xa')]:_0x7ce02d[_0x090b('0x8')]+_0x7ce02d[_0x090b('0xb')];var _0x36c1fa;if(_0x3c7489>=_0x9ac3d7){_0x3c7489=_0x9ac3d7;_0x36c1fa=0xc8;}else{_0x36c1fa=0xce;}_0xfccb07[_0x090b('0xc')](_0x36c1fa);return _0xfccb07[_0x090b('0xd')](_0x090b('0xe'),_0x54f9cd+'-'+_0x3c7489+'/'+_0x9ac3d7)['json'](_0x480261);}return null;};}exports[_0x090b('0xf')]=function(_0x3ab49f,_0x4ac956){var _0x514b0f={'count':0x0,'rows':[]};var _0x4fa30a={};var _0x3761f7;var _0x34213c=utils[_0x090b('0x10')]();var _0x2e0dc3;var _0x212193;var _0x2042a5=_0x3ab49f[_0x090b('0x11')][_0x090b('0x12')];var _0x3ddbab=_0x3ab49f[_0x090b('0x11')][_0x090b('0x13')];var _0x4eed77=_0x3ab49f[_0x090b('0x11')]['pauseTypeFilter'];var _0x5844f5=_0x3ddbab==='pause'||_0x3ddbab===_0x090b('0x14')?!![]:![];var _0x49fd56=[];var _0x2bcbed;var _0x1d654b;Promise['resolve']()[_0x090b('0x15')](function(){if(_0x3ab49f[_0x090b('0x11')][_0x090b('0x16')]){if(!utils[_0x090b('0x17')](_0x3ab49f[_0x090b('0x11')]['channel'])){throw new APIBadRequestError(util['format']('Channel\x20parameter\x20%s\x20is\x20invalid',_0x3ab49f[_0x090b('0x11')][_0x090b('0x16')]));}_0x3761f7=_0x3ab49f[_0x090b('0x11')][_0x090b('0x16')][_0x090b('0x18')]();}if(!_0x3ab49f[_0x090b('0x11')][_0x090b('0x19')]||!_0x3ab49f[_0x090b('0x11')][_0x090b('0x19')][_0x090b('0x1a')](_0x090b('0x1b'))){_0x3ab49f[_0x090b('0x11')][_0x090b('0x19')]=rta[_0x090b('0x1c')](_0x3ab49f[_0x090b('0x11')][_0x090b('0x19')]);return;}var _0x4abd17=rta[_0x090b('0x1d')](_0x3ab49f[_0x090b('0x11')][_0x090b('0x19')]);_0x3ab49f[_0x090b('0x11')][_0x090b('0x19')]=_0x4abd17[_0x090b('0x1e')]['join'](',');_0x2bcbed=_0x4abd17['order'];})[_0x090b('0x15')](function(){if(!_0x2042a5){return[];}return rta[_0x090b('0x1f')](_0x2042a5,_0x3761f7);})[_0x090b('0x15')](function(_0x3a4e90){_0x49fd56=_0x3a4e90;return rta[_0x090b('0x20')]();})['then'](function(_0x223b85){_0x212193=_0x223b85['rows'];if((!_0x3ddbab||_0x5844f5)&&!_0x2bcbed){return _0x49fd56;}if(_0x2bcbed&&!_0x3ddbab){return rta[_0x090b('0x21')](_0x212193,_0x49fd56,_0x2bcbed);}else{return rta[_0x090b('0x22')](_0x212193,_0x49fd56,_0x3ddbab);}})[_0x090b('0x15')](function(_0x4c9ff1){_0x49fd56=_0x4c9ff1;var _0x37e169=![];if(_0x49fd56[_0x090b('0x23')]===0x0){if(_0x2042a5||_0x3ddbab){_0x37e169=!![];}if(_0x5844f5){_0x37e169=![];}}if(_0x37e169){return _0x514b0f;}var _0x309a4f=_[_0x090b('0x24')](db['User']['rawAttributes'],function(_0xf87731){return{'name':_0xf87731['fieldName'],'type':_0xf87731[_0x090b('0x25')][_0x090b('0x26')]};});_0x3ab49f[_0x090b('0x11')][_0x090b('0x27')]=_0x090b('0x28');_0x4fa30a=qs[_0x090b('0x29')](_0x309a4f,_0x3ab49f);_0x4fa30a['raw']=!![];var _0x2e5cb8=[];if(_0x49fd56[_0x090b('0x23')]>0x0){_0x2e5cb8[_0x090b('0x2a')]({'id':{'$in':_0x49fd56}});if(_0x2bcbed&&!_0x3ddbab){_0x1d654b=[db[_0x090b('0x2b')]['literal'](_0x090b('0x2c')+_0x49fd56+')')];_0x4fa30a[_0x090b('0x2d')]=_0x1d654b;}}if(_0x5844f5){_0x34213c[_0x090b('0x2e')](function(_0x18dd70){var _0x5a3552=!![];if(_0x3ddbab===_0x090b('0x14')&&_0x3761f7!==_0x18dd70){_0x5a3552=![];}_0x2e5cb8[_0x090b('0x2a')]({[_0x18dd70+'Pause']:_0x5a3552});});if(_0x4eed77){_0x2e5cb8[_0x090b('0x2a')]({'pauseType':_0x4eed77});}}else if(_0x3ddbab){_0x34213c[_0x090b('0x2e')](function(_0x2b46a7){_0x2e5cb8[_0x090b('0x2a')]({[_0x2b46a7+_0x090b('0x2f')]:![]});});}_0x4fa30a[_0x090b('0x30')]=_[_0x090b('0x31')](_0x4fa30a[_0x090b('0x30')],{'$and':_0x2e5cb8});if(_0x3ab49f[_0x090b('0x32')][_0x090b('0x27')]===_0x090b('0x32')){var _0x349781={'params':{'id':_0x3ab49f[_0x090b('0x32')][_0x090b('0x33')]},'query':{'section':_0x090b('0x34'),'role':_0x090b('0x28'),'raw':!![],'ids':_0x49fd56,'customSorting':_0x1d654b}};if(_0x3ab49f[_0x090b('0x11')][_0x090b('0x35')]){_0x349781['query'][_0x090b('0x35')]=!![];}if(_0x5844f5){_0x349781[_0x090b('0x11')][_0x090b('0x36')]=_0x2e5cb8;}_0x349781[_0x090b('0x11')]=Object[_0x090b('0x37')](_0x349781[_0x090b('0x11')],_[_0x090b('0x38')](_0x3ab49f[_0x090b('0x11')],'id'));return db['UserProfile'][_0x090b('0x39')](_0x349781);}return db[_0x090b('0x3a')][_0x090b('0x3b')](_0x4fa30a);})[_0x090b('0x15')](function(_0x521b05){_0x514b0f['count']=_0x521b05['count'];_0x2e0dc3=_0x521b05[_0x090b('0x3c')];return _0x2e0dc3[_0x090b('0x24')](function(_0x18f583){var _0x93e8d6=_[_0x090b('0x3d')](_0x212193,['id',_0x18f583['id']]);if(_0x93e8d6){var _0x1c30fc=rta['filterAgentAttributes'](_0x93e8d6);_[_0x090b('0x31')](_0x18f583,_0x1c30fc);}_0x18f583['globalStatus']=rta['getAgentStatus'](_0x18f583);if(_0x18f583['globalStatus']['includes']('pause')){_0x34213c[_0x090b('0x2e')](function(_0x154203){if(_0x18f583[_0x154203+'Pause']){if(_0x154203===_0x090b('0x3e')){if(_0x18f583[_0x090b('0x3f')]!==_0x090b('0x40')){_0x18f583['voiceStatus']=_0x090b('0x41');}}else{_0x18f583[_0x154203+_0x090b('0x42')]='pause';}}});}return _0x18f583;});})[_0x090b('0x15')](function(_0x570755){if(!_0x2bcbed||_0x1d654b){return _0x570755;}return rta[_0x090b('0x43')](_0x570755,_0x2bcbed);})[_0x090b('0x15')](function(_0xbe8503){var _0x39e0b9=rta['getRealtimeAgentsQueryFields']();_0x514b0f[_0x090b('0x3c')]=_0xbe8503[_0x090b('0x24')](function(_0x5621a2){return _['pick'](_0x5621a2,_0x39e0b9);});return _0x514b0f;})[_0x090b('0x15')](respondWithFilteredResult(_0x4ac956,_0x4fa30a))[_0x090b('0x44')](APIHandleError(_0x4ac956));};exports['getQueues']=function(_0x584457,_0x34272a){var _0x14f06c={'count':0x0,'rows':[]};var _0x4d372c={};var _0x2be1df;var _0x37467c;var _0x322df2;Promise[_0x090b('0x45')]()[_0x090b('0x15')](function(){if(_0x584457['query']['channel']){if(!utils[_0x090b('0x17')](_0x584457['query'][_0x090b('0x16')])){throw new APIBadRequestError(util[_0x090b('0x46')]('Channel\x20parameter\x20%s\x20is\x20invalid',_0x584457[_0x090b('0x11')][_0x090b('0x16')]));}_0x2be1df=_0x584457[_0x090b('0x11')][_0x090b('0x16')][_0x090b('0x18')]();}var _0x577c84=_['startCase'](_0x2be1df)+_0x090b('0x47');var _0x33158c=_['map'](db[_0x577c84][_0x090b('0x48')],function(_0x2b6339){return{'name':_0x2b6339['fieldName'],'type':_0x2b6339[_0x090b('0x25')][_0x090b('0x26')]};});if(!_0x584457[_0x090b('0x11')]['fields']){var _0xeabbc8=['id',_0x090b('0x49')];if(_0x2be1df===_0x090b('0x3e')){_0xeabbc8[_0x090b('0x2a')](_0x090b('0x25'));if(_0x584457['query'][_0x090b('0x25')]===_0x090b('0x4a')){_0xeabbc8[_0x090b('0x2a')]([_0x090b('0x4b'),_0x090b('0x4c')]);}}_0x584457[_0x090b('0x11')][_0x090b('0x1e')]=_0xeabbc8[_0x090b('0x4d')](',');}_0x4d372c=qs[_0x090b('0x29')](_0x33158c,_0x584457);if(_0x584457['user'][_0x090b('0x27')]===_0x090b('0x32')){var _0x4bb23b={'params':{'id':_0x584457[_0x090b('0x32')][_0x090b('0x33')]},'query':{'section':_0x2be1df===_0x090b('0x3e')&&_0x584457[_0x090b('0x11')][_0x090b('0x25')]===_0x090b('0x4a')?_0x090b('0x4e'):_['startCase'](_0x2be1df)+_0x090b('0x4f'),'type':_0x584457['query'][_0x090b('0x25')],'nolimit':!![],'sort':_0x090b('0x49'),'filter':_0x584457[_0x090b('0x11')]['filter']}};_0x4bb23b[_0x090b('0x11')]=Object[_0x090b('0x37')](_0x4bb23b[_0x090b('0x11')],_0x584457['query']);delete _0x4bb23b[_0x090b('0x11')]['id'];return db[_0x090b('0x50')]['getResources'](_0x4bb23b);}return db[_0x577c84][_0x090b('0x3b')](_0x4d372c);})['then'](function(_0x3a2e04){_0x14f06c['count']=_0x3a2e04['count'];_0x37467c=_0x3a2e04[_0x090b('0x3c')];return rtq['getRealtimeQueues'](_0x584457,_0x2be1df);})[_0x090b('0x15')](function(_0x4805bf){_0x322df2=_0x4805bf[_0x090b('0x3c')];return rtq[_0x090b('0x51')](_0x37467c,_0x322df2,_0x2be1df,_0x584457['query'][_0x090b('0x25')]);})['then'](function(_0x479648){_0x14f06c['rows']=_0x479648;return _0x14f06c;})[_0x090b('0x15')](respondWithFilteredResult(_0x34272a,_0x4d372c))[_0x090b('0x44')](APIHandleError(_0x34272a));};