Built motion from commit f7863d46.|2.5.41
[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 _0x37b4=['query','keys','intersection','attributes','fields','length','nolimit','limit','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','find','create','body','params','describe','getVoiceQueuesReport','hasOwnProperty','order','eml-format','zip-dir','fast-json-patch','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','redis','socket.io-emitter','register','sendStatus','status','json','offset','undefined','count','set','Content-Range','apply','update','then','error','name','send','map','VoiceQueueReport','rawAttributes','type','model'];(function(_0x278e3c,_0x1c9cfd){var _0x3e2d9b=function(_0x34d928){while(--_0x34d928){_0x278e3c['push'](_0x278e3c['shift']());}};_0x3e2d9b(++_0x1c9cfd);}(_0x37b4,0x141));var _0x437b=function(_0x4ec7f2,_0x3d92d2){_0x4ec7f2=_0x4ec7f2-0x0;var _0x118004=_0x37b4[_0x4ec7f2];return _0x118004;};'use strict';var emlformat=require(_0x437b('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x437b('0x1'));var jsonpatch=require(_0x437b('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x437b('0x3'));var path=require(_0x437b('0x4'));var sox=require(_0x437b('0x5'));var csv=require(_0x437b('0x6'));var ejs=require(_0x437b('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x437b('0x8'));var squel=require(_0x437b('0x9'));var crypto=require(_0x437b('0xa'));var jsforce=require(_0x437b('0xb'));var deskjs=require(_0x437b('0xc'));var toCsv=require('to-csv');var querystring=require(_0x437b('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x437b('0xe'));var qs=require(_0x437b('0xf'));var as=require(_0x437b('0x10'));var hardwareService=require(_0x437b('0x11'));var logger=require(_0x437b('0x12'))('api');var utils=require(_0x437b('0x13'));var config=require(_0x437b('0x14'));var licenseUtil=require(_0x437b('0x15'));var db=require('../../mysqldb')['db'];config[_0x437b('0x16')]=_['defaults'](config[_0x437b('0x16')],{'host':'localhost','port':0x18eb});var socket=require(_0x437b('0x17'))(new Redis(config['redis']));require('./voiceQueueReport.socket')[_0x437b('0x18')](socket);function respondWithStatusCode(_0x463e0d,_0x4a44c6){_0x4a44c6=_0x4a44c6||0xcc;return function(_0x3ae17a){if(_0x3ae17a){return _0x463e0d[_0x437b('0x19')](_0x4a44c6);}return _0x463e0d[_0x437b('0x1a')](_0x4a44c6)['end']();};}function respondWithResult(_0x293174,_0x39f8ad){_0x39f8ad=_0x39f8ad||0xc8;return function(_0x298a5c){if(_0x298a5c){return _0x293174[_0x437b('0x1a')](_0x39f8ad)[_0x437b('0x1b')](_0x298a5c);}};}function respondWithFilteredResult(_0x2cec34,_0x17b7a3){return function(_0x5ba53f){if(_0x5ba53f){var _0x12ad42=typeof _0x17b7a3[_0x437b('0x1c')]==='undefined'&&typeof _0x17b7a3['limit']===_0x437b('0x1d');var _0x14b5bd=_0x5ba53f[_0x437b('0x1e')];var _0x4dc3ce=_0x12ad42?0x0:_0x17b7a3['offset'];var _0x5767f2=_0x12ad42?_0x5ba53f[_0x437b('0x1e')]:_0x17b7a3[_0x437b('0x1c')]+_0x17b7a3['limit'];var _0x233187;if(_0x5767f2>=_0x14b5bd){_0x5767f2=_0x14b5bd;_0x233187=0xc8;}else{_0x233187=0xce;}_0x2cec34[_0x437b('0x1a')](_0x233187);return _0x2cec34[_0x437b('0x1f')](_0x437b('0x20'),_0x4dc3ce+'-'+_0x5767f2+'/'+_0x14b5bd)['json'](_0x5ba53f);}return null;};}function patchUpdates(_0x4f4d76){return function(_0x5e4af6){try{jsonpatch[_0x437b('0x21')](_0x5e4af6,_0x4f4d76,!![]);}catch(_0x3b151f){return BPromise['reject'](_0x3b151f);}return _0x5e4af6['save']();};}function saveUpdates(_0x31e212,_0x51d5ac){return function(_0x1e6328){if(_0x1e6328){return _0x1e6328[_0x437b('0x22')](_0x31e212)[_0x437b('0x23')](function(_0x30564b){return _0x30564b;});}return null;};}function removeEntity(_0x28fb8f,_0x1ab93d){return function(_0x5eb539){if(_0x5eb539){return _0x5eb539['destroy']()[_0x437b('0x23')](function(){_0x28fb8f[_0x437b('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x130f69,_0x474a80){return function(_0x4ca490){if(!_0x4ca490){_0x130f69['sendStatus'](0x194);}return _0x4ca490;};}function handleError(_0x85c441,_0x523bc0){_0x523bc0=_0x523bc0||0x1f4;return function(_0x1cf350){logger[_0x437b('0x24')](_0x1cf350['stack']);if(_0x1cf350[_0x437b('0x25')]){delete _0x1cf350[_0x437b('0x25')];}_0x85c441[_0x437b('0x1a')](_0x523bc0)[_0x437b('0x26')](_0x1cf350);};}exports['index']=function(_0x1967e2,_0x6da2e2){var _0x26b89c={},_0x372970={},_0x2f51bf={'count':0x0,'rows':[]};var _0xec3e54=_[_0x437b('0x27')](db[_0x437b('0x28')][_0x437b('0x29')],function(_0x4f50f0){return{'name':_0x4f50f0['fieldName'],'type':_0x4f50f0[_0x437b('0x2a')]['key']};});_0x372970[_0x437b('0x2b')]=_[_0x437b('0x27')](_0xec3e54,_0x437b('0x25'));_0x372970[_0x437b('0x2c')]=_[_0x437b('0x2d')](_0x1967e2[_0x437b('0x2c')]);_0x372970['filters']=_[_0x437b('0x2e')](_0x372970[_0x437b('0x2b')],_0x372970[_0x437b('0x2c')]);_0x26b89c[_0x437b('0x2f')]=_[_0x437b('0x2e')](_0x372970['model'],qs[_0x437b('0x30')](_0x1967e2[_0x437b('0x2c')][_0x437b('0x30')]));_0x26b89c[_0x437b('0x2f')]=_0x26b89c[_0x437b('0x2f')][_0x437b('0x31')]?_0x26b89c[_0x437b('0x2f')]:_0x372970['model'];if(!_0x1967e2['query']['hasOwnProperty'](_0x437b('0x32'))){_0x26b89c[_0x437b('0x33')]=qs[_0x437b('0x33')](_0x1967e2[_0x437b('0x2c')][_0x437b('0x33')]);_0x26b89c[_0x437b('0x1c')]=qs[_0x437b('0x1c')](_0x1967e2[_0x437b('0x2c')][_0x437b('0x1c')]);}_0x26b89c['order']=qs[_0x437b('0x34')](_0x1967e2[_0x437b('0x2c')][_0x437b('0x34')]);_0x26b89c[_0x437b('0x35')]=qs[_0x437b('0x36')](_[_0x437b('0x37')](_0x1967e2[_0x437b('0x2c')],_0x372970[_0x437b('0x36')]),_0xec3e54);if(_0x1967e2[_0x437b('0x2c')][_0x437b('0x38')]){_0x26b89c['where']=_[_0x437b('0x39')](_0x26b89c[_0x437b('0x35')],{'$or':_[_0x437b('0x27')](_0xec3e54,function(_0x4508de){if(_0x4508de[_0x437b('0x2a')]!==_0x437b('0x3a')){var _0x176553={};_0x176553[_0x4508de[_0x437b('0x25')]]={'$like':'%'+_0x1967e2[_0x437b('0x2c')]['filter']+'%'};return _0x176553;}})});}_0x26b89c=_['merge']({},_0x26b89c,_0x1967e2[_0x437b('0x3b')]);var _0x10c418={'where':_0x26b89c['where']};return db[_0x437b('0x28')][_0x437b('0x1e')](_0x10c418)[_0x437b('0x23')](function(_0x9adc86){_0x2f51bf['count']=_0x9adc86;if(_0x1967e2[_0x437b('0x2c')][_0x437b('0x3c')]){_0x26b89c[_0x437b('0x3d')]=[{'all':!![]}];}return db[_0x437b('0x28')][_0x437b('0x3e')](_0x26b89c);})[_0x437b('0x23')](function(_0x276b30){_0x2f51bf['rows']=_0x276b30;return _0x2f51bf;})['then'](respondWithFilteredResult(_0x6da2e2,_0x26b89c))[_0x437b('0x3f')](handleError(_0x6da2e2,null));};exports[_0x437b('0x40')]=function(_0xc39f59,_0x44f687){var _0x5bf670={'raw':![],'where':{'id':_0xc39f59['params']['id']}},_0x18623d={};_0x18623d[_0x437b('0x2b')]=_[_0x437b('0x2d')](db['VoiceQueueReport']['rawAttributes']);_0x18623d['query']=_[_0x437b('0x2d')](_0xc39f59[_0x437b('0x2c')]);_0x18623d['filters']=_[_0x437b('0x2e')](_0x18623d[_0x437b('0x2b')],_0x18623d[_0x437b('0x2c')]);_0x5bf670[_0x437b('0x2f')]=_[_0x437b('0x2e')](_0x18623d[_0x437b('0x2b')],qs[_0x437b('0x30')](_0xc39f59[_0x437b('0x2c')]['fields']));_0x5bf670['attributes']=_0x5bf670[_0x437b('0x2f')][_0x437b('0x31')]?_0x5bf670[_0x437b('0x2f')]:_0x18623d[_0x437b('0x2b')];if(_0xc39f59[_0x437b('0x2c')][_0x437b('0x3c')]){_0x5bf670[_0x437b('0x3d')]=[{'all':!![]}];}_0x5bf670=_['merge']({},_0x5bf670,_0xc39f59[_0x437b('0x3b')]);return db['VoiceQueueReport'][_0x437b('0x41')](_0x5bf670)[_0x437b('0x23')](handleEntityNotFound(_0x44f687,null))['then'](respondWithResult(_0x44f687,null))['catch'](handleError(_0x44f687,null));};exports[_0x437b('0x42')]=function(_0x48b66e,_0x412256){return db[_0x437b('0x28')][_0x437b('0x42')](_0x48b66e[_0x437b('0x43')],{})[_0x437b('0x23')](respondWithResult(_0x412256,0xc9))[_0x437b('0x3f')](handleError(_0x412256,null));};exports[_0x437b('0x22')]=function(_0x190ad6,_0x31e4b6){if(_0x190ad6[_0x437b('0x43')]['id']){delete _0x190ad6[_0x437b('0x43')]['id'];}return db[_0x437b('0x28')][_0x437b('0x41')]({'where':{'id':_0x190ad6[_0x437b('0x44')]['id']}})[_0x437b('0x23')](handleEntityNotFound(_0x31e4b6,null))['then'](saveUpdates(_0x190ad6[_0x437b('0x43')],null))['then'](respondWithResult(_0x31e4b6,null))[_0x437b('0x3f')](handleError(_0x31e4b6,null));};exports['destroy']=function(_0x10f269,_0x47cffb){return db[_0x437b('0x28')][_0x437b('0x41')]({'where':{'id':_0x10f269[_0x437b('0x44')]['id']}})[_0x437b('0x23')](handleEntityNotFound(_0x47cffb,null))[_0x437b('0x23')](removeEntity(_0x47cffb,null))[_0x437b('0x3f')](handleError(_0x47cffb,null));};exports[_0x437b('0x45')]=function(_0x1e6346,_0x8ca793){return db[_0x437b('0x28')][_0x437b('0x45')]()[_0x437b('0x23')](respondWithResult(_0x8ca793,null))[_0x437b('0x3f')](handleError(_0x8ca793,null));};exports[_0x437b('0x46')]=function(_0x5710ef,_0x117b8c){var _0xeb05f7={},_0x388909={},_0xc4f7dd={'count':0x0,'rows':[]};_0x388909['model']=_['keys'](db[_0x437b('0x28')][_0x437b('0x29')]);_0x388909[_0x437b('0x2c')]=_['keys'](_0x5710ef[_0x437b('0x2c')]);_0x388909[_0x437b('0x36')]=_[_0x437b('0x2e')](_0x388909['model'],_0x388909[_0x437b('0x2c')]);_0xeb05f7[_0x437b('0x2f')]=_[_0x437b('0x2e')](_0x388909['model'],qs[_0x437b('0x30')](_0x5710ef[_0x437b('0x2c')][_0x437b('0x30')]));_0xeb05f7[_0x437b('0x2f')]=_0xeb05f7[_0x437b('0x2f')]['length']?_0xeb05f7[_0x437b('0x2f')]:_0x388909['model'];if(!_0x5710ef['query'][_0x437b('0x47')](_0x437b('0x32'))){_0xeb05f7[_0x437b('0x33')]=qs['limit'](_0x5710ef[_0x437b('0x2c')]['limit']);_0xeb05f7[_0x437b('0x1c')]=qs['offset'](_0x5710ef['query'][_0x437b('0x1c')]);}_0xeb05f7[_0x437b('0x48')]=qs[_0x437b('0x34')](_0x5710ef['query'][_0x437b('0x34')]);_0xeb05f7[_0x437b('0x35')]=qs[_0x437b('0x36')](_[_0x437b('0x37')](_0x5710ef[_0x437b('0x2c')],_0x388909['filters']));if(_0x5710ef[_0x437b('0x2c')][_0x437b('0x38')]){_0xeb05f7['where']=_[_0x437b('0x39')](_0xeb05f7[_0x437b('0x35')],{'$or':_[_0x437b('0x27')](_0xeb05f7['attributes'],function(_0x2cdfcc){var _0x273431={};_0x273431[_0x2cdfcc]={'$like':'%'+_0x5710ef[_0x437b('0x2c')][_0x437b('0x38')]+'%'};return _0x273431;})});}_0xeb05f7=_[_0x437b('0x39')]({},_0xeb05f7,_0x5710ef['options']);var _0x2b8333={'where':_0xeb05f7[_0x437b('0x35')]};return db['VoiceQueueReport'][_0x437b('0x1e')](_0x2b8333)[_0x437b('0x23')](function(_0x3025ac){_0xc4f7dd['count']=_0x3025ac;if(_0x5710ef['query'][_0x437b('0x3c')]){_0xeb05f7[_0x437b('0x3d')]=[{'all':!![]}];}return db[_0x437b('0x28')][_0x437b('0x3e')](_0xeb05f7);})[_0x437b('0x23')](function(_0x5dd4c3){_0xc4f7dd['rows']=_0x5dd4c3;return _0xc4f7dd;})[_0x437b('0x23')](respondWithFilteredResult(_0x117b8c,_0xeb05f7,_0x437b('0x46')))[_0x437b('0x3f')](handleError(_0x117b8c,null,_0x437b('0x46')));};