Built motion from commit d1eab355.|2.6.28
[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 _0xe270=['options','includeAll','include','rows','catch','show','find','create','body','params','describe','getVoiceQueuesReport','nolimit','rimraf','fast-json-patch','request-promise','bluebird','util','path','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','redis','defaults','localhost','socket.io-emitter','./voiceQueueReport.socket','register','sendStatus','status','end','json','offset','undefined','count','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','VoiceQueueReport','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','limit','order','sort','where','pick','filter','merge','VIRTUAL'];(function(_0x3b6c74,_0x3fd969){var _0x4fbfcb=function(_0xcd733f){while(--_0xcd733f){_0x3b6c74['push'](_0x3b6c74['shift']());}};_0x4fbfcb(++_0x3fd969);}(_0xe270,0x14d));var _0x0e27=function(_0x55231c,_0x1a5dac){_0x55231c=_0x55231c-0x0;var _0x53f452=_0xe270[_0x55231c];return _0x53f452;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0e27('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0e27('0x1'));var rp=require(_0x0e27('0x2'));var moment=require('moment');var BPromise=require(_0x0e27('0x3'));var Mustache=require('mustache');var util=require(_0x0e27('0x4'));var path=require(_0x0e27('0x5'));var sox=require('sox');var csv=require(_0x0e27('0x6'));var ejs=require(_0x0e27('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0e27('0x8'));var squel=require(_0x0e27('0x9'));var crypto=require('crypto');var jsforce=require(_0x0e27('0xa'));var deskjs=require(_0x0e27('0xb'));var toCsv=require(_0x0e27('0x6'));var querystring=require(_0x0e27('0xc'));var Papa=require('papaparse');var Redis=require(_0x0e27('0xd'));var authService=require(_0x0e27('0xe'));var qs=require(_0x0e27('0xf'));var as=require(_0x0e27('0x10'));var hardwareService=require(_0x0e27('0x11'));var logger=require(_0x0e27('0x12'))('api');var utils=require('../../config/utils');var config=require(_0x0e27('0x13'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x0e27('0x14')]=_[_0x0e27('0x15')](config[_0x0e27('0x14')],{'host':_0x0e27('0x16'),'port':0x18eb});var socket=require(_0x0e27('0x17'))(new Redis(config['redis']));require(_0x0e27('0x18'))[_0x0e27('0x19')](socket);function respondWithStatusCode(_0x2baa60,_0x49e639){_0x49e639=_0x49e639||0xcc;return function(_0x19bf83){if(_0x19bf83){return _0x2baa60[_0x0e27('0x1a')](_0x49e639);}return _0x2baa60[_0x0e27('0x1b')](_0x49e639)[_0x0e27('0x1c')]();};}function respondWithResult(_0xafec8,_0x5c5cfb){_0x5c5cfb=_0x5c5cfb||0xc8;return function(_0x15abe3){if(_0x15abe3){return _0xafec8[_0x0e27('0x1b')](_0x5c5cfb)[_0x0e27('0x1d')](_0x15abe3);}};}function respondWithFilteredResult(_0x573aa4,_0x1aff85){return function(_0x458cf0){if(_0x458cf0){var _0x2585b1=typeof _0x1aff85[_0x0e27('0x1e')]==='undefined'&&typeof _0x1aff85['limit']===_0x0e27('0x1f');var _0x23f0c4=_0x458cf0[_0x0e27('0x20')];var _0x50775d=_0x2585b1?0x0:_0x1aff85['offset'];var _0x175620=_0x2585b1?_0x458cf0['count']:_0x1aff85[_0x0e27('0x1e')]+_0x1aff85['limit'];var _0x591dd2;if(_0x175620>=_0x23f0c4){_0x175620=_0x23f0c4;_0x591dd2=0xc8;}else{_0x591dd2=0xce;}_0x573aa4[_0x0e27('0x1b')](_0x591dd2);return _0x573aa4['set'](_0x0e27('0x21'),_0x50775d+'-'+_0x175620+'/'+_0x23f0c4)[_0x0e27('0x1d')](_0x458cf0);}return null;};}function patchUpdates(_0x45c82d){return function(_0x4f3cbf){try{jsonpatch[_0x0e27('0x22')](_0x4f3cbf,_0x45c82d,!![]);}catch(_0x2d6d7c){return BPromise[_0x0e27('0x23')](_0x2d6d7c);}return _0x4f3cbf[_0x0e27('0x24')]();};}function saveUpdates(_0x74c08c,_0x1a5478){return function(_0x522b45){if(_0x522b45){return _0x522b45[_0x0e27('0x25')](_0x74c08c)[_0x0e27('0x26')](function(_0x22faa2){return _0x22faa2;});}return null;};}function removeEntity(_0x5de23e,_0xc83eb7){return function(_0x3dcef9){if(_0x3dcef9){return _0x3dcef9[_0x0e27('0x27')]()[_0x0e27('0x26')](function(){_0x5de23e['status'](0xcc)[_0x0e27('0x1c')]();});}};}function handleEntityNotFound(_0x569399,_0x4d271d){return function(_0x546166){if(!_0x546166){_0x569399['sendStatus'](0x194);}return _0x546166;};}function handleError(_0x3f1e87,_0x1e0245){_0x1e0245=_0x1e0245||0x1f4;return function(_0x3c9273){logger[_0x0e27('0x28')](_0x3c9273[_0x0e27('0x29')]);if(_0x3c9273[_0x0e27('0x2a')]){delete _0x3c9273[_0x0e27('0x2a')];}_0x3f1e87[_0x0e27('0x1b')](_0x1e0245)[_0x0e27('0x2b')](_0x3c9273);};}exports[_0x0e27('0x2c')]=function(_0x19c20b,_0x367c46){var _0x4330cc={},_0x518236={},_0x5d8003={'count':0x0,'rows':[]};var _0x2932e6=_[_0x0e27('0x2d')](db[_0x0e27('0x2e')][_0x0e27('0x2f')],function(_0x3bb561){return{'name':_0x3bb561[_0x0e27('0x30')],'type':_0x3bb561['type'][_0x0e27('0x31')]};});_0x518236[_0x0e27('0x32')]=_[_0x0e27('0x2d')](_0x2932e6,'name');_0x518236[_0x0e27('0x33')]=_[_0x0e27('0x34')](_0x19c20b[_0x0e27('0x33')]);_0x518236[_0x0e27('0x35')]=_[_0x0e27('0x36')](_0x518236[_0x0e27('0x32')],_0x518236[_0x0e27('0x33')]);_0x4330cc[_0x0e27('0x37')]=_[_0x0e27('0x36')](_0x518236[_0x0e27('0x32')],qs[_0x0e27('0x38')](_0x19c20b[_0x0e27('0x33')][_0x0e27('0x38')]));_0x4330cc[_0x0e27('0x37')]=_0x4330cc[_0x0e27('0x37')][_0x0e27('0x39')]?_0x4330cc[_0x0e27('0x37')]:_0x518236[_0x0e27('0x32')];if(!_0x19c20b['query'][_0x0e27('0x3a')]('nolimit')){_0x4330cc[_0x0e27('0x3b')]=qs[_0x0e27('0x3b')](_0x19c20b['query'][_0x0e27('0x3b')]);_0x4330cc['offset']=qs[_0x0e27('0x1e')](_0x19c20b['query'][_0x0e27('0x1e')]);}_0x4330cc[_0x0e27('0x3c')]=qs[_0x0e27('0x3d')](_0x19c20b[_0x0e27('0x33')]['sort']);_0x4330cc[_0x0e27('0x3e')]=qs[_0x0e27('0x35')](_[_0x0e27('0x3f')](_0x19c20b[_0x0e27('0x33')],_0x518236[_0x0e27('0x35')]),_0x2932e6);if(_0x19c20b[_0x0e27('0x33')][_0x0e27('0x40')]){_0x4330cc[_0x0e27('0x3e')]=_[_0x0e27('0x41')](_0x4330cc['where'],{'$or':_['map'](_0x2932e6,function(_0x3ac74d){if(_0x3ac74d['type']!==_0x0e27('0x42')){var _0x97fde7={};_0x97fde7[_0x3ac74d['name']]={'$like':'%'+_0x19c20b['query']['filter']+'%'};return _0x97fde7;}})});}_0x4330cc=_[_0x0e27('0x41')]({},_0x4330cc,_0x19c20b[_0x0e27('0x43')]);var _0x3cf18c={'where':_0x4330cc[_0x0e27('0x3e')]};return db[_0x0e27('0x2e')][_0x0e27('0x20')](_0x3cf18c)['then'](function(_0x697676){_0x5d8003['count']=_0x697676;if(_0x19c20b['query'][_0x0e27('0x44')]){_0x4330cc[_0x0e27('0x45')]=[{'all':!![]}];}return db['VoiceQueueReport']['findAll'](_0x4330cc);})[_0x0e27('0x26')](function(_0x171051){_0x5d8003[_0x0e27('0x46')]=_0x171051;return _0x5d8003;})[_0x0e27('0x26')](respondWithFilteredResult(_0x367c46,_0x4330cc))[_0x0e27('0x47')](handleError(_0x367c46,null));};exports[_0x0e27('0x48')]=function(_0x5991b2,_0x197b94){var _0x1adeb6={'raw':![],'where':{'id':_0x5991b2['params']['id']}},_0x226619={};_0x226619[_0x0e27('0x32')]=_[_0x0e27('0x34')](db[_0x0e27('0x2e')][_0x0e27('0x2f')]);_0x226619[_0x0e27('0x33')]=_[_0x0e27('0x34')](_0x5991b2[_0x0e27('0x33')]);_0x226619[_0x0e27('0x35')]=_['intersection'](_0x226619['model'],_0x226619[_0x0e27('0x33')]);_0x1adeb6[_0x0e27('0x37')]=_[_0x0e27('0x36')](_0x226619[_0x0e27('0x32')],qs[_0x0e27('0x38')](_0x5991b2['query'][_0x0e27('0x38')]));_0x1adeb6['attributes']=_0x1adeb6['attributes'][_0x0e27('0x39')]?_0x1adeb6[_0x0e27('0x37')]:_0x226619[_0x0e27('0x32')];if(_0x5991b2[_0x0e27('0x33')][_0x0e27('0x44')]){_0x1adeb6[_0x0e27('0x45')]=[{'all':!![]}];}_0x1adeb6=_[_0x0e27('0x41')]({},_0x1adeb6,_0x5991b2[_0x0e27('0x43')]);return db[_0x0e27('0x2e')][_0x0e27('0x49')](_0x1adeb6)[_0x0e27('0x26')](handleEntityNotFound(_0x197b94,null))[_0x0e27('0x26')](respondWithResult(_0x197b94,null))[_0x0e27('0x47')](handleError(_0x197b94,null));};exports['create']=function(_0x23dfd6,_0x52e2a6){return db[_0x0e27('0x2e')][_0x0e27('0x4a')](_0x23dfd6[_0x0e27('0x4b')],{})['then'](respondWithResult(_0x52e2a6,0xc9))['catch'](handleError(_0x52e2a6,null));};exports[_0x0e27('0x25')]=function(_0x5820b7,_0x4ee930){if(_0x5820b7[_0x0e27('0x4b')]['id']){delete _0x5820b7[_0x0e27('0x4b')]['id'];}return db[_0x0e27('0x2e')][_0x0e27('0x49')]({'where':{'id':_0x5820b7[_0x0e27('0x4c')]['id']}})[_0x0e27('0x26')](handleEntityNotFound(_0x4ee930,null))['then'](saveUpdates(_0x5820b7[_0x0e27('0x4b')],null))[_0x0e27('0x26')](respondWithResult(_0x4ee930,null))[_0x0e27('0x47')](handleError(_0x4ee930,null));};exports[_0x0e27('0x27')]=function(_0x1005a6,_0x384ee5){return db[_0x0e27('0x2e')][_0x0e27('0x49')]({'where':{'id':_0x1005a6[_0x0e27('0x4c')]['id']}})[_0x0e27('0x26')](handleEntityNotFound(_0x384ee5,null))[_0x0e27('0x26')](removeEntity(_0x384ee5,null))['catch'](handleError(_0x384ee5,null));};exports[_0x0e27('0x4d')]=function(_0x31a069,_0xecb56b){return db[_0x0e27('0x2e')]['describe']()[_0x0e27('0x26')](respondWithResult(_0xecb56b,null))[_0x0e27('0x47')](handleError(_0xecb56b,null));};exports[_0x0e27('0x4e')]=function(_0x1cbfae,_0xbc560){var _0x451bd5={},_0x24b6ed={},_0x50b752={'count':0x0,'rows':[]};_0x24b6ed[_0x0e27('0x32')]=_[_0x0e27('0x34')](db[_0x0e27('0x2e')]['rawAttributes']);_0x24b6ed[_0x0e27('0x33')]=_[_0x0e27('0x34')](_0x1cbfae['query']);_0x24b6ed[_0x0e27('0x35')]=_[_0x0e27('0x36')](_0x24b6ed[_0x0e27('0x32')],_0x24b6ed[_0x0e27('0x33')]);_0x451bd5[_0x0e27('0x37')]=_[_0x0e27('0x36')](_0x24b6ed[_0x0e27('0x32')],qs[_0x0e27('0x38')](_0x1cbfae[_0x0e27('0x33')]['fields']));_0x451bd5[_0x0e27('0x37')]=_0x451bd5['attributes'][_0x0e27('0x39')]?_0x451bd5[_0x0e27('0x37')]:_0x24b6ed[_0x0e27('0x32')];if(!_0x1cbfae[_0x0e27('0x33')][_0x0e27('0x3a')](_0x0e27('0x4f'))){_0x451bd5[_0x0e27('0x3b')]=qs[_0x0e27('0x3b')](_0x1cbfae[_0x0e27('0x33')][_0x0e27('0x3b')]);_0x451bd5[_0x0e27('0x1e')]=qs[_0x0e27('0x1e')](_0x1cbfae[_0x0e27('0x33')][_0x0e27('0x1e')]);}_0x451bd5[_0x0e27('0x3c')]=qs[_0x0e27('0x3d')](_0x1cbfae[_0x0e27('0x33')]['sort']);_0x451bd5[_0x0e27('0x3e')]=qs[_0x0e27('0x35')](_['pick'](_0x1cbfae[_0x0e27('0x33')],_0x24b6ed[_0x0e27('0x35')]));if(_0x1cbfae['query']['filter']){_0x451bd5[_0x0e27('0x3e')]=_['merge'](_0x451bd5[_0x0e27('0x3e')],{'$or':_[_0x0e27('0x2d')](_0x451bd5[_0x0e27('0x37')],function(_0x1c0265){var _0x11c282={};_0x11c282[_0x1c0265]={'$like':'%'+_0x1cbfae['query'][_0x0e27('0x40')]+'%'};return _0x11c282;})});}_0x451bd5=_[_0x0e27('0x41')]({},_0x451bd5,_0x1cbfae[_0x0e27('0x43')]);var _0x5410e6={'where':_0x451bd5[_0x0e27('0x3e')]};return db[_0x0e27('0x2e')][_0x0e27('0x20')](_0x5410e6)[_0x0e27('0x26')](function(_0x564fd2){_0x50b752[_0x0e27('0x20')]=_0x564fd2;if(_0x1cbfae[_0x0e27('0x33')][_0x0e27('0x44')]){_0x451bd5[_0x0e27('0x45')]=[{'all':!![]}];}return db[_0x0e27('0x2e')]['findAll'](_0x451bd5);})[_0x0e27('0x26')](function(_0x2f2df4){_0x50b752[_0x0e27('0x46')]=_0x2f2df4;return _0x50b752;})[_0x0e27('0x26')](respondWithFilteredResult(_0xbc560,_0x451bd5,_0x0e27('0x4e')))['catch'](handleError(_0xbc560,null,_0x0e27('0x4e')));};