de5fbf1d756ece0bc1af2fa479c2051a10a5326a
[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 _0x235c=['zip-dir','request-promise','moment','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./voiceQueueReport.socket','register','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','save','update','then','destroy','error','name','send','index','VoiceQueueReport','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','merge','map','VIRTUAL','options','include','findAll','rows','catch','show','params','includeAll','find','create','body','describe','getVoiceQueuesReport','nolimit','eml-format','rimraf'];(function(_0x2bda14,_0x4fab1b){var _0xb5dd49=function(_0x1da71e){while(--_0x1da71e){_0x2bda14['push'](_0x2bda14['shift']());}};_0xb5dd49(++_0x4fab1b);}(_0x235c,0x14a));var _0xc235=function(_0x5f1b03,_0x4d5c7c){_0x5f1b03=_0x5f1b03-0x0;var _0x21c4bb=_0x235c[_0x5f1b03];return _0x21c4bb;};'use strict';var emlformat=require(_0xc235('0x0'));var rimraf=require(_0xc235('0x1'));var zipdir=require(_0xc235('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc235('0x3'));var moment=require(_0xc235('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xc235('0x5'));var util=require(_0xc235('0x6'));var path=require(_0xc235('0x7'));var sox=require(_0xc235('0x8'));var csv=require('to-csv');var ejs=require(_0xc235('0x9'));var fs=require('fs');var fs_extra=require(_0xc235('0xa'));var _=require(_0xc235('0xb'));var squel=require(_0xc235('0xc'));var crypto=require(_0xc235('0xd'));var jsforce=require(_0xc235('0xe'));var deskjs=require(_0xc235('0xf'));var toCsv=require(_0xc235('0x10'));var querystring=require(_0xc235('0x11'));var Papa=require('papaparse');var Redis=require(_0xc235('0x12'));var authService=require(_0xc235('0x13'));var qs=require(_0xc235('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xc235('0x15'));var utils=require('../../config/utils');var config=require(_0xc235('0x16'));var licenseUtil=require(_0xc235('0x17'));var db=require(_0xc235('0x18'))['db'];config[_0xc235('0x19')]=_[_0xc235('0x1a')](config['redis'],{'host':_0xc235('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc235('0x19')]));require(_0xc235('0x1c'))[_0xc235('0x1d')](socket);function respondWithStatusCode(_0xbfbf7a,_0x442131){_0x442131=_0x442131||0xcc;return function(_0x9eff98){if(_0x9eff98){return _0xbfbf7a[_0xc235('0x1e')](_0x442131);}return _0xbfbf7a['status'](_0x442131)[_0xc235('0x1f')]();};}function respondWithResult(_0x19cc50,_0x15e823){_0x15e823=_0x15e823||0xc8;return function(_0x5ef8a4){if(_0x5ef8a4){return _0x19cc50[_0xc235('0x20')](_0x15e823)[_0xc235('0x21')](_0x5ef8a4);}};}function respondWithFilteredResult(_0x8c7d5c,_0xbfd9b8){return function(_0x9d059f){if(_0x9d059f){var _0x4a4487=typeof _0xbfd9b8[_0xc235('0x22')]===_0xc235('0x23')&&typeof _0xbfd9b8['limit']==='undefined';var _0x153fd4=_0x9d059f['count'];var _0x5dd433=_0x4a4487?0x0:_0xbfd9b8[_0xc235('0x22')];var _0x47a9b2=_0x4a4487?_0x9d059f[_0xc235('0x24')]:_0xbfd9b8[_0xc235('0x22')]+_0xbfd9b8[_0xc235('0x25')];var _0x4a1109;if(_0x47a9b2>=_0x153fd4){_0x47a9b2=_0x153fd4;_0x4a1109=0xc8;}else{_0x4a1109=0xce;}_0x8c7d5c[_0xc235('0x20')](_0x4a1109);return _0x8c7d5c[_0xc235('0x26')](_0xc235('0x27'),_0x5dd433+'-'+_0x47a9b2+'/'+_0x153fd4)[_0xc235('0x21')](_0x9d059f);}return null;};}function patchUpdates(_0x2db845){return function(_0x2668f7){try{jsonpatch['apply'](_0x2668f7,_0x2db845,!![]);}catch(_0x301c22){return BPromise['reject'](_0x301c22);}return _0x2668f7[_0xc235('0x28')]();};}function saveUpdates(_0xcc8c37,_0x279e6a){return function(_0x5adab1){if(_0x5adab1){return _0x5adab1[_0xc235('0x29')](_0xcc8c37)[_0xc235('0x2a')](function(_0x404b1a){return _0x404b1a;});}return null;};}function removeEntity(_0x171a7e,_0x2b4e06){return function(_0x347f36){if(_0x347f36){return _0x347f36[_0xc235('0x2b')]()['then'](function(){_0x171a7e[_0xc235('0x20')](0xcc)[_0xc235('0x1f')]();});}};}function handleEntityNotFound(_0x27c37c,_0x272639){return function(_0x5b67df){if(!_0x5b67df){_0x27c37c[_0xc235('0x1e')](0x194);}return _0x5b67df;};}function handleError(_0x336cd6,_0x513586){_0x513586=_0x513586||0x1f4;return function(_0x3b34f2){logger[_0xc235('0x2c')](_0x3b34f2['stack']);if(_0x3b34f2[_0xc235('0x2d')]){delete _0x3b34f2[_0xc235('0x2d')];}_0x336cd6['status'](_0x513586)[_0xc235('0x2e')](_0x3b34f2);};}exports[_0xc235('0x2f')]=function(_0x19e5d6,_0x2e0863){var _0x2296be={},_0x1cff81={},_0x4ae072={'count':0x0,'rows':[]};var _0x4f2e30=_['map'](db[_0xc235('0x30')][_0xc235('0x31')],function(_0xc4f3f2){return{'name':_0xc4f3f2[_0xc235('0x32')],'type':_0xc4f3f2[_0xc235('0x33')]['key']};});_0x1cff81[_0xc235('0x34')]=_['map'](_0x4f2e30,_0xc235('0x2d'));_0x1cff81[_0xc235('0x35')]=_[_0xc235('0x36')](_0x19e5d6[_0xc235('0x35')]);_0x1cff81[_0xc235('0x37')]=_['intersection'](_0x1cff81[_0xc235('0x34')],_0x1cff81[_0xc235('0x35')]);_0x2296be['attributes']=_[_0xc235('0x38')](_0x1cff81[_0xc235('0x34')],qs[_0xc235('0x39')](_0x19e5d6[_0xc235('0x35')]['fields']));_0x2296be[_0xc235('0x3a')]=_0x2296be[_0xc235('0x3a')][_0xc235('0x3b')]?_0x2296be[_0xc235('0x3a')]:_0x1cff81[_0xc235('0x34')];if(!_0x19e5d6[_0xc235('0x35')][_0xc235('0x3c')]('nolimit')){_0x2296be[_0xc235('0x25')]=qs[_0xc235('0x25')](_0x19e5d6[_0xc235('0x35')]['limit']);_0x2296be[_0xc235('0x22')]=qs[_0xc235('0x22')](_0x19e5d6['query'][_0xc235('0x22')]);}_0x2296be[_0xc235('0x3d')]=qs[_0xc235('0x3e')](_0x19e5d6[_0xc235('0x35')][_0xc235('0x3e')]);_0x2296be[_0xc235('0x3f')]=qs[_0xc235('0x37')](_[_0xc235('0x40')](_0x19e5d6[_0xc235('0x35')],_0x1cff81['filters']),_0x4f2e30);if(_0x19e5d6[_0xc235('0x35')][_0xc235('0x41')]){_0x2296be[_0xc235('0x3f')]=_[_0xc235('0x42')](_0x2296be[_0xc235('0x3f')],{'$or':_[_0xc235('0x43')](_0x4f2e30,function(_0x562769){if(_0x562769[_0xc235('0x33')]!==_0xc235('0x44')){var _0x3d6bb8={};_0x3d6bb8[_0x562769[_0xc235('0x2d')]]={'$like':'%'+_0x19e5d6[_0xc235('0x35')]['filter']+'%'};return _0x3d6bb8;}})});}_0x2296be=_[_0xc235('0x42')]({},_0x2296be,_0x19e5d6[_0xc235('0x45')]);var _0x4db259={'where':_0x2296be[_0xc235('0x3f')]};return db['VoiceQueueReport']['count'](_0x4db259)[_0xc235('0x2a')](function(_0x2dd980){_0x4ae072[_0xc235('0x24')]=_0x2dd980;if(_0x19e5d6['query']['includeAll']){_0x2296be[_0xc235('0x46')]=[{'all':!![]}];}return db[_0xc235('0x30')][_0xc235('0x47')](_0x2296be);})[_0xc235('0x2a')](function(_0xceec0e){_0x4ae072[_0xc235('0x48')]=_0xceec0e;return _0x4ae072;})[_0xc235('0x2a')](respondWithFilteredResult(_0x2e0863,_0x2296be))[_0xc235('0x49')](handleError(_0x2e0863,null));};exports[_0xc235('0x4a')]=function(_0x21126d,_0x39c2f1){var _0x391d45={'raw':![],'where':{'id':_0x21126d[_0xc235('0x4b')]['id']}},_0x46b6e9={};_0x46b6e9[_0xc235('0x34')]=_[_0xc235('0x36')](db['VoiceQueueReport'][_0xc235('0x31')]);_0x46b6e9[_0xc235('0x35')]=_[_0xc235('0x36')](_0x21126d[_0xc235('0x35')]);_0x46b6e9[_0xc235('0x37')]=_[_0xc235('0x38')](_0x46b6e9[_0xc235('0x34')],_0x46b6e9[_0xc235('0x35')]);_0x391d45['attributes']=_[_0xc235('0x38')](_0x46b6e9['model'],qs['fields'](_0x21126d[_0xc235('0x35')][_0xc235('0x39')]));_0x391d45['attributes']=_0x391d45[_0xc235('0x3a')][_0xc235('0x3b')]?_0x391d45[_0xc235('0x3a')]:_0x46b6e9['model'];if(_0x21126d[_0xc235('0x35')][_0xc235('0x4c')]){_0x391d45[_0xc235('0x46')]=[{'all':!![]}];}_0x391d45=_[_0xc235('0x42')]({},_0x391d45,_0x21126d['options']);return db['VoiceQueueReport'][_0xc235('0x4d')](_0x391d45)[_0xc235('0x2a')](handleEntityNotFound(_0x39c2f1,null))[_0xc235('0x2a')](respondWithResult(_0x39c2f1,null))[_0xc235('0x49')](handleError(_0x39c2f1,null));};exports['create']=function(_0x11e8e4,_0x48ee3c){return db[_0xc235('0x30')][_0xc235('0x4e')](_0x11e8e4['body'],{})[_0xc235('0x2a')](respondWithResult(_0x48ee3c,0xc9))[_0xc235('0x49')](handleError(_0x48ee3c,null));};exports[_0xc235('0x29')]=function(_0x3034b1,_0x45910d){if(_0x3034b1[_0xc235('0x4f')]['id']){delete _0x3034b1['body']['id'];}return db[_0xc235('0x30')][_0xc235('0x4d')]({'where':{'id':_0x3034b1[_0xc235('0x4b')]['id']}})[_0xc235('0x2a')](handleEntityNotFound(_0x45910d,null))['then'](saveUpdates(_0x3034b1[_0xc235('0x4f')],null))['then'](respondWithResult(_0x45910d,null))['catch'](handleError(_0x45910d,null));};exports[_0xc235('0x2b')]=function(_0x40ff6d,_0x107a53){return db[_0xc235('0x30')][_0xc235('0x4d')]({'where':{'id':_0x40ff6d['params']['id']}})[_0xc235('0x2a')](handleEntityNotFound(_0x107a53,null))['then'](removeEntity(_0x107a53,null))[_0xc235('0x49')](handleError(_0x107a53,null));};exports[_0xc235('0x50')]=function(_0x169b69,_0x110dc4){return db[_0xc235('0x30')][_0xc235('0x50')]()[_0xc235('0x2a')](respondWithResult(_0x110dc4,null))['catch'](handleError(_0x110dc4,null));};exports[_0xc235('0x51')]=function(_0x54e26d,_0x4917a5){var _0x4b895c={},_0x54a6c6={},_0x2e1b00={'count':0x0,'rows':[]};_0x54a6c6[_0xc235('0x34')]=_[_0xc235('0x36')](db[_0xc235('0x30')]['rawAttributes']);_0x54a6c6[_0xc235('0x35')]=_[_0xc235('0x36')](_0x54e26d['query']);_0x54a6c6[_0xc235('0x37')]=_[_0xc235('0x38')](_0x54a6c6[_0xc235('0x34')],_0x54a6c6[_0xc235('0x35')]);_0x4b895c['attributes']=_[_0xc235('0x38')](_0x54a6c6[_0xc235('0x34')],qs[_0xc235('0x39')](_0x54e26d[_0xc235('0x35')][_0xc235('0x39')]));_0x4b895c[_0xc235('0x3a')]=_0x4b895c[_0xc235('0x3a')][_0xc235('0x3b')]?_0x4b895c['attributes']:_0x54a6c6[_0xc235('0x34')];if(!_0x54e26d[_0xc235('0x35')]['hasOwnProperty'](_0xc235('0x52'))){_0x4b895c[_0xc235('0x25')]=qs['limit'](_0x54e26d[_0xc235('0x35')][_0xc235('0x25')]);_0x4b895c[_0xc235('0x22')]=qs[_0xc235('0x22')](_0x54e26d['query'][_0xc235('0x22')]);}_0x4b895c[_0xc235('0x3d')]=qs[_0xc235('0x3e')](_0x54e26d[_0xc235('0x35')][_0xc235('0x3e')]);_0x4b895c[_0xc235('0x3f')]=qs[_0xc235('0x37')](_[_0xc235('0x40')](_0x54e26d[_0xc235('0x35')],_0x54a6c6[_0xc235('0x37')]));if(_0x54e26d[_0xc235('0x35')]['filter']){_0x4b895c[_0xc235('0x3f')]=_[_0xc235('0x42')](_0x4b895c['where'],{'$or':_[_0xc235('0x43')](_0x4b895c[_0xc235('0x3a')],function(_0xd431b0){var _0x10bc89={};_0x10bc89[_0xd431b0]={'$like':'%'+_0x54e26d[_0xc235('0x35')]['filter']+'%'};return _0x10bc89;})});}_0x4b895c=_[_0xc235('0x42')]({},_0x4b895c,_0x54e26d['options']);var _0x4cbee3={'where':_0x4b895c[_0xc235('0x3f')]};return db[_0xc235('0x30')]['count'](_0x4cbee3)[_0xc235('0x2a')](function(_0x1923c7){_0x2e1b00[_0xc235('0x24')]=_0x1923c7;if(_0x54e26d[_0xc235('0x35')]['includeAll']){_0x4b895c[_0xc235('0x46')]=[{'all':!![]}];}return db[_0xc235('0x30')]['findAll'](_0x4b895c);})['then'](function(_0x348429){_0x2e1b00['rows']=_0x348429;return _0x2e1b00;})[_0xc235('0x2a')](respondWithFilteredResult(_0x4917a5,_0x4b895c,_0xc235('0x51')))['catch'](handleError(_0x4917a5,null,_0xc235('0x51')));};