Built motion from commit bab6f49e.|2.6.17
[motion2.git] / server / api / voiceQueueReport / voiceQueueReport.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 _0x42dd=['nolimit','options','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','ejs','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','./voiceQueueReport.socket','register','status','end','json','offset','undefined','count','set','Content-Range','reject','update','then','sendStatus','error','stack','name','index','map','VoiceQueueReport','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','limit','order','sort','where','pick','merge','filter','includeAll','include','findAll','catch','show','fields','create','body','params','destroy','find','describe','getVoiceQueuesReport'];(function(_0x2889bd,_0x5921c0){var _0x3c9095=function(_0x131e76){while(--_0x131e76){_0x2889bd['push'](_0x2889bd['shift']());}};_0x3c9095(++_0x5921c0);}(_0x42dd,0x142));var _0xd42d=function(_0x47aa64,_0xfb8a07){_0x47aa64=_0x47aa64-0x0;var _0x549c7a=_0x42dd[_0x47aa64];return _0x549c7a;};'use strict';var emlformat=require(_0xd42d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd42d('0x1'));var jsonpatch=require(_0xd42d('0x2'));var rp=require(_0xd42d('0x3'));var moment=require(_0xd42d('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xd42d('0x5'));var util=require(_0xd42d('0x6'));var path=require(_0xd42d('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xd42d('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd42d('0x9'));var squel=require(_0xd42d('0xa'));var crypto=require('crypto');var jsforce=require(_0xd42d('0xb'));var deskjs=require(_0xd42d('0xc'));var toCsv=require(_0xd42d('0xd'));var querystring=require(_0xd42d('0xe'));var Papa=require(_0xd42d('0xf'));var Redis=require(_0xd42d('0x10'));var authService=require(_0xd42d('0x11'));var qs=require(_0xd42d('0x12'));var as=require(_0xd42d('0x13'));var hardwareService=require(_0xd42d('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0xd42d('0x15'));var config=require(_0xd42d('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xd42d('0x17')]=_[_0xd42d('0x18')](config[_0xd42d('0x17')],{'host':_0xd42d('0x19'),'port':0x18eb});var socket=require(_0xd42d('0x1a'))(new Redis(config[_0xd42d('0x17')]));require(_0xd42d('0x1b'))[_0xd42d('0x1c')](socket);function respondWithStatusCode(_0x30aa27,_0x5c1239){_0x5c1239=_0x5c1239||0xcc;return function(_0x3bcaa1){if(_0x3bcaa1){return _0x30aa27['sendStatus'](_0x5c1239);}return _0x30aa27[_0xd42d('0x1d')](_0x5c1239)[_0xd42d('0x1e')]();};}function respondWithResult(_0x1d3bc8,_0x32fc2e){_0x32fc2e=_0x32fc2e||0xc8;return function(_0x2e91eb){if(_0x2e91eb){return _0x1d3bc8[_0xd42d('0x1d')](_0x32fc2e)[_0xd42d('0x1f')](_0x2e91eb);}};}function respondWithFilteredResult(_0x101ed2,_0x25db68){return function(_0x2268a0){if(_0x2268a0){var _0x1a3a6f=typeof _0x25db68[_0xd42d('0x20')]===_0xd42d('0x21')&&typeof _0x25db68['limit']===_0xd42d('0x21');var _0x314190=_0x2268a0[_0xd42d('0x22')];var _0x526e6f=_0x1a3a6f?0x0:_0x25db68[_0xd42d('0x20')];var _0x4d33d6=_0x1a3a6f?_0x2268a0[_0xd42d('0x22')]:_0x25db68['offset']+_0x25db68['limit'];var _0x37c393;if(_0x4d33d6>=_0x314190){_0x4d33d6=_0x314190;_0x37c393=0xc8;}else{_0x37c393=0xce;}_0x101ed2[_0xd42d('0x1d')](_0x37c393);return _0x101ed2[_0xd42d('0x23')](_0xd42d('0x24'),_0x526e6f+'-'+_0x4d33d6+'/'+_0x314190)[_0xd42d('0x1f')](_0x2268a0);}return null;};}function patchUpdates(_0x428112){return function(_0x539ec4){try{jsonpatch['apply'](_0x539ec4,_0x428112,!![]);}catch(_0x447a2d){return BPromise[_0xd42d('0x25')](_0x447a2d);}return _0x539ec4['save']();};}function saveUpdates(_0x3892d3,_0x5aa17e){return function(_0x1edf0b){if(_0x1edf0b){return _0x1edf0b[_0xd42d('0x26')](_0x3892d3)[_0xd42d('0x27')](function(_0x441b1b){return _0x441b1b;});}return null;};}function removeEntity(_0x3f8010,_0x4eb37d){return function(_0x219d82){if(_0x219d82){return _0x219d82['destroy']()['then'](function(){_0x3f8010[_0xd42d('0x1d')](0xcc)[_0xd42d('0x1e')]();});}};}function handleEntityNotFound(_0x170032,_0x2ee3ad){return function(_0x1adbd7){if(!_0x1adbd7){_0x170032[_0xd42d('0x28')](0x194);}return _0x1adbd7;};}function handleError(_0x1a94be,_0x4fa574){_0x4fa574=_0x4fa574||0x1f4;return function(_0x127a8f){logger[_0xd42d('0x29')](_0x127a8f[_0xd42d('0x2a')]);if(_0x127a8f[_0xd42d('0x2b')]){delete _0x127a8f[_0xd42d('0x2b')];}_0x1a94be[_0xd42d('0x1d')](_0x4fa574)['send'](_0x127a8f);};}exports[_0xd42d('0x2c')]=function(_0x564890,_0x39cd8d){var _0x2dfc86={},_0x2b0bc3={},_0x47a5bb={'count':0x0,'rows':[]};var _0x27cd62=_[_0xd42d('0x2d')](db[_0xd42d('0x2e')][_0xd42d('0x2f')],function(_0x3bb341){return{'name':_0x3bb341['fieldName'],'type':_0x3bb341[_0xd42d('0x30')][_0xd42d('0x31')]};});_0x2b0bc3[_0xd42d('0x32')]=_[_0xd42d('0x2d')](_0x27cd62,_0xd42d('0x2b'));_0x2b0bc3[_0xd42d('0x33')]=_[_0xd42d('0x34')](_0x564890['query']);_0x2b0bc3[_0xd42d('0x35')]=_['intersection'](_0x2b0bc3[_0xd42d('0x32')],_0x2b0bc3['query']);_0x2dfc86['attributes']=_[_0xd42d('0x36')](_0x2b0bc3['model'],qs['fields'](_0x564890['query']['fields']));_0x2dfc86[_0xd42d('0x37')]=_0x2dfc86[_0xd42d('0x37')][_0xd42d('0x38')]?_0x2dfc86[_0xd42d('0x37')]:_0x2b0bc3[_0xd42d('0x32')];if(!_0x564890[_0xd42d('0x33')][_0xd42d('0x39')]('nolimit')){_0x2dfc86[_0xd42d('0x3a')]=qs[_0xd42d('0x3a')](_0x564890[_0xd42d('0x33')][_0xd42d('0x3a')]);_0x2dfc86[_0xd42d('0x20')]=qs[_0xd42d('0x20')](_0x564890[_0xd42d('0x33')][_0xd42d('0x20')]);}_0x2dfc86[_0xd42d('0x3b')]=qs[_0xd42d('0x3c')](_0x564890[_0xd42d('0x33')][_0xd42d('0x3c')]);_0x2dfc86[_0xd42d('0x3d')]=qs['filters'](_[_0xd42d('0x3e')](_0x564890['query'],_0x2b0bc3[_0xd42d('0x35')]),_0x27cd62);if(_0x564890[_0xd42d('0x33')]['filter']){_0x2dfc86[_0xd42d('0x3d')]=_[_0xd42d('0x3f')](_0x2dfc86[_0xd42d('0x3d')],{'$or':_[_0xd42d('0x2d')](_0x27cd62,function(_0x465280){if(_0x465280[_0xd42d('0x30')]!=='VIRTUAL'){var _0x171ec9={};_0x171ec9[_0x465280['name']]={'$like':'%'+_0x564890[_0xd42d('0x33')][_0xd42d('0x40')]+'%'};return _0x171ec9;}})});}_0x2dfc86=_[_0xd42d('0x3f')]({},_0x2dfc86,_0x564890['options']);var _0x5de345={'where':_0x2dfc86[_0xd42d('0x3d')]};return db['VoiceQueueReport'][_0xd42d('0x22')](_0x5de345)[_0xd42d('0x27')](function(_0x17560b){_0x47a5bb['count']=_0x17560b;if(_0x564890[_0xd42d('0x33')][_0xd42d('0x41')]){_0x2dfc86[_0xd42d('0x42')]=[{'all':!![]}];}return db[_0xd42d('0x2e')][_0xd42d('0x43')](_0x2dfc86);})[_0xd42d('0x27')](function(_0x1aa55a){_0x47a5bb['rows']=_0x1aa55a;return _0x47a5bb;})[_0xd42d('0x27')](respondWithFilteredResult(_0x39cd8d,_0x2dfc86))[_0xd42d('0x44')](handleError(_0x39cd8d,null));};exports[_0xd42d('0x45')]=function(_0x4937f8,_0x4c4ad8){var _0x2f3504={'raw':![],'where':{'id':_0x4937f8['params']['id']}},_0x19ce33={};_0x19ce33[_0xd42d('0x32')]=_[_0xd42d('0x34')](db['VoiceQueueReport'][_0xd42d('0x2f')]);_0x19ce33[_0xd42d('0x33')]=_['keys'](_0x4937f8[_0xd42d('0x33')]);_0x19ce33[_0xd42d('0x35')]=_['intersection'](_0x19ce33[_0xd42d('0x32')],_0x19ce33[_0xd42d('0x33')]);_0x2f3504[_0xd42d('0x37')]=_[_0xd42d('0x36')](_0x19ce33['model'],qs[_0xd42d('0x46')](_0x4937f8[_0xd42d('0x33')][_0xd42d('0x46')]));_0x2f3504['attributes']=_0x2f3504['attributes']['length']?_0x2f3504['attributes']:_0x19ce33['model'];if(_0x4937f8[_0xd42d('0x33')][_0xd42d('0x41')]){_0x2f3504[_0xd42d('0x42')]=[{'all':!![]}];}_0x2f3504=_[_0xd42d('0x3f')]({},_0x2f3504,_0x4937f8['options']);return db[_0xd42d('0x2e')]['find'](_0x2f3504)[_0xd42d('0x27')](handleEntityNotFound(_0x4c4ad8,null))['then'](respondWithResult(_0x4c4ad8,null))[_0xd42d('0x44')](handleError(_0x4c4ad8,null));};exports[_0xd42d('0x47')]=function(_0x1585cc,_0x2284bf){return db[_0xd42d('0x2e')][_0xd42d('0x47')](_0x1585cc[_0xd42d('0x48')],{})[_0xd42d('0x27')](respondWithResult(_0x2284bf,0xc9))[_0xd42d('0x44')](handleError(_0x2284bf,null));};exports[_0xd42d('0x26')]=function(_0x3a420d,_0x398e9c){if(_0x3a420d[_0xd42d('0x48')]['id']){delete _0x3a420d[_0xd42d('0x48')]['id'];}return db[_0xd42d('0x2e')]['find']({'where':{'id':_0x3a420d[_0xd42d('0x49')]['id']}})['then'](handleEntityNotFound(_0x398e9c,null))[_0xd42d('0x27')](saveUpdates(_0x3a420d[_0xd42d('0x48')],null))[_0xd42d('0x27')](respondWithResult(_0x398e9c,null))[_0xd42d('0x44')](handleError(_0x398e9c,null));};exports[_0xd42d('0x4a')]=function(_0x1ca224,_0x2d5c59){return db[_0xd42d('0x2e')][_0xd42d('0x4b')]({'where':{'id':_0x1ca224[_0xd42d('0x49')]['id']}})['then'](handleEntityNotFound(_0x2d5c59,null))[_0xd42d('0x27')](removeEntity(_0x2d5c59,null))[_0xd42d('0x44')](handleError(_0x2d5c59,null));};exports['describe']=function(_0x45d884,_0x452f59){return db[_0xd42d('0x2e')][_0xd42d('0x4c')]()[_0xd42d('0x27')](respondWithResult(_0x452f59,null))[_0xd42d('0x44')](handleError(_0x452f59,null));};exports[_0xd42d('0x4d')]=function(_0x5a759c,_0x5c3651){var _0x587cc2={},_0x1d66d2={},_0x4f32fa={'count':0x0,'rows':[]};_0x1d66d2[_0xd42d('0x32')]=_[_0xd42d('0x34')](db[_0xd42d('0x2e')]['rawAttributes']);_0x1d66d2[_0xd42d('0x33')]=_[_0xd42d('0x34')](_0x5a759c[_0xd42d('0x33')]);_0x1d66d2['filters']=_['intersection'](_0x1d66d2[_0xd42d('0x32')],_0x1d66d2['query']);_0x587cc2[_0xd42d('0x37')]=_[_0xd42d('0x36')](_0x1d66d2[_0xd42d('0x32')],qs[_0xd42d('0x46')](_0x5a759c[_0xd42d('0x33')][_0xd42d('0x46')]));_0x587cc2[_0xd42d('0x37')]=_0x587cc2['attributes'][_0xd42d('0x38')]?_0x587cc2[_0xd42d('0x37')]:_0x1d66d2['model'];if(!_0x5a759c[_0xd42d('0x33')][_0xd42d('0x39')](_0xd42d('0x4e'))){_0x587cc2['limit']=qs[_0xd42d('0x3a')](_0x5a759c['query']['limit']);_0x587cc2['offset']=qs[_0xd42d('0x20')](_0x5a759c[_0xd42d('0x33')][_0xd42d('0x20')]);}_0x587cc2[_0xd42d('0x3b')]=qs[_0xd42d('0x3c')](_0x5a759c[_0xd42d('0x33')][_0xd42d('0x3c')]);_0x587cc2['where']=qs[_0xd42d('0x35')](_[_0xd42d('0x3e')](_0x5a759c[_0xd42d('0x33')],_0x1d66d2[_0xd42d('0x35')]));if(_0x5a759c[_0xd42d('0x33')][_0xd42d('0x40')]){_0x587cc2[_0xd42d('0x3d')]=_['merge'](_0x587cc2[_0xd42d('0x3d')],{'$or':_[_0xd42d('0x2d')](_0x587cc2[_0xd42d('0x37')],function(_0x1c0622){var _0x3e0426={};_0x3e0426[_0x1c0622]={'$like':'%'+_0x5a759c[_0xd42d('0x33')][_0xd42d('0x40')]+'%'};return _0x3e0426;})});}_0x587cc2=_[_0xd42d('0x3f')]({},_0x587cc2,_0x5a759c[_0xd42d('0x4f')]);var _0x109419={'where':_0x587cc2['where']};return db[_0xd42d('0x2e')][_0xd42d('0x22')](_0x109419)[_0xd42d('0x27')](function(_0x22faf4){_0x4f32fa[_0xd42d('0x22')]=_0x22faf4;if(_0x5a759c['query'][_0xd42d('0x41')]){_0x587cc2['include']=[{'all':!![]}];}return db[_0xd42d('0x2e')][_0xd42d('0x43')](_0x587cc2);})['then'](function(_0x488328){_0x4f32fa['rows']=_0x488328;return _0x4f32fa;})[_0xd42d('0x27')](respondWithFilteredResult(_0x5c3651,_0x587cc2,_0xd42d('0x4d')))[_0xd42d('0x44')](handleError(_0x5c3651,null,'getVoiceQueuesReport'));};