350d3a9556d9b7e74676fadf47eb98809f90731b
[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 _0x8607=['reject','save','update','then','stack','name','send','index','map','VoiceQueueReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','VIRTUAL','filter','options','includeAll','rows','show','include','find','catch','create','body','destroy','params','describe','findAll','getVoiceQueuesReport','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','apply'];(function(_0x58bf7f,_0x5b3afc){var _0x538241=function(_0x44495f){while(--_0x44495f){_0x58bf7f['push'](_0x58bf7f['shift']());}};_0x538241(++_0x5b3afc);}(_0x8607,0xd7));var _0x7860=function(_0x54cefb,_0x192225){_0x54cefb=_0x54cefb-0x0;var _0x5e4fbb=_0x8607[_0x54cefb];return _0x5e4fbb;};'use strict';var emlformat=require(_0x7860('0x0'));var rimraf=require(_0x7860('0x1'));var zipdir=require(_0x7860('0x2'));var jsonpatch=require(_0x7860('0x3'));var rp=require(_0x7860('0x4'));var moment=require('moment');var BPromise=require(_0x7860('0x5'));var Mustache=require(_0x7860('0x6'));var util=require('util');var path=require(_0x7860('0x7'));var sox=require(_0x7860('0x8'));var csv=require(_0x7860('0x9'));var ejs=require(_0x7860('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7860('0xb'));var squel=require(_0x7860('0xc'));var crypto=require(_0x7860('0xd'));var jsforce=require(_0x7860('0xe'));var deskjs=require(_0x7860('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x7860('0x10'));var authService=require(_0x7860('0x11'));var qs=require(_0x7860('0x12'));var as=require(_0x7860('0x13'));var hardwareService=require(_0x7860('0x14'));var logger=require(_0x7860('0x15'))(_0x7860('0x16'));var utils=require('../../config/utils');var config=require(_0x7860('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x7860('0x18'))['db'];config[_0x7860('0x19')]=_[_0x7860('0x1a')](config[_0x7860('0x19')],{'host':_0x7860('0x1b'),'port':0x18eb});var socket=require(_0x7860('0x1c'))(new Redis(config[_0x7860('0x19')]));require('./voiceQueueReport.socket')[_0x7860('0x1d')](socket);function respondWithStatusCode(_0x1149cd,_0x1c320c){_0x1c320c=_0x1c320c||0xcc;return function(_0x4cdff3){if(_0x4cdff3){return _0x1149cd[_0x7860('0x1e')](_0x1c320c);}return _0x1149cd[_0x7860('0x1f')](_0x1c320c)[_0x7860('0x20')]();};}function respondWithResult(_0x180864,_0x5a02e1){_0x5a02e1=_0x5a02e1||0xc8;return function(_0x585d05){if(_0x585d05){return _0x180864[_0x7860('0x1f')](_0x5a02e1)['json'](_0x585d05);}};}function respondWithFilteredResult(_0x12aae1,_0x1ab57b){return function(_0x47cb76){if(_0x47cb76){var _0x310ef0=typeof _0x1ab57b[_0x7860('0x21')]===_0x7860('0x22')&&typeof _0x1ab57b[_0x7860('0x23')]===_0x7860('0x22');var _0x28e624=_0x47cb76[_0x7860('0x24')];var _0x3dc1bb=_0x310ef0?0x0:_0x1ab57b[_0x7860('0x21')];var _0x2f823f=_0x310ef0?_0x47cb76['count']:_0x1ab57b[_0x7860('0x21')]+_0x1ab57b[_0x7860('0x23')];var _0x56b48e;if(_0x2f823f>=_0x28e624){_0x2f823f=_0x28e624;_0x56b48e=0xc8;}else{_0x56b48e=0xce;}_0x12aae1[_0x7860('0x1f')](_0x56b48e);return _0x12aae1['set'](_0x7860('0x25'),_0x3dc1bb+'-'+_0x2f823f+'/'+_0x28e624)[_0x7860('0x26')](_0x47cb76);}return null;};}function patchUpdates(_0xb5aca2){return function(_0x30e9ed){try{jsonpatch[_0x7860('0x27')](_0x30e9ed,_0xb5aca2,!![]);}catch(_0x45fba1){return BPromise[_0x7860('0x28')](_0x45fba1);}return _0x30e9ed[_0x7860('0x29')]();};}function saveUpdates(_0x273621,_0x54308e){return function(_0x144813){if(_0x144813){return _0x144813[_0x7860('0x2a')](_0x273621)[_0x7860('0x2b')](function(_0x4ddd43){return _0x4ddd43;});}return null;};}function removeEntity(_0x402b5b,_0x2aac1d){return function(_0x25453b){if(_0x25453b){return _0x25453b['destroy']()[_0x7860('0x2b')](function(){_0x402b5b[_0x7860('0x1f')](0xcc)[_0x7860('0x20')]();});}};}function handleEntityNotFound(_0x46cff3,_0x361a1c){return function(_0x59e9ae){if(!_0x59e9ae){_0x46cff3[_0x7860('0x1e')](0x194);}return _0x59e9ae;};}function handleError(_0x42fcb3,_0x4e55d4){_0x4e55d4=_0x4e55d4||0x1f4;return function(_0x180f75){logger['error'](_0x180f75[_0x7860('0x2c')]);if(_0x180f75['name']){delete _0x180f75[_0x7860('0x2d')];}_0x42fcb3[_0x7860('0x1f')](_0x4e55d4)[_0x7860('0x2e')](_0x180f75);};}exports[_0x7860('0x2f')]=function(_0x54477d,_0x50bf1e){var _0x5f532b={},_0x33f428={},_0x3d1369={'count':0x0,'rows':[]};var _0x3861fe=_[_0x7860('0x30')](db[_0x7860('0x31')][_0x7860('0x32')],function(_0x2425a4){return{'name':_0x2425a4[_0x7860('0x33')],'type':_0x2425a4[_0x7860('0x34')][_0x7860('0x35')]};});_0x33f428[_0x7860('0x36')]=_['map'](_0x3861fe,_0x7860('0x2d'));_0x33f428[_0x7860('0x37')]=_[_0x7860('0x38')](_0x54477d[_0x7860('0x37')]);_0x33f428[_0x7860('0x39')]=_[_0x7860('0x3a')](_0x33f428[_0x7860('0x36')],_0x33f428[_0x7860('0x37')]);_0x5f532b[_0x7860('0x3b')]=_['intersection'](_0x33f428[_0x7860('0x36')],qs['fields'](_0x54477d[_0x7860('0x37')][_0x7860('0x3c')]));_0x5f532b[_0x7860('0x3b')]=_0x5f532b['attributes'][_0x7860('0x3d')]?_0x5f532b[_0x7860('0x3b')]:_0x33f428[_0x7860('0x36')];if(!_0x54477d['query'][_0x7860('0x3e')](_0x7860('0x3f'))){_0x5f532b[_0x7860('0x23')]=qs[_0x7860('0x23')](_0x54477d[_0x7860('0x37')][_0x7860('0x23')]);_0x5f532b['offset']=qs['offset'](_0x54477d[_0x7860('0x37')]['offset']);}_0x5f532b[_0x7860('0x40')]=qs[_0x7860('0x41')](_0x54477d[_0x7860('0x37')][_0x7860('0x41')]);_0x5f532b['where']=qs[_0x7860('0x39')](_[_0x7860('0x42')](_0x54477d[_0x7860('0x37')],_0x33f428[_0x7860('0x39')]),_0x3861fe);if(_0x54477d[_0x7860('0x37')]['filter']){_0x5f532b[_0x7860('0x43')]=_[_0x7860('0x44')](_0x5f532b[_0x7860('0x43')],{'$or':_[_0x7860('0x30')](_0x3861fe,function(_0x25b491){if(_0x25b491[_0x7860('0x34')]!==_0x7860('0x45')){var _0x3b1a32={};_0x3b1a32[_0x25b491[_0x7860('0x2d')]]={'$like':'%'+_0x54477d[_0x7860('0x37')][_0x7860('0x46')]+'%'};return _0x3b1a32;}})});}_0x5f532b=_[_0x7860('0x44')]({},_0x5f532b,_0x54477d[_0x7860('0x47')]);var _0x2c4f7a={'where':_0x5f532b[_0x7860('0x43')]};return db[_0x7860('0x31')][_0x7860('0x24')](_0x2c4f7a)[_0x7860('0x2b')](function(_0x19eb8e){_0x3d1369[_0x7860('0x24')]=_0x19eb8e;if(_0x54477d[_0x7860('0x37')][_0x7860('0x48')]){_0x5f532b['include']=[{'all':!![]}];}return db['VoiceQueueReport']['findAll'](_0x5f532b);})[_0x7860('0x2b')](function(_0x1ce16f){_0x3d1369[_0x7860('0x49')]=_0x1ce16f;return _0x3d1369;})[_0x7860('0x2b')](respondWithFilteredResult(_0x50bf1e,_0x5f532b))['catch'](handleError(_0x50bf1e,null));};exports[_0x7860('0x4a')]=function(_0x1b558d,_0x31edee){var _0x2c737a={'raw':![],'where':{'id':_0x1b558d['params']['id']}},_0x2acf53={};_0x2acf53[_0x7860('0x36')]=_[_0x7860('0x38')](db[_0x7860('0x31')][_0x7860('0x32')]);_0x2acf53[_0x7860('0x37')]=_[_0x7860('0x38')](_0x1b558d[_0x7860('0x37')]);_0x2acf53[_0x7860('0x39')]=_[_0x7860('0x3a')](_0x2acf53[_0x7860('0x36')],_0x2acf53[_0x7860('0x37')]);_0x2c737a[_0x7860('0x3b')]=_[_0x7860('0x3a')](_0x2acf53['model'],qs[_0x7860('0x3c')](_0x1b558d['query']['fields']));_0x2c737a[_0x7860('0x3b')]=_0x2c737a[_0x7860('0x3b')][_0x7860('0x3d')]?_0x2c737a['attributes']:_0x2acf53['model'];if(_0x1b558d['query'][_0x7860('0x48')]){_0x2c737a[_0x7860('0x4b')]=[{'all':!![]}];}_0x2c737a=_[_0x7860('0x44')]({},_0x2c737a,_0x1b558d['options']);return db[_0x7860('0x31')][_0x7860('0x4c')](_0x2c737a)[_0x7860('0x2b')](handleEntityNotFound(_0x31edee,null))[_0x7860('0x2b')](respondWithResult(_0x31edee,null))[_0x7860('0x4d')](handleError(_0x31edee,null));};exports['create']=function(_0x2cfa65,_0x5d4d9e){return db[_0x7860('0x31')][_0x7860('0x4e')](_0x2cfa65['body'],{})[_0x7860('0x2b')](respondWithResult(_0x5d4d9e,0xc9))[_0x7860('0x4d')](handleError(_0x5d4d9e,null));};exports[_0x7860('0x2a')]=function(_0x4d3fc6,_0x42d4e2){if(_0x4d3fc6[_0x7860('0x4f')]['id']){delete _0x4d3fc6[_0x7860('0x4f')]['id'];}return db[_0x7860('0x31')][_0x7860('0x4c')]({'where':{'id':_0x4d3fc6['params']['id']}})[_0x7860('0x2b')](handleEntityNotFound(_0x42d4e2,null))[_0x7860('0x2b')](saveUpdates(_0x4d3fc6[_0x7860('0x4f')],null))['then'](respondWithResult(_0x42d4e2,null))[_0x7860('0x4d')](handleError(_0x42d4e2,null));};exports[_0x7860('0x50')]=function(_0x2690a3,_0x5575bf){return db[_0x7860('0x31')][_0x7860('0x4c')]({'where':{'id':_0x2690a3[_0x7860('0x51')]['id']}})[_0x7860('0x2b')](handleEntityNotFound(_0x5575bf,null))['then'](removeEntity(_0x5575bf,null))[_0x7860('0x4d')](handleError(_0x5575bf,null));};exports[_0x7860('0x52')]=function(_0x22ae12,_0x14c224){return db[_0x7860('0x31')][_0x7860('0x52')]()['then'](respondWithResult(_0x14c224,null))[_0x7860('0x4d')](handleError(_0x14c224,null));};exports['getVoiceQueuesReport']=function(_0x446ead,_0x58ad8e){var _0x2012a5={},_0x4c478f={},_0x3adb92={'count':0x0,'rows':[]};_0x4c478f[_0x7860('0x36')]=_[_0x7860('0x38')](db['VoiceQueueReport'][_0x7860('0x32')]);_0x4c478f[_0x7860('0x37')]=_['keys'](_0x446ead[_0x7860('0x37')]);_0x4c478f['filters']=_['intersection'](_0x4c478f[_0x7860('0x36')],_0x4c478f[_0x7860('0x37')]);_0x2012a5['attributes']=_[_0x7860('0x3a')](_0x4c478f['model'],qs[_0x7860('0x3c')](_0x446ead[_0x7860('0x37')][_0x7860('0x3c')]));_0x2012a5[_0x7860('0x3b')]=_0x2012a5[_0x7860('0x3b')][_0x7860('0x3d')]?_0x2012a5[_0x7860('0x3b')]:_0x4c478f[_0x7860('0x36')];if(!_0x446ead[_0x7860('0x37')][_0x7860('0x3e')]('nolimit')){_0x2012a5[_0x7860('0x23')]=qs[_0x7860('0x23')](_0x446ead['query'][_0x7860('0x23')]);_0x2012a5['offset']=qs[_0x7860('0x21')](_0x446ead[_0x7860('0x37')][_0x7860('0x21')]);}_0x2012a5[_0x7860('0x40')]=qs[_0x7860('0x41')](_0x446ead[_0x7860('0x37')][_0x7860('0x41')]);_0x2012a5['where']=qs[_0x7860('0x39')](_['pick'](_0x446ead['query'],_0x4c478f[_0x7860('0x39')]));if(_0x446ead[_0x7860('0x37')][_0x7860('0x46')]){_0x2012a5[_0x7860('0x43')]=_[_0x7860('0x44')](_0x2012a5[_0x7860('0x43')],{'$or':_[_0x7860('0x30')](_0x2012a5[_0x7860('0x3b')],function(_0x59a338){var _0x265d40={};_0x265d40[_0x59a338]={'$like':'%'+_0x446ead['query'][_0x7860('0x46')]+'%'};return _0x265d40;})});}_0x2012a5=_[_0x7860('0x44')]({},_0x2012a5,_0x446ead['options']);var _0x16a306={'where':_0x2012a5['where']};return db[_0x7860('0x31')][_0x7860('0x24')](_0x16a306)[_0x7860('0x2b')](function(_0x148450){_0x3adb92[_0x7860('0x24')]=_0x148450;if(_0x446ead[_0x7860('0x37')]['includeAll']){_0x2012a5[_0x7860('0x4b')]=[{'all':!![]}];}return db['VoiceQueueReport'][_0x7860('0x53')](_0x2012a5);})[_0x7860('0x2b')](function(_0x2dbe83){_0x3adb92['rows']=_0x2dbe83;return _0x3adb92;})[_0x7860('0x2b')](respondWithFilteredResult(_0x58ad8e,_0x2012a5,_0x7860('0x54')))[_0x7860('0x4d')](handleError(_0x58ad8e,null,_0x7860('0x54')));};