c6c92a66cefc9b686839caae4e6ed2bafbf29d7f
[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 _0x054d=['name','index','map','fieldName','type','key','query','intersection','model','fields','attributes','hasOwnProperty','nolimit','limit','sort','where','pick','merge','VIRTUAL','options','VoiceQueueReport','includeAll','include','findAll','rows','show','keys','rawAttributes','filters','find','create','catch','body','params','describe','getVoiceQueuesReport','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','./voiceQueueReport.socket','register','status','end','offset','undefined','count','set','json','apply','reject','save','update','then','destroy','sendStatus','error','stack'];(function(_0x1b7368,_0x3286ed){var _0x25d54c=function(_0x2366da){while(--_0x2366da){_0x1b7368['push'](_0x1b7368['shift']());}};_0x25d54c(++_0x3286ed);}(_0x054d,0x1aa));var _0xd054=function(_0x5c72e5,_0xfa04f8){_0x5c72e5=_0x5c72e5-0x0;var _0x4be004=_0x054d[_0x5c72e5];return _0x4be004;};'use strict';var emlformat=require(_0xd054('0x0'));var rimraf=require(_0xd054('0x1'));var zipdir=require(_0xd054('0x2'));var jsonpatch=require(_0xd054('0x3'));var rp=require('request-promise');var moment=require(_0xd054('0x4'));var BPromise=require(_0xd054('0x5'));var Mustache=require(_0xd054('0x6'));var util=require(_0xd054('0x7'));var path=require(_0xd054('0x8'));var sox=require('sox');var csv=require(_0xd054('0x9'));var ejs=require(_0xd054('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xd054('0xb'));var crypto=require(_0xd054('0xc'));var jsforce=require(_0xd054('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xd054('0x9'));var querystring=require(_0xd054('0xe'));var Papa=require(_0xd054('0xf'));var Redis=require('ioredis');var authService=require(_0xd054('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xd054('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xd054('0x12'));var licenseUtil=require(_0xd054('0x13'));var db=require(_0xd054('0x14'))['db'];config['redis']=_[_0xd054('0x15')](config[_0xd054('0x16')],{'host':_0xd054('0x17'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xd054('0x16')]));require(_0xd054('0x18'))[_0xd054('0x19')](socket);function respondWithStatusCode(_0x1cb0ce,_0x3154ef){_0x3154ef=_0x3154ef||0xcc;return function(_0x496b60){if(_0x496b60){return _0x1cb0ce['sendStatus'](_0x3154ef);}return _0x1cb0ce[_0xd054('0x1a')](_0x3154ef)[_0xd054('0x1b')]();};}function respondWithResult(_0x292f81,_0x3759cf){_0x3759cf=_0x3759cf||0xc8;return function(_0x2a609f){if(_0x2a609f){return _0x292f81[_0xd054('0x1a')](_0x3759cf)['json'](_0x2a609f);}};}function respondWithFilteredResult(_0x460de9,_0x48f394){return function(_0x4d051f){if(_0x4d051f){var _0x5660db=typeof _0x48f394[_0xd054('0x1c')]===_0xd054('0x1d')&&typeof _0x48f394['limit']==='undefined';var _0x301e54=_0x4d051f[_0xd054('0x1e')];var _0x2a79b0=_0x5660db?0x0:_0x48f394['offset'];var _0x57f9af=_0x5660db?_0x4d051f['count']:_0x48f394['offset']+_0x48f394['limit'];var _0x5371b4;if(_0x57f9af>=_0x301e54){_0x57f9af=_0x301e54;_0x5371b4=0xc8;}else{_0x5371b4=0xce;}_0x460de9[_0xd054('0x1a')](_0x5371b4);return _0x460de9[_0xd054('0x1f')]('Content-Range',_0x2a79b0+'-'+_0x57f9af+'/'+_0x301e54)[_0xd054('0x20')](_0x4d051f);}return null;};}function patchUpdates(_0x32c6bd){return function(_0xb5bcda){try{jsonpatch[_0xd054('0x21')](_0xb5bcda,_0x32c6bd,!![]);}catch(_0x25799b){return BPromise[_0xd054('0x22')](_0x25799b);}return _0xb5bcda[_0xd054('0x23')]();};}function saveUpdates(_0x427536,_0x48764c){return function(_0x49f93d){if(_0x49f93d){return _0x49f93d[_0xd054('0x24')](_0x427536)[_0xd054('0x25')](function(_0x2e5bf3){return _0x2e5bf3;});}return null;};}function removeEntity(_0x5033f0,_0x2376e4){return function(_0x7f40b1){if(_0x7f40b1){return _0x7f40b1[_0xd054('0x26')]()[_0xd054('0x25')](function(){_0x5033f0['status'](0xcc)[_0xd054('0x1b')]();});}};}function handleEntityNotFound(_0x563236,_0x29f4f8){return function(_0x437726){if(!_0x437726){_0x563236[_0xd054('0x27')](0x194);}return _0x437726;};}function handleError(_0x419278,_0x59fc6e){_0x59fc6e=_0x59fc6e||0x1f4;return function(_0x36d875){logger[_0xd054('0x28')](_0x36d875[_0xd054('0x29')]);if(_0x36d875[_0xd054('0x2a')]){delete _0x36d875['name'];}_0x419278[_0xd054('0x1a')](_0x59fc6e)['send'](_0x36d875);};}exports[_0xd054('0x2b')]=function(_0x400c36,_0x5440a0){var _0x18ebd0={},_0x377684={},_0xdf039={'count':0x0,'rows':[]};var _0x304b7d=_[_0xd054('0x2c')](db['VoiceQueueReport']['rawAttributes'],function(_0x35b428){return{'name':_0x35b428[_0xd054('0x2d')],'type':_0x35b428[_0xd054('0x2e')][_0xd054('0x2f')]};});_0x377684['model']=_[_0xd054('0x2c')](_0x304b7d,'name');_0x377684['query']=_['keys'](_0x400c36[_0xd054('0x30')]);_0x377684['filters']=_[_0xd054('0x31')](_0x377684[_0xd054('0x32')],_0x377684[_0xd054('0x30')]);_0x18ebd0['attributes']=_[_0xd054('0x31')](_0x377684[_0xd054('0x32')],qs[_0xd054('0x33')](_0x400c36['query']['fields']));_0x18ebd0['attributes']=_0x18ebd0[_0xd054('0x34')]['length']?_0x18ebd0[_0xd054('0x34')]:_0x377684['model'];if(!_0x400c36[_0xd054('0x30')][_0xd054('0x35')](_0xd054('0x36'))){_0x18ebd0[_0xd054('0x37')]=qs[_0xd054('0x37')](_0x400c36[_0xd054('0x30')][_0xd054('0x37')]);_0x18ebd0[_0xd054('0x1c')]=qs[_0xd054('0x1c')](_0x400c36['query'][_0xd054('0x1c')]);}_0x18ebd0['order']=qs[_0xd054('0x38')](_0x400c36[_0xd054('0x30')][_0xd054('0x38')]);_0x18ebd0[_0xd054('0x39')]=qs['filters'](_[_0xd054('0x3a')](_0x400c36[_0xd054('0x30')],_0x377684['filters']),_0x304b7d);if(_0x400c36[_0xd054('0x30')]['filter']){_0x18ebd0[_0xd054('0x39')]=_[_0xd054('0x3b')](_0x18ebd0[_0xd054('0x39')],{'$or':_[_0xd054('0x2c')](_0x304b7d,function(_0x2597e1){if(_0x2597e1['type']!==_0xd054('0x3c')){var _0x298aee={};_0x298aee[_0x2597e1[_0xd054('0x2a')]]={'$like':'%'+_0x400c36[_0xd054('0x30')]['filter']+'%'};return _0x298aee;}})});}_0x18ebd0=_[_0xd054('0x3b')]({},_0x18ebd0,_0x400c36[_0xd054('0x3d')]);var _0x3170f3={'where':_0x18ebd0[_0xd054('0x39')]};return db[_0xd054('0x3e')]['count'](_0x3170f3)[_0xd054('0x25')](function(_0x3ecd0b){_0xdf039['count']=_0x3ecd0b;if(_0x400c36['query'][_0xd054('0x3f')]){_0x18ebd0[_0xd054('0x40')]=[{'all':!![]}];}return db[_0xd054('0x3e')][_0xd054('0x41')](_0x18ebd0);})['then'](function(_0x59ca43){_0xdf039[_0xd054('0x42')]=_0x59ca43;return _0xdf039;})['then'](respondWithFilteredResult(_0x5440a0,_0x18ebd0))['catch'](handleError(_0x5440a0,null));};exports[_0xd054('0x43')]=function(_0x47567f,_0x4c7c9d){var _0x1738d0={'raw':![],'where':{'id':_0x47567f['params']['id']}},_0x55048f={};_0x55048f[_0xd054('0x32')]=_[_0xd054('0x44')](db[_0xd054('0x3e')][_0xd054('0x45')]);_0x55048f['query']=_['keys'](_0x47567f['query']);_0x55048f[_0xd054('0x46')]=_[_0xd054('0x31')](_0x55048f['model'],_0x55048f['query']);_0x1738d0[_0xd054('0x34')]=_[_0xd054('0x31')](_0x55048f['model'],qs[_0xd054('0x33')](_0x47567f['query']['fields']));_0x1738d0['attributes']=_0x1738d0[_0xd054('0x34')]['length']?_0x1738d0[_0xd054('0x34')]:_0x55048f[_0xd054('0x32')];if(_0x47567f['query'][_0xd054('0x3f')]){_0x1738d0['include']=[{'all':!![]}];}_0x1738d0=_['merge']({},_0x1738d0,_0x47567f[_0xd054('0x3d')]);return db['VoiceQueueReport'][_0xd054('0x47')](_0x1738d0)[_0xd054('0x25')](handleEntityNotFound(_0x4c7c9d,null))[_0xd054('0x25')](respondWithResult(_0x4c7c9d,null))['catch'](handleError(_0x4c7c9d,null));};exports[_0xd054('0x48')]=function(_0x3d1b90,_0x1daa57){return db[_0xd054('0x3e')]['create'](_0x3d1b90['body'],{})[_0xd054('0x25')](respondWithResult(_0x1daa57,0xc9))[_0xd054('0x49')](handleError(_0x1daa57,null));};exports[_0xd054('0x24')]=function(_0x5242f3,_0x5e648d){if(_0x5242f3[_0xd054('0x4a')]['id']){delete _0x5242f3[_0xd054('0x4a')]['id'];}return db['VoiceQueueReport'][_0xd054('0x47')]({'where':{'id':_0x5242f3[_0xd054('0x4b')]['id']}})[_0xd054('0x25')](handleEntityNotFound(_0x5e648d,null))['then'](saveUpdates(_0x5242f3[_0xd054('0x4a')],null))[_0xd054('0x25')](respondWithResult(_0x5e648d,null))[_0xd054('0x49')](handleError(_0x5e648d,null));};exports['destroy']=function(_0x4a2f0c,_0x10a329){return db[_0xd054('0x3e')][_0xd054('0x47')]({'where':{'id':_0x4a2f0c[_0xd054('0x4b')]['id']}})[_0xd054('0x25')](handleEntityNotFound(_0x10a329,null))['then'](removeEntity(_0x10a329,null))['catch'](handleError(_0x10a329,null));};exports['describe']=function(_0x2c7cb2,_0x2232c9){return db[_0xd054('0x3e')][_0xd054('0x4c')]()[_0xd054('0x25')](respondWithResult(_0x2232c9,null))[_0xd054('0x49')](handleError(_0x2232c9,null));};exports['getVoiceQueuesReport']=function(_0x25c19a,_0x5679cc){var _0x23611e={},_0xe7b871={},_0x2f6964={'count':0x0,'rows':[]};_0xe7b871[_0xd054('0x32')]=_['keys'](db[_0xd054('0x3e')][_0xd054('0x45')]);_0xe7b871[_0xd054('0x30')]=_['keys'](_0x25c19a[_0xd054('0x30')]);_0xe7b871['filters']=_[_0xd054('0x31')](_0xe7b871[_0xd054('0x32')],_0xe7b871[_0xd054('0x30')]);_0x23611e[_0xd054('0x34')]=_[_0xd054('0x31')](_0xe7b871[_0xd054('0x32')],qs[_0xd054('0x33')](_0x25c19a[_0xd054('0x30')][_0xd054('0x33')]));_0x23611e[_0xd054('0x34')]=_0x23611e[_0xd054('0x34')]['length']?_0x23611e['attributes']:_0xe7b871['model'];if(!_0x25c19a[_0xd054('0x30')][_0xd054('0x35')](_0xd054('0x36'))){_0x23611e[_0xd054('0x37')]=qs[_0xd054('0x37')](_0x25c19a[_0xd054('0x30')]['limit']);_0x23611e[_0xd054('0x1c')]=qs[_0xd054('0x1c')](_0x25c19a[_0xd054('0x30')][_0xd054('0x1c')]);}_0x23611e['order']=qs[_0xd054('0x38')](_0x25c19a[_0xd054('0x30')]['sort']);_0x23611e[_0xd054('0x39')]=qs[_0xd054('0x46')](_[_0xd054('0x3a')](_0x25c19a[_0xd054('0x30')],_0xe7b871[_0xd054('0x46')]));if(_0x25c19a[_0xd054('0x30')]['filter']){_0x23611e[_0xd054('0x39')]=_[_0xd054('0x3b')](_0x23611e['where'],{'$or':_[_0xd054('0x2c')](_0x23611e[_0xd054('0x34')],function(_0x1845d9){var _0x5c07c6={};_0x5c07c6[_0x1845d9]={'$like':'%'+_0x25c19a[_0xd054('0x30')]['filter']+'%'};return _0x5c07c6;})});}_0x23611e=_[_0xd054('0x3b')]({},_0x23611e,_0x25c19a[_0xd054('0x3d')]);var _0x393e6e={'where':_0x23611e[_0xd054('0x39')]};return db[_0xd054('0x3e')][_0xd054('0x1e')](_0x393e6e)[_0xd054('0x25')](function(_0x501b1b){_0x2f6964[_0xd054('0x1e')]=_0x501b1b;if(_0x25c19a[_0xd054('0x30')]['includeAll']){_0x23611e[_0xd054('0x40')]=[{'all':!![]}];}return db['VoiceQueueReport'][_0xd054('0x41')](_0x23611e);})[_0xd054('0x25')](function(_0x465954){_0x2f6964[_0xd054('0x42')]=_0x465954;return _0x2f6964;})['then'](respondWithFilteredResult(_0x5679cc,_0x23611e,_0xd054('0x4d')))[_0xd054('0x49')](handleError(_0x5679cc,null,'getVoiceQueuesReport'));};