Built motion from commit d5e4af8c.|2.6.23
[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 _0xdf85=['fs-extra','squel','crypto','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../mysqldb','redis','defaults','register','sendStatus','status','end','json','limit','undefined','count','offset','apply','save','update','destroy','error','stack','name','send','index','VoiceQueueReport','rawAttributes','fieldName','type','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','sort','where','filters','filter','merge','then','include','findAll','rows','catch','show','params','includeAll','options','find','create','body','describe','getVoiceQueuesReport','nolimit','order','pick','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs'];(function(_0x456066,_0x44930c){var _0x5a069a=function(_0x2ed314){while(--_0x2ed314){_0x456066['push'](_0x456066['shift']());}};_0x5a069a(++_0x44930c);}(_0xdf85,0xdb));var _0x5df8=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xdf85[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0x5df8('0x0'));var rimraf=require(_0x5df8('0x1'));var zipdir=require(_0x5df8('0x2'));var jsonpatch=require(_0x5df8('0x3'));var rp=require(_0x5df8('0x4'));var moment=require(_0x5df8('0x5'));var BPromise=require(_0x5df8('0x6'));var Mustache=require(_0x5df8('0x7'));var util=require(_0x5df8('0x8'));var path=require('path');var sox=require(_0x5df8('0x9'));var csv=require(_0x5df8('0xa'));var ejs=require(_0x5df8('0xb'));var fs=require('fs');var fs_extra=require(_0x5df8('0xc'));var _=require('lodash');var squel=require(_0x5df8('0xd'));var crypto=require(_0x5df8('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x5df8('0xf'));var Papa=require(_0x5df8('0x10'));var Redis=require('ioredis');var authService=require(_0x5df8('0x11'));var qs=require(_0x5df8('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5df8('0x13'));var logger=require('../../config/logger')(_0x5df8('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x5df8('0x15'))['db'];config[_0x5df8('0x16')]=_[_0x5df8('0x17')](config[_0x5df8('0x16')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x5df8('0x16')]));require('./voiceQueueReport.socket')[_0x5df8('0x18')](socket);function respondWithStatusCode(_0x1b3388,_0x5713a0){_0x5713a0=_0x5713a0||0xcc;return function(_0x440ce0){if(_0x440ce0){return _0x1b3388[_0x5df8('0x19')](_0x5713a0);}return _0x1b3388[_0x5df8('0x1a')](_0x5713a0)[_0x5df8('0x1b')]();};}function respondWithResult(_0x34d531,_0x1cf679){_0x1cf679=_0x1cf679||0xc8;return function(_0x40afa0){if(_0x40afa0){return _0x34d531[_0x5df8('0x1a')](_0x1cf679)[_0x5df8('0x1c')](_0x40afa0);}};}function respondWithFilteredResult(_0x248585,_0x2e041a){return function(_0x12f7e7){if(_0x12f7e7){var _0xd25c67=typeof _0x2e041a['offset']==='undefined'&&typeof _0x2e041a[_0x5df8('0x1d')]===_0x5df8('0x1e');var _0x4ea06f=_0x12f7e7[_0x5df8('0x1f')];var _0x3f2900=_0xd25c67?0x0:_0x2e041a[_0x5df8('0x20')];var _0x33b325=_0xd25c67?_0x12f7e7[_0x5df8('0x1f')]:_0x2e041a[_0x5df8('0x20')]+_0x2e041a['limit'];var _0x2311c9;if(_0x33b325>=_0x4ea06f){_0x33b325=_0x4ea06f;_0x2311c9=0xc8;}else{_0x2311c9=0xce;}_0x248585[_0x5df8('0x1a')](_0x2311c9);return _0x248585['set']('Content-Range',_0x3f2900+'-'+_0x33b325+'/'+_0x4ea06f)[_0x5df8('0x1c')](_0x12f7e7);}return null;};}function patchUpdates(_0x5df2f8){return function(_0x1ec85a){try{jsonpatch[_0x5df8('0x21')](_0x1ec85a,_0x5df2f8,!![]);}catch(_0x23cb75){return BPromise['reject'](_0x23cb75);}return _0x1ec85a[_0x5df8('0x22')]();};}function saveUpdates(_0x13903d,_0x30415a){return function(_0x378acd){if(_0x378acd){return _0x378acd[_0x5df8('0x23')](_0x13903d)['then'](function(_0x464b55){return _0x464b55;});}return null;};}function removeEntity(_0x34ee62,_0x3b352a){return function(_0x1a340c){if(_0x1a340c){return _0x1a340c[_0x5df8('0x24')]()['then'](function(){_0x34ee62['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x56a38a,_0x30590a){return function(_0x3abd40){if(!_0x3abd40){_0x56a38a['sendStatus'](0x194);}return _0x3abd40;};}function handleError(_0x573035,_0x1abdb6){_0x1abdb6=_0x1abdb6||0x1f4;return function(_0x3f7648){logger[_0x5df8('0x25')](_0x3f7648[_0x5df8('0x26')]);if(_0x3f7648[_0x5df8('0x27')]){delete _0x3f7648[_0x5df8('0x27')];}_0x573035[_0x5df8('0x1a')](_0x1abdb6)[_0x5df8('0x28')](_0x3f7648);};}exports[_0x5df8('0x29')]=function(_0x45bb84,_0x5c9815){var _0x442a89={},_0x13b6b4={},_0x5971c3={'count':0x0,'rows':[]};var _0x18eecc=_['map'](db[_0x5df8('0x2a')][_0x5df8('0x2b')],function(_0x5a3cac){return{'name':_0x5a3cac[_0x5df8('0x2c')],'type':_0x5a3cac[_0x5df8('0x2d')]['key']};});_0x13b6b4[_0x5df8('0x2e')]=_[_0x5df8('0x2f')](_0x18eecc,_0x5df8('0x27'));_0x13b6b4[_0x5df8('0x30')]=_[_0x5df8('0x31')](_0x45bb84[_0x5df8('0x30')]);_0x13b6b4['filters']=_[_0x5df8('0x32')](_0x13b6b4[_0x5df8('0x2e')],_0x13b6b4['query']);_0x442a89[_0x5df8('0x33')]=_['intersection'](_0x13b6b4[_0x5df8('0x2e')],qs[_0x5df8('0x34')](_0x45bb84[_0x5df8('0x30')][_0x5df8('0x34')]));_0x442a89[_0x5df8('0x33')]=_0x442a89[_0x5df8('0x33')][_0x5df8('0x35')]?_0x442a89['attributes']:_0x13b6b4['model'];if(!_0x45bb84['query'][_0x5df8('0x36')]('nolimit')){_0x442a89[_0x5df8('0x1d')]=qs['limit'](_0x45bb84[_0x5df8('0x30')][_0x5df8('0x1d')]);_0x442a89['offset']=qs[_0x5df8('0x20')](_0x45bb84[_0x5df8('0x30')]['offset']);}_0x442a89['order']=qs[_0x5df8('0x37')](_0x45bb84[_0x5df8('0x30')][_0x5df8('0x37')]);_0x442a89[_0x5df8('0x38')]=qs['filters'](_['pick'](_0x45bb84[_0x5df8('0x30')],_0x13b6b4[_0x5df8('0x39')]),_0x18eecc);if(_0x45bb84['query'][_0x5df8('0x3a')]){_0x442a89['where']=_[_0x5df8('0x3b')](_0x442a89['where'],{'$or':_['map'](_0x18eecc,function(_0x379ba0){if(_0x379ba0[_0x5df8('0x2d')]!=='VIRTUAL'){var _0xb9e303={};_0xb9e303[_0x379ba0[_0x5df8('0x27')]]={'$like':'%'+_0x45bb84['query'][_0x5df8('0x3a')]+'%'};return _0xb9e303;}})});}_0x442a89=_['merge']({},_0x442a89,_0x45bb84['options']);var _0x17c6db={'where':_0x442a89[_0x5df8('0x38')]};return db[_0x5df8('0x2a')][_0x5df8('0x1f')](_0x17c6db)[_0x5df8('0x3c')](function(_0x366e18){_0x5971c3[_0x5df8('0x1f')]=_0x366e18;if(_0x45bb84['query']['includeAll']){_0x442a89[_0x5df8('0x3d')]=[{'all':!![]}];}return db[_0x5df8('0x2a')][_0x5df8('0x3e')](_0x442a89);})[_0x5df8('0x3c')](function(_0x16752f){_0x5971c3[_0x5df8('0x3f')]=_0x16752f;return _0x5971c3;})[_0x5df8('0x3c')](respondWithFilteredResult(_0x5c9815,_0x442a89))[_0x5df8('0x40')](handleError(_0x5c9815,null));};exports[_0x5df8('0x41')]=function(_0x202939,_0x4f32f5){var _0x1dfc80={'raw':![],'where':{'id':_0x202939[_0x5df8('0x42')]['id']}},_0x4f3d32={};_0x4f3d32[_0x5df8('0x2e')]=_[_0x5df8('0x31')](db[_0x5df8('0x2a')][_0x5df8('0x2b')]);_0x4f3d32[_0x5df8('0x30')]=_[_0x5df8('0x31')](_0x202939['query']);_0x4f3d32[_0x5df8('0x39')]=_[_0x5df8('0x32')](_0x4f3d32['model'],_0x4f3d32[_0x5df8('0x30')]);_0x1dfc80[_0x5df8('0x33')]=_['intersection'](_0x4f3d32['model'],qs[_0x5df8('0x34')](_0x202939[_0x5df8('0x30')][_0x5df8('0x34')]));_0x1dfc80['attributes']=_0x1dfc80[_0x5df8('0x33')][_0x5df8('0x35')]?_0x1dfc80[_0x5df8('0x33')]:_0x4f3d32[_0x5df8('0x2e')];if(_0x202939[_0x5df8('0x30')][_0x5df8('0x43')]){_0x1dfc80[_0x5df8('0x3d')]=[{'all':!![]}];}_0x1dfc80=_[_0x5df8('0x3b')]({},_0x1dfc80,_0x202939[_0x5df8('0x44')]);return db[_0x5df8('0x2a')][_0x5df8('0x45')](_0x1dfc80)['then'](handleEntityNotFound(_0x4f32f5,null))[_0x5df8('0x3c')](respondWithResult(_0x4f32f5,null))[_0x5df8('0x40')](handleError(_0x4f32f5,null));};exports[_0x5df8('0x46')]=function(_0x5d4b41,_0x221968){return db[_0x5df8('0x2a')]['create'](_0x5d4b41[_0x5df8('0x47')],{})[_0x5df8('0x3c')](respondWithResult(_0x221968,0xc9))[_0x5df8('0x40')](handleError(_0x221968,null));};exports[_0x5df8('0x23')]=function(_0x52aeed,_0x288c25){if(_0x52aeed[_0x5df8('0x47')]['id']){delete _0x52aeed[_0x5df8('0x47')]['id'];}return db['VoiceQueueReport'][_0x5df8('0x45')]({'where':{'id':_0x52aeed[_0x5df8('0x42')]['id']}})[_0x5df8('0x3c')](handleEntityNotFound(_0x288c25,null))[_0x5df8('0x3c')](saveUpdates(_0x52aeed[_0x5df8('0x47')],null))[_0x5df8('0x3c')](respondWithResult(_0x288c25,null))['catch'](handleError(_0x288c25,null));};exports[_0x5df8('0x24')]=function(_0x180781,_0x419236){return db[_0x5df8('0x2a')][_0x5df8('0x45')]({'where':{'id':_0x180781['params']['id']}})[_0x5df8('0x3c')](handleEntityNotFound(_0x419236,null))[_0x5df8('0x3c')](removeEntity(_0x419236,null))[_0x5df8('0x40')](handleError(_0x419236,null));};exports[_0x5df8('0x48')]=function(_0x1b5245,_0x1ce0c9){return db[_0x5df8('0x2a')][_0x5df8('0x48')]()['then'](respondWithResult(_0x1ce0c9,null))[_0x5df8('0x40')](handleError(_0x1ce0c9,null));};exports[_0x5df8('0x49')]=function(_0x104c6c,_0x10eb39){var _0x9365bf={},_0x6ce6bc={},_0x45c5cd={'count':0x0,'rows':[]};_0x6ce6bc['model']=_['keys'](db['VoiceQueueReport']['rawAttributes']);_0x6ce6bc[_0x5df8('0x30')]=_[_0x5df8('0x31')](_0x104c6c[_0x5df8('0x30')]);_0x6ce6bc['filters']=_['intersection'](_0x6ce6bc['model'],_0x6ce6bc['query']);_0x9365bf[_0x5df8('0x33')]=_[_0x5df8('0x32')](_0x6ce6bc[_0x5df8('0x2e')],qs[_0x5df8('0x34')](_0x104c6c[_0x5df8('0x30')][_0x5df8('0x34')]));_0x9365bf[_0x5df8('0x33')]=_0x9365bf['attributes'][_0x5df8('0x35')]?_0x9365bf[_0x5df8('0x33')]:_0x6ce6bc[_0x5df8('0x2e')];if(!_0x104c6c[_0x5df8('0x30')][_0x5df8('0x36')](_0x5df8('0x4a'))){_0x9365bf['limit']=qs[_0x5df8('0x1d')](_0x104c6c[_0x5df8('0x30')][_0x5df8('0x1d')]);_0x9365bf[_0x5df8('0x20')]=qs[_0x5df8('0x20')](_0x104c6c[_0x5df8('0x30')][_0x5df8('0x20')]);}_0x9365bf[_0x5df8('0x4b')]=qs[_0x5df8('0x37')](_0x104c6c['query'][_0x5df8('0x37')]);_0x9365bf[_0x5df8('0x38')]=qs[_0x5df8('0x39')](_[_0x5df8('0x4c')](_0x104c6c[_0x5df8('0x30')],_0x6ce6bc[_0x5df8('0x39')]));if(_0x104c6c[_0x5df8('0x30')]['filter']){_0x9365bf[_0x5df8('0x38')]=_[_0x5df8('0x3b')](_0x9365bf[_0x5df8('0x38')],{'$or':_[_0x5df8('0x2f')](_0x9365bf['attributes'],function(_0x4726fd){var _0xc1e9b4={};_0xc1e9b4[_0x4726fd]={'$like':'%'+_0x104c6c[_0x5df8('0x30')][_0x5df8('0x3a')]+'%'};return _0xc1e9b4;})});}_0x9365bf=_['merge']({},_0x9365bf,_0x104c6c[_0x5df8('0x44')]);var _0x2c9f16={'where':_0x9365bf['where']};return db[_0x5df8('0x2a')][_0x5df8('0x1f')](_0x2c9f16)['then'](function(_0x11d268){_0x45c5cd['count']=_0x11d268;if(_0x104c6c[_0x5df8('0x30')][_0x5df8('0x43')]){_0x9365bf[_0x5df8('0x3d')]=[{'all':!![]}];}return db[_0x5df8('0x2a')][_0x5df8('0x3e')](_0x9365bf);})['then'](function(_0x517901){_0x45c5cd['rows']=_0x517901;return _0x45c5cd;})[_0x5df8('0x3c')](respondWithFilteredResult(_0x10eb39,_0x9365bf,_0x5df8('0x49')))[_0x5df8('0x40')](handleError(_0x10eb39,null,_0x5df8('0x49')));};