Built motion from commit 42801a18.|2.6.28
[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 _0x6caf=['filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','includeAll','include','findAll','rows','catch','show','params','create','body','update','find','destroy','describe','nolimit','options','getVoiceQueuesReport','eml-format','rimraf','request-promise','moment','mustache','util','path','sox','to-csv','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceQueueReport.socket','register','status','offset','undefined','limit','count','Content-Range','json','apply','reject','save','then','end','sendStatus','error','stack','name','send','index','VoiceQueueReport','rawAttributes','fieldName','type','key','model','map','query','keys'];(function(_0x5180c3,_0x4b35f7){var _0x55c975=function(_0x4746cb){while(--_0x4746cb){_0x5180c3['push'](_0x5180c3['shift']());}};_0x55c975(++_0x4b35f7);}(_0x6caf,0x10f));var _0xf6ca=function(_0x28f32c,_0x4cc342){_0x28f32c=_0x28f32c-0x0;var _0x355402=_0x6caf[_0x28f32c];return _0x355402;};'use strict';var emlformat=require(_0xf6ca('0x0'));var rimraf=require(_0xf6ca('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xf6ca('0x2'));var moment=require(_0xf6ca('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xf6ca('0x4'));var util=require(_0xf6ca('0x5'));var path=require(_0xf6ca('0x6'));var sox=require(_0xf6ca('0x7'));var csv=require(_0xf6ca('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0xf6ca('0x9'));var jsforce=require(_0xf6ca('0xa'));var deskjs=require(_0xf6ca('0xb'));var toCsv=require('to-csv');var querystring=require(_0xf6ca('0xc'));var Papa=require(_0xf6ca('0xd'));var Redis=require(_0xf6ca('0xe'));var authService=require(_0xf6ca('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf6ca('0x10'));var logger=require('../../config/logger')(_0xf6ca('0x11'));var utils=require(_0xf6ca('0x12'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xf6ca('0x13'))['db'];config[_0xf6ca('0x14')]=_[_0xf6ca('0x15')](config[_0xf6ca('0x14')],{'host':_0xf6ca('0x16'),'port':0x18eb});var socket=require(_0xf6ca('0x17'))(new Redis(config[_0xf6ca('0x14')]));require(_0xf6ca('0x18'))[_0xf6ca('0x19')](socket);function respondWithStatusCode(_0x405b14,_0x80ed8a){_0x80ed8a=_0x80ed8a||0xcc;return function(_0x15d750){if(_0x15d750){return _0x405b14['sendStatus'](_0x80ed8a);}return _0x405b14[_0xf6ca('0x1a')](_0x80ed8a)['end']();};}function respondWithResult(_0x591d80,_0x1270cd){_0x1270cd=_0x1270cd||0xc8;return function(_0x5b5fda){if(_0x5b5fda){return _0x591d80[_0xf6ca('0x1a')](_0x1270cd)['json'](_0x5b5fda);}};}function respondWithFilteredResult(_0x35fc8b,_0x1eb7f4){return function(_0x2bbc82){if(_0x2bbc82){var _0xcbeb9f=typeof _0x1eb7f4[_0xf6ca('0x1b')]===_0xf6ca('0x1c')&&typeof _0x1eb7f4[_0xf6ca('0x1d')]===_0xf6ca('0x1c');var _0x5868be=_0x2bbc82['count'];var _0x44d27c=_0xcbeb9f?0x0:_0x1eb7f4[_0xf6ca('0x1b')];var _0xd77baa=_0xcbeb9f?_0x2bbc82[_0xf6ca('0x1e')]:_0x1eb7f4[_0xf6ca('0x1b')]+_0x1eb7f4['limit'];var _0x50827a;if(_0xd77baa>=_0x5868be){_0xd77baa=_0x5868be;_0x50827a=0xc8;}else{_0x50827a=0xce;}_0x35fc8b[_0xf6ca('0x1a')](_0x50827a);return _0x35fc8b['set'](_0xf6ca('0x1f'),_0x44d27c+'-'+_0xd77baa+'/'+_0x5868be)[_0xf6ca('0x20')](_0x2bbc82);}return null;};}function patchUpdates(_0x52d739){return function(_0x51c942){try{jsonpatch[_0xf6ca('0x21')](_0x51c942,_0x52d739,!![]);}catch(_0x1879ac){return BPromise[_0xf6ca('0x22')](_0x1879ac);}return _0x51c942[_0xf6ca('0x23')]();};}function saveUpdates(_0x56e642,_0x4f7d1f){return function(_0x41ffbf){if(_0x41ffbf){return _0x41ffbf['update'](_0x56e642)[_0xf6ca('0x24')](function(_0x2be453){return _0x2be453;});}return null;};}function removeEntity(_0x155a7d,_0x3058dc){return function(_0x55cf72){if(_0x55cf72){return _0x55cf72['destroy']()[_0xf6ca('0x24')](function(){_0x155a7d[_0xf6ca('0x1a')](0xcc)[_0xf6ca('0x25')]();});}};}function handleEntityNotFound(_0x4e833e,_0x12cfcf){return function(_0x5e16db){if(!_0x5e16db){_0x4e833e[_0xf6ca('0x26')](0x194);}return _0x5e16db;};}function handleError(_0x46aa40,_0x17b95c){_0x17b95c=_0x17b95c||0x1f4;return function(_0x3819a8){logger[_0xf6ca('0x27')](_0x3819a8[_0xf6ca('0x28')]);if(_0x3819a8[_0xf6ca('0x29')]){delete _0x3819a8['name'];}_0x46aa40[_0xf6ca('0x1a')](_0x17b95c)[_0xf6ca('0x2a')](_0x3819a8);};}exports[_0xf6ca('0x2b')]=function(_0x1a8591,_0x5c52bb){var _0x42fb92={},_0x48398b={},_0x4bce57={'count':0x0,'rows':[]};var _0x270943=_['map'](db[_0xf6ca('0x2c')][_0xf6ca('0x2d')],function(_0xc87e5b){return{'name':_0xc87e5b[_0xf6ca('0x2e')],'type':_0xc87e5b[_0xf6ca('0x2f')][_0xf6ca('0x30')]};});_0x48398b[_0xf6ca('0x31')]=_[_0xf6ca('0x32')](_0x270943,_0xf6ca('0x29'));_0x48398b[_0xf6ca('0x33')]=_[_0xf6ca('0x34')](_0x1a8591[_0xf6ca('0x33')]);_0x48398b[_0xf6ca('0x35')]=_[_0xf6ca('0x36')](_0x48398b[_0xf6ca('0x31')],_0x48398b['query']);_0x42fb92[_0xf6ca('0x37')]=_[_0xf6ca('0x36')](_0x48398b[_0xf6ca('0x31')],qs[_0xf6ca('0x38')](_0x1a8591[_0xf6ca('0x33')][_0xf6ca('0x38')]));_0x42fb92['attributes']=_0x42fb92[_0xf6ca('0x37')][_0xf6ca('0x39')]?_0x42fb92[_0xf6ca('0x37')]:_0x48398b[_0xf6ca('0x31')];if(!_0x1a8591[_0xf6ca('0x33')][_0xf6ca('0x3a')]('nolimit')){_0x42fb92['limit']=qs[_0xf6ca('0x1d')](_0x1a8591[_0xf6ca('0x33')][_0xf6ca('0x1d')]);_0x42fb92[_0xf6ca('0x1b')]=qs[_0xf6ca('0x1b')](_0x1a8591[_0xf6ca('0x33')]['offset']);}_0x42fb92[_0xf6ca('0x3b')]=qs[_0xf6ca('0x3c')](_0x1a8591[_0xf6ca('0x33')][_0xf6ca('0x3c')]);_0x42fb92[_0xf6ca('0x3d')]=qs[_0xf6ca('0x35')](_[_0xf6ca('0x3e')](_0x1a8591['query'],_0x48398b[_0xf6ca('0x35')]),_0x270943);if(_0x1a8591[_0xf6ca('0x33')][_0xf6ca('0x3f')]){_0x42fb92[_0xf6ca('0x3d')]=_[_0xf6ca('0x40')](_0x42fb92[_0xf6ca('0x3d')],{'$or':_[_0xf6ca('0x32')](_0x270943,function(_0x1ea947){if(_0x1ea947[_0xf6ca('0x2f')]!=='VIRTUAL'){var _0xff6605={};_0xff6605[_0x1ea947[_0xf6ca('0x29')]]={'$like':'%'+_0x1a8591['query'][_0xf6ca('0x3f')]+'%'};return _0xff6605;}})});}_0x42fb92=_[_0xf6ca('0x40')]({},_0x42fb92,_0x1a8591['options']);var _0x2f9f29={'where':_0x42fb92[_0xf6ca('0x3d')]};return db['VoiceQueueReport'][_0xf6ca('0x1e')](_0x2f9f29)[_0xf6ca('0x24')](function(_0x4e2700){_0x4bce57[_0xf6ca('0x1e')]=_0x4e2700;if(_0x1a8591[_0xf6ca('0x33')][_0xf6ca('0x41')]){_0x42fb92[_0xf6ca('0x42')]=[{'all':!![]}];}return db[_0xf6ca('0x2c')][_0xf6ca('0x43')](_0x42fb92);})[_0xf6ca('0x24')](function(_0x14e83d){_0x4bce57[_0xf6ca('0x44')]=_0x14e83d;return _0x4bce57;})[_0xf6ca('0x24')](respondWithFilteredResult(_0x5c52bb,_0x42fb92))[_0xf6ca('0x45')](handleError(_0x5c52bb,null));};exports[_0xf6ca('0x46')]=function(_0x44a278,_0x3f9202){var _0x56eb82={'raw':![],'where':{'id':_0x44a278[_0xf6ca('0x47')]['id']}},_0x39b551={};_0x39b551[_0xf6ca('0x31')]=_['keys'](db[_0xf6ca('0x2c')]['rawAttributes']);_0x39b551[_0xf6ca('0x33')]=_['keys'](_0x44a278['query']);_0x39b551[_0xf6ca('0x35')]=_[_0xf6ca('0x36')](_0x39b551['model'],_0x39b551[_0xf6ca('0x33')]);_0x56eb82[_0xf6ca('0x37')]=_[_0xf6ca('0x36')](_0x39b551[_0xf6ca('0x31')],qs[_0xf6ca('0x38')](_0x44a278[_0xf6ca('0x33')][_0xf6ca('0x38')]));_0x56eb82[_0xf6ca('0x37')]=_0x56eb82[_0xf6ca('0x37')]['length']?_0x56eb82[_0xf6ca('0x37')]:_0x39b551[_0xf6ca('0x31')];if(_0x44a278[_0xf6ca('0x33')]['includeAll']){_0x56eb82[_0xf6ca('0x42')]=[{'all':!![]}];}_0x56eb82=_[_0xf6ca('0x40')]({},_0x56eb82,_0x44a278['options']);return db['VoiceQueueReport']['find'](_0x56eb82)[_0xf6ca('0x24')](handleEntityNotFound(_0x3f9202,null))[_0xf6ca('0x24')](respondWithResult(_0x3f9202,null))[_0xf6ca('0x45')](handleError(_0x3f9202,null));};exports['create']=function(_0x36ed2f,_0x3df987){return db[_0xf6ca('0x2c')][_0xf6ca('0x48')](_0x36ed2f[_0xf6ca('0x49')],{})[_0xf6ca('0x24')](respondWithResult(_0x3df987,0xc9))['catch'](handleError(_0x3df987,null));};exports[_0xf6ca('0x4a')]=function(_0x31c713,_0x4c4e76){if(_0x31c713[_0xf6ca('0x49')]['id']){delete _0x31c713[_0xf6ca('0x49')]['id'];}return db['VoiceQueueReport'][_0xf6ca('0x4b')]({'where':{'id':_0x31c713['params']['id']}})[_0xf6ca('0x24')](handleEntityNotFound(_0x4c4e76,null))[_0xf6ca('0x24')](saveUpdates(_0x31c713[_0xf6ca('0x49')],null))[_0xf6ca('0x24')](respondWithResult(_0x4c4e76,null))[_0xf6ca('0x45')](handleError(_0x4c4e76,null));};exports[_0xf6ca('0x4c')]=function(_0x5e719f,_0x517456){return db[_0xf6ca('0x2c')][_0xf6ca('0x4b')]({'where':{'id':_0x5e719f[_0xf6ca('0x47')]['id']}})[_0xf6ca('0x24')](handleEntityNotFound(_0x517456,null))[_0xf6ca('0x24')](removeEntity(_0x517456,null))[_0xf6ca('0x45')](handleError(_0x517456,null));};exports[_0xf6ca('0x4d')]=function(_0x2bec98,_0x40aa72){return db[_0xf6ca('0x2c')]['describe']()[_0xf6ca('0x24')](respondWithResult(_0x40aa72,null))['catch'](handleError(_0x40aa72,null));};exports['getVoiceQueuesReport']=function(_0x2f1a2d,_0x27bec2){var _0x5b1173={},_0x4f7842={},_0x45024b={'count':0x0,'rows':[]};_0x4f7842[_0xf6ca('0x31')]=_[_0xf6ca('0x34')](db[_0xf6ca('0x2c')][_0xf6ca('0x2d')]);_0x4f7842[_0xf6ca('0x33')]=_['keys'](_0x2f1a2d[_0xf6ca('0x33')]);_0x4f7842[_0xf6ca('0x35')]=_[_0xf6ca('0x36')](_0x4f7842[_0xf6ca('0x31')],_0x4f7842[_0xf6ca('0x33')]);_0x5b1173[_0xf6ca('0x37')]=_[_0xf6ca('0x36')](_0x4f7842[_0xf6ca('0x31')],qs[_0xf6ca('0x38')](_0x2f1a2d[_0xf6ca('0x33')][_0xf6ca('0x38')]));_0x5b1173[_0xf6ca('0x37')]=_0x5b1173[_0xf6ca('0x37')][_0xf6ca('0x39')]?_0x5b1173[_0xf6ca('0x37')]:_0x4f7842[_0xf6ca('0x31')];if(!_0x2f1a2d['query'][_0xf6ca('0x3a')](_0xf6ca('0x4e'))){_0x5b1173[_0xf6ca('0x1d')]=qs[_0xf6ca('0x1d')](_0x2f1a2d[_0xf6ca('0x33')][_0xf6ca('0x1d')]);_0x5b1173['offset']=qs[_0xf6ca('0x1b')](_0x2f1a2d[_0xf6ca('0x33')][_0xf6ca('0x1b')]);}_0x5b1173[_0xf6ca('0x3b')]=qs['sort'](_0x2f1a2d[_0xf6ca('0x33')]['sort']);_0x5b1173[_0xf6ca('0x3d')]=qs[_0xf6ca('0x35')](_[_0xf6ca('0x3e')](_0x2f1a2d['query'],_0x4f7842['filters']));if(_0x2f1a2d[_0xf6ca('0x33')][_0xf6ca('0x3f')]){_0x5b1173[_0xf6ca('0x3d')]=_[_0xf6ca('0x40')](_0x5b1173[_0xf6ca('0x3d')],{'$or':_[_0xf6ca('0x32')](_0x5b1173['attributes'],function(_0x51de41){var _0x402053={};_0x402053[_0x51de41]={'$like':'%'+_0x2f1a2d[_0xf6ca('0x33')][_0xf6ca('0x3f')]+'%'};return _0x402053;})});}_0x5b1173=_[_0xf6ca('0x40')]({},_0x5b1173,_0x2f1a2d[_0xf6ca('0x4f')]);var _0x32c1d5={'where':_0x5b1173[_0xf6ca('0x3d')]};return db['VoiceQueueReport'][_0xf6ca('0x1e')](_0x32c1d5)[_0xf6ca('0x24')](function(_0x43b731){_0x45024b[_0xf6ca('0x1e')]=_0x43b731;if(_0x2f1a2d[_0xf6ca('0x33')][_0xf6ca('0x41')]){_0x5b1173[_0xf6ca('0x42')]=[{'all':!![]}];}return db['VoiceQueueReport']['findAll'](_0x5b1173);})[_0xf6ca('0x24')](function(_0x7b3889){_0x45024b[_0xf6ca('0x44')]=_0x7b3889;return _0x45024b;})[_0xf6ca('0x24')](respondWithFilteredResult(_0x27bec2,_0x5b1173,_0xf6ca('0x50')))[_0xf6ca('0x45')](handleError(_0x27bec2,null,_0xf6ca('0x50')));};