94ef4172041bc4e57bab642862dfa8198ddbd952
[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 _0x48b1=['where','pick','filter','merge','VIRTUAL','options','count','includeAll','findAll','rows','catch','params','include','find','create','body','destroy','describe','rawAttributes','sort','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceQueueReport.socket','register','sendStatus','status','json','offset','limit','undefined','set','Content-Range','apply','update','then','end','error','stack','name','send','index','map','VoiceQueueReport','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order'];(function(_0x3dbff3,_0x3766f8){var _0x125500=function(_0x4f081f){while(--_0x4f081f){_0x3dbff3['push'](_0x3dbff3['shift']());}};_0x125500(++_0x3766f8);}(_0x48b1,0x160));var _0x148b=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x48b1[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x148b('0x0'));var zipdir=require(_0x148b('0x1'));var jsonpatch=require(_0x148b('0x2'));var rp=require('request-promise');var moment=require(_0x148b('0x3'));var BPromise=require(_0x148b('0x4'));var Mustache=require('mustache');var util=require(_0x148b('0x5'));var path=require('path');var sox=require(_0x148b('0x6'));var csv=require(_0x148b('0x7'));var ejs=require(_0x148b('0x8'));var fs=require('fs');var fs_extra=require(_0x148b('0x9'));var _=require(_0x148b('0xa'));var squel=require(_0x148b('0xb'));var crypto=require('crypto');var jsforce=require(_0x148b('0xc'));var deskjs=require(_0x148b('0xd'));var toCsv=require(_0x148b('0x7'));var querystring=require(_0x148b('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x148b('0xf'));var qs=require(_0x148b('0x10'));var as=require(_0x148b('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x148b('0x12'))(_0x148b('0x13'));var utils=require(_0x148b('0x14'));var config=require(_0x148b('0x15'));var licenseUtil=require(_0x148b('0x16'));var db=require(_0x148b('0x17'))['db'];config[_0x148b('0x18')]=_[_0x148b('0x19')](config[_0x148b('0x18')],{'host':_0x148b('0x1a'),'port':0x18eb});var socket=require(_0x148b('0x1b'))(new Redis(config['redis']));require(_0x148b('0x1c'))[_0x148b('0x1d')](socket);function respondWithStatusCode(_0x44351d,_0x3bb34f){_0x3bb34f=_0x3bb34f||0xcc;return function(_0x13f0db){if(_0x13f0db){return _0x44351d[_0x148b('0x1e')](_0x3bb34f);}return _0x44351d[_0x148b('0x1f')](_0x3bb34f)['end']();};}function respondWithResult(_0x23efef,_0x5b825b){_0x5b825b=_0x5b825b||0xc8;return function(_0x3dd682){if(_0x3dd682){return _0x23efef[_0x148b('0x1f')](_0x5b825b)[_0x148b('0x20')](_0x3dd682);}};}function respondWithFilteredResult(_0x1d9229,_0x4534a3){return function(_0x47c55b){if(_0x47c55b){var _0x1307e6=typeof _0x4534a3[_0x148b('0x21')]==='undefined'&&typeof _0x4534a3[_0x148b('0x22')]===_0x148b('0x23');var _0x41d08f=_0x47c55b['count'];var _0x2bb68e=_0x1307e6?0x0:_0x4534a3[_0x148b('0x21')];var _0x2c7fb9=_0x1307e6?_0x47c55b['count']:_0x4534a3[_0x148b('0x21')]+_0x4534a3[_0x148b('0x22')];var _0x442175;if(_0x2c7fb9>=_0x41d08f){_0x2c7fb9=_0x41d08f;_0x442175=0xc8;}else{_0x442175=0xce;}_0x1d9229['status'](_0x442175);return _0x1d9229[_0x148b('0x24')](_0x148b('0x25'),_0x2bb68e+'-'+_0x2c7fb9+'/'+_0x41d08f)[_0x148b('0x20')](_0x47c55b);}return null;};}function patchUpdates(_0x1c7821){return function(_0x3f4b9c){try{jsonpatch[_0x148b('0x26')](_0x3f4b9c,_0x1c7821,!![]);}catch(_0x3a8fc0){return BPromise['reject'](_0x3a8fc0);}return _0x3f4b9c['save']();};}function saveUpdates(_0x496415,_0x41b0ae){return function(_0x520650){if(_0x520650){return _0x520650[_0x148b('0x27')](_0x496415)['then'](function(_0x37b186){return _0x37b186;});}return null;};}function removeEntity(_0x5b5eb6,_0x516944){return function(_0x2818ed){if(_0x2818ed){return _0x2818ed['destroy']()[_0x148b('0x28')](function(){_0x5b5eb6[_0x148b('0x1f')](0xcc)[_0x148b('0x29')]();});}};}function handleEntityNotFound(_0x40ae84,_0x7152da){return function(_0x4f4878){if(!_0x4f4878){_0x40ae84[_0x148b('0x1e')](0x194);}return _0x4f4878;};}function handleError(_0x42f092,_0x3d8a0c){_0x3d8a0c=_0x3d8a0c||0x1f4;return function(_0x2c7482){logger[_0x148b('0x2a')](_0x2c7482[_0x148b('0x2b')]);if(_0x2c7482[_0x148b('0x2c')]){delete _0x2c7482[_0x148b('0x2c')];}_0x42f092[_0x148b('0x1f')](_0x3d8a0c)[_0x148b('0x2d')](_0x2c7482);};}exports[_0x148b('0x2e')]=function(_0x17fb37,_0x370ada){var _0x5758db={},_0x3d5fd5={},_0x1781e7={'count':0x0,'rows':[]};var _0x3d5a31=_[_0x148b('0x2f')](db[_0x148b('0x30')]['rawAttributes'],function(_0xfec144){return{'name':_0xfec144[_0x148b('0x31')],'type':_0xfec144[_0x148b('0x32')][_0x148b('0x33')]};});_0x3d5fd5[_0x148b('0x34')]=_[_0x148b('0x2f')](_0x3d5a31,_0x148b('0x2c'));_0x3d5fd5[_0x148b('0x35')]=_[_0x148b('0x36')](_0x17fb37[_0x148b('0x35')]);_0x3d5fd5[_0x148b('0x37')]=_[_0x148b('0x38')](_0x3d5fd5[_0x148b('0x34')],_0x3d5fd5[_0x148b('0x35')]);_0x5758db[_0x148b('0x39')]=_[_0x148b('0x38')](_0x3d5fd5['model'],qs[_0x148b('0x3a')](_0x17fb37['query'][_0x148b('0x3a')]));_0x5758db[_0x148b('0x39')]=_0x5758db[_0x148b('0x39')][_0x148b('0x3b')]?_0x5758db['attributes']:_0x3d5fd5['model'];if(!_0x17fb37[_0x148b('0x35')][_0x148b('0x3c')](_0x148b('0x3d'))){_0x5758db[_0x148b('0x22')]=qs['limit'](_0x17fb37['query']['limit']);_0x5758db[_0x148b('0x21')]=qs[_0x148b('0x21')](_0x17fb37[_0x148b('0x35')]['offset']);}_0x5758db[_0x148b('0x3e')]=qs['sort'](_0x17fb37[_0x148b('0x35')]['sort']);_0x5758db[_0x148b('0x3f')]=qs['filters'](_[_0x148b('0x40')](_0x17fb37[_0x148b('0x35')],_0x3d5fd5[_0x148b('0x37')]),_0x3d5a31);if(_0x17fb37['query'][_0x148b('0x41')]){_0x5758db[_0x148b('0x3f')]=_[_0x148b('0x42')](_0x5758db['where'],{'$or':_[_0x148b('0x2f')](_0x3d5a31,function(_0x32bb24){if(_0x32bb24['type']!==_0x148b('0x43')){var _0x77a6bf={};_0x77a6bf[_0x32bb24[_0x148b('0x2c')]]={'$like':'%'+_0x17fb37['query']['filter']+'%'};return _0x77a6bf;}})});}_0x5758db=_[_0x148b('0x42')]({},_0x5758db,_0x17fb37[_0x148b('0x44')]);var _0x49398a={'where':_0x5758db[_0x148b('0x3f')]};return db['VoiceQueueReport'][_0x148b('0x45')](_0x49398a)[_0x148b('0x28')](function(_0x4d892a){_0x1781e7['count']=_0x4d892a;if(_0x17fb37[_0x148b('0x35')][_0x148b('0x46')]){_0x5758db['include']=[{'all':!![]}];}return db[_0x148b('0x30')][_0x148b('0x47')](_0x5758db);})['then'](function(_0x5d3202){_0x1781e7[_0x148b('0x48')]=_0x5d3202;return _0x1781e7;})['then'](respondWithFilteredResult(_0x370ada,_0x5758db))[_0x148b('0x49')](handleError(_0x370ada,null));};exports['show']=function(_0x2cb42c,_0x371a60){var _0x10cba0={'raw':![],'where':{'id':_0x2cb42c[_0x148b('0x4a')]['id']}},_0x502b33={};_0x502b33[_0x148b('0x34')]=_[_0x148b('0x36')](db[_0x148b('0x30')]['rawAttributes']);_0x502b33[_0x148b('0x35')]=_[_0x148b('0x36')](_0x2cb42c[_0x148b('0x35')]);_0x502b33['filters']=_['intersection'](_0x502b33[_0x148b('0x34')],_0x502b33[_0x148b('0x35')]);_0x10cba0[_0x148b('0x39')]=_['intersection'](_0x502b33['model'],qs[_0x148b('0x3a')](_0x2cb42c[_0x148b('0x35')]['fields']));_0x10cba0['attributes']=_0x10cba0['attributes']['length']?_0x10cba0[_0x148b('0x39')]:_0x502b33['model'];if(_0x2cb42c['query'][_0x148b('0x46')]){_0x10cba0[_0x148b('0x4b')]=[{'all':!![]}];}_0x10cba0=_[_0x148b('0x42')]({},_0x10cba0,_0x2cb42c[_0x148b('0x44')]);return db[_0x148b('0x30')][_0x148b('0x4c')](_0x10cba0)[_0x148b('0x28')](handleEntityNotFound(_0x371a60,null))[_0x148b('0x28')](respondWithResult(_0x371a60,null))[_0x148b('0x49')](handleError(_0x371a60,null));};exports[_0x148b('0x4d')]=function(_0x24737f,_0x3a35fc){return db['VoiceQueueReport']['create'](_0x24737f[_0x148b('0x4e')],{})[_0x148b('0x28')](respondWithResult(_0x3a35fc,0xc9))[_0x148b('0x49')](handleError(_0x3a35fc,null));};exports[_0x148b('0x27')]=function(_0x8d0239,_0x3aa752){if(_0x8d0239[_0x148b('0x4e')]['id']){delete _0x8d0239[_0x148b('0x4e')]['id'];}return db[_0x148b('0x30')]['find']({'where':{'id':_0x8d0239['params']['id']}})[_0x148b('0x28')](handleEntityNotFound(_0x3aa752,null))[_0x148b('0x28')](saveUpdates(_0x8d0239[_0x148b('0x4e')],null))[_0x148b('0x28')](respondWithResult(_0x3aa752,null))[_0x148b('0x49')](handleError(_0x3aa752,null));};exports[_0x148b('0x4f')]=function(_0x11216d,_0x274324){return db['VoiceQueueReport'][_0x148b('0x4c')]({'where':{'id':_0x11216d['params']['id']}})[_0x148b('0x28')](handleEntityNotFound(_0x274324,null))[_0x148b('0x28')](removeEntity(_0x274324,null))[_0x148b('0x49')](handleError(_0x274324,null));};exports[_0x148b('0x50')]=function(_0x282971,_0x3402a6){return db[_0x148b('0x30')][_0x148b('0x50')]()[_0x148b('0x28')](respondWithResult(_0x3402a6,null))[_0x148b('0x49')](handleError(_0x3402a6,null));};exports['getVoiceQueuesReport']=function(_0x283d1f,_0x204bb9){var _0x3996d8={},_0x3e20ad={},_0x7149fe={'count':0x0,'rows':[]};_0x3e20ad['model']=_[_0x148b('0x36')](db[_0x148b('0x30')][_0x148b('0x51')]);_0x3e20ad[_0x148b('0x35')]=_[_0x148b('0x36')](_0x283d1f[_0x148b('0x35')]);_0x3e20ad[_0x148b('0x37')]=_['intersection'](_0x3e20ad[_0x148b('0x34')],_0x3e20ad[_0x148b('0x35')]);_0x3996d8[_0x148b('0x39')]=_['intersection'](_0x3e20ad['model'],qs['fields'](_0x283d1f[_0x148b('0x35')]['fields']));_0x3996d8['attributes']=_0x3996d8[_0x148b('0x39')]['length']?_0x3996d8[_0x148b('0x39')]:_0x3e20ad[_0x148b('0x34')];if(!_0x283d1f[_0x148b('0x35')][_0x148b('0x3c')](_0x148b('0x3d'))){_0x3996d8['limit']=qs[_0x148b('0x22')](_0x283d1f[_0x148b('0x35')]['limit']);_0x3996d8[_0x148b('0x21')]=qs['offset'](_0x283d1f['query'][_0x148b('0x21')]);}_0x3996d8[_0x148b('0x3e')]=qs[_0x148b('0x52')](_0x283d1f['query'][_0x148b('0x52')]);_0x3996d8[_0x148b('0x3f')]=qs[_0x148b('0x37')](_[_0x148b('0x40')](_0x283d1f[_0x148b('0x35')],_0x3e20ad[_0x148b('0x37')]));if(_0x283d1f[_0x148b('0x35')][_0x148b('0x41')]){_0x3996d8[_0x148b('0x3f')]=_[_0x148b('0x42')](_0x3996d8[_0x148b('0x3f')],{'$or':_[_0x148b('0x2f')](_0x3996d8[_0x148b('0x39')],function(_0x494d50){var _0x380346={};_0x380346[_0x494d50]={'$like':'%'+_0x283d1f[_0x148b('0x35')]['filter']+'%'};return _0x380346;})});}_0x3996d8=_[_0x148b('0x42')]({},_0x3996d8,_0x283d1f[_0x148b('0x44')]);var _0x209609={'where':_0x3996d8['where']};return db[_0x148b('0x30')][_0x148b('0x45')](_0x209609)[_0x148b('0x28')](function(_0x3c5de1){_0x7149fe[_0x148b('0x45')]=_0x3c5de1;if(_0x283d1f[_0x148b('0x35')][_0x148b('0x46')]){_0x3996d8[_0x148b('0x4b')]=[{'all':!![]}];}return db[_0x148b('0x30')][_0x148b('0x47')](_0x3996d8);})[_0x148b('0x28')](function(_0x1e5092){_0x7149fe['rows']=_0x1e5092;return _0x7149fe;})[_0x148b('0x28')](respondWithFilteredResult(_0x204bb9,_0x3996d8,'getVoiceQueuesReport'))['catch'](handleError(_0x204bb9,null,'getVoiceQueuesReport'));};