b33cc56f7169c4eee0019bc5c1365f1dfa279351
[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 _0x389e=['jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceQueueReport.socket','register','sendStatus','json','offset','undefined','limit','count','apply','save','update','then','destroy','status','end','error','stack','name','send','index','map','VoiceQueueReport','fieldName','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','options','include','rows','catch','show','params','rawAttributes','includeAll','find','create','body','describe','getVoiceQueuesReport','order','filter','findAll','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto'];(function(_0x2b4411,_0x2625ed){var _0x8e41ef=function(_0x2aa8c1){while(--_0x2aa8c1){_0x2b4411['push'](_0x2b4411['shift']());}};_0x8e41ef(++_0x2625ed);}(_0x389e,0x19b));var _0xe389=function(_0x4d62a4,_0x48f626){_0x4d62a4=_0x4d62a4-0x0;var _0x2ed9a1=_0x389e[_0x4d62a4];return _0x2ed9a1;};'use strict';var emlformat=require(_0xe389('0x0'));var rimraf=require(_0xe389('0x1'));var zipdir=require(_0xe389('0x2'));var jsonpatch=require(_0xe389('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xe389('0x4'));var Mustache=require(_0xe389('0x5'));var util=require(_0xe389('0x6'));var path=require(_0xe389('0x7'));var sox=require(_0xe389('0x8'));var csv=require(_0xe389('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe389('0xa'));var _=require(_0xe389('0xb'));var squel=require(_0xe389('0xc'));var crypto=require(_0xe389('0xd'));var jsforce=require(_0xe389('0xe'));var deskjs=require(_0xe389('0xf'));var toCsv=require(_0xe389('0x9'));var querystring=require(_0xe389('0x10'));var Papa=require(_0xe389('0x11'));var Redis=require(_0xe389('0x12'));var authService=require(_0xe389('0x13'));var qs=require(_0xe389('0x14'));var as=require(_0xe389('0x15'));var hardwareService=require(_0xe389('0x16'));var logger=require(_0xe389('0x17'))('api');var utils=require(_0xe389('0x18'));var config=require(_0xe389('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xe389('0x1a'))['db'];config[_0xe389('0x1b')]=_[_0xe389('0x1c')](config['redis'],{'host':_0xe389('0x1d'),'port':0x18eb});var socket=require(_0xe389('0x1e'))(new Redis(config[_0xe389('0x1b')]));require(_0xe389('0x1f'))[_0xe389('0x20')](socket);function respondWithStatusCode(_0x360bec,_0x3417d2){_0x3417d2=_0x3417d2||0xcc;return function(_0x6bdfe2){if(_0x6bdfe2){return _0x360bec[_0xe389('0x21')](_0x3417d2);}return _0x360bec['status'](_0x3417d2)['end']();};}function respondWithResult(_0x2dd201,_0x37aa1f){_0x37aa1f=_0x37aa1f||0xc8;return function(_0x16e38c){if(_0x16e38c){return _0x2dd201['status'](_0x37aa1f)[_0xe389('0x22')](_0x16e38c);}};}function respondWithFilteredResult(_0x38403c,_0x319a6c){return function(_0x5ac15d){if(_0x5ac15d){var _0x58bf47=typeof _0x319a6c[_0xe389('0x23')]===_0xe389('0x24')&&typeof _0x319a6c[_0xe389('0x25')]===_0xe389('0x24');var _0x4205cc=_0x5ac15d[_0xe389('0x26')];var _0x455c97=_0x58bf47?0x0:_0x319a6c[_0xe389('0x23')];var _0x28f842=_0x58bf47?_0x5ac15d['count']:_0x319a6c['offset']+_0x319a6c[_0xe389('0x25')];var _0x16b74e;if(_0x28f842>=_0x4205cc){_0x28f842=_0x4205cc;_0x16b74e=0xc8;}else{_0x16b74e=0xce;}_0x38403c['status'](_0x16b74e);return _0x38403c['set']('Content-Range',_0x455c97+'-'+_0x28f842+'/'+_0x4205cc)['json'](_0x5ac15d);}return null;};}function patchUpdates(_0x36e506){return function(_0xa829f4){try{jsonpatch[_0xe389('0x27')](_0xa829f4,_0x36e506,!![]);}catch(_0x30ccce){return BPromise['reject'](_0x30ccce);}return _0xa829f4[_0xe389('0x28')]();};}function saveUpdates(_0x49fc6d,_0x32920f){return function(_0x58585b){if(_0x58585b){return _0x58585b[_0xe389('0x29')](_0x49fc6d)[_0xe389('0x2a')](function(_0x4d8c27){return _0x4d8c27;});}return null;};}function removeEntity(_0x22ed3f,_0x4e5932){return function(_0x238016){if(_0x238016){return _0x238016[_0xe389('0x2b')]()[_0xe389('0x2a')](function(){_0x22ed3f[_0xe389('0x2c')](0xcc)[_0xe389('0x2d')]();});}};}function handleEntityNotFound(_0x5f9a8b,_0x1550f6){return function(_0x40554d){if(!_0x40554d){_0x5f9a8b[_0xe389('0x21')](0x194);}return _0x40554d;};}function handleError(_0xbc2c99,_0x2770ff){_0x2770ff=_0x2770ff||0x1f4;return function(_0x1e33d1){logger[_0xe389('0x2e')](_0x1e33d1[_0xe389('0x2f')]);if(_0x1e33d1[_0xe389('0x30')]){delete _0x1e33d1['name'];}_0xbc2c99[_0xe389('0x2c')](_0x2770ff)[_0xe389('0x31')](_0x1e33d1);};}exports[_0xe389('0x32')]=function(_0x8715d3,_0x131456){var _0x3f99bf={},_0x25bde3={},_0x5b0fe7={'count':0x0,'rows':[]};var _0x37ef84=_[_0xe389('0x33')](db[_0xe389('0x34')]['rawAttributes'],function(_0x16efda){return{'name':_0x16efda[_0xe389('0x35')],'type':_0x16efda['type'][_0xe389('0x36')]};});_0x25bde3['model']=_[_0xe389('0x33')](_0x37ef84,'name');_0x25bde3[_0xe389('0x37')]=_[_0xe389('0x38')](_0x8715d3[_0xe389('0x37')]);_0x25bde3[_0xe389('0x39')]=_[_0xe389('0x3a')](_0x25bde3['model'],_0x25bde3[_0xe389('0x37')]);_0x3f99bf[_0xe389('0x3b')]=_[_0xe389('0x3a')](_0x25bde3[_0xe389('0x3c')],qs[_0xe389('0x3d')](_0x8715d3[_0xe389('0x37')]['fields']));_0x3f99bf[_0xe389('0x3b')]=_0x3f99bf[_0xe389('0x3b')][_0xe389('0x3e')]?_0x3f99bf[_0xe389('0x3b')]:_0x25bde3[_0xe389('0x3c')];if(!_0x8715d3[_0xe389('0x37')][_0xe389('0x3f')](_0xe389('0x40'))){_0x3f99bf[_0xe389('0x25')]=qs[_0xe389('0x25')](_0x8715d3[_0xe389('0x37')][_0xe389('0x25')]);_0x3f99bf[_0xe389('0x23')]=qs[_0xe389('0x23')](_0x8715d3[_0xe389('0x37')][_0xe389('0x23')]);}_0x3f99bf['order']=qs[_0xe389('0x41')](_0x8715d3[_0xe389('0x37')][_0xe389('0x41')]);_0x3f99bf[_0xe389('0x42')]=qs[_0xe389('0x39')](_[_0xe389('0x43')](_0x8715d3[_0xe389('0x37')],_0x25bde3[_0xe389('0x39')]),_0x37ef84);if(_0x8715d3[_0xe389('0x37')]['filter']){_0x3f99bf[_0xe389('0x42')]=_['merge'](_0x3f99bf[_0xe389('0x42')],{'$or':_[_0xe389('0x33')](_0x37ef84,function(_0x59c8e8){if(_0x59c8e8['type']!=='VIRTUAL'){var _0x5d7f9f={};_0x5d7f9f[_0x59c8e8['name']]={'$like':'%'+_0x8715d3[_0xe389('0x37')]['filter']+'%'};return _0x5d7f9f;}})});}_0x3f99bf=_[_0xe389('0x44')]({},_0x3f99bf,_0x8715d3[_0xe389('0x45')]);var _0x43cb51={'where':_0x3f99bf[_0xe389('0x42')]};return db[_0xe389('0x34')]['count'](_0x43cb51)['then'](function(_0x282f76){_0x5b0fe7[_0xe389('0x26')]=_0x282f76;if(_0x8715d3[_0xe389('0x37')]['includeAll']){_0x3f99bf[_0xe389('0x46')]=[{'all':!![]}];}return db[_0xe389('0x34')]['findAll'](_0x3f99bf);})[_0xe389('0x2a')](function(_0x3884fc){_0x5b0fe7[_0xe389('0x47')]=_0x3884fc;return _0x5b0fe7;})[_0xe389('0x2a')](respondWithFilteredResult(_0x131456,_0x3f99bf))[_0xe389('0x48')](handleError(_0x131456,null));};exports[_0xe389('0x49')]=function(_0x547c08,_0x2a0878){var _0x4f9f7a={'raw':![],'where':{'id':_0x547c08[_0xe389('0x4a')]['id']}},_0xaf3fbe={};_0xaf3fbe[_0xe389('0x3c')]=_[_0xe389('0x38')](db['VoiceQueueReport'][_0xe389('0x4b')]);_0xaf3fbe[_0xe389('0x37')]=_['keys'](_0x547c08['query']);_0xaf3fbe['filters']=_[_0xe389('0x3a')](_0xaf3fbe['model'],_0xaf3fbe['query']);_0x4f9f7a['attributes']=_['intersection'](_0xaf3fbe[_0xe389('0x3c')],qs['fields'](_0x547c08['query']['fields']));_0x4f9f7a['attributes']=_0x4f9f7a['attributes']['length']?_0x4f9f7a[_0xe389('0x3b')]:_0xaf3fbe[_0xe389('0x3c')];if(_0x547c08[_0xe389('0x37')][_0xe389('0x4c')]){_0x4f9f7a[_0xe389('0x46')]=[{'all':!![]}];}_0x4f9f7a=_['merge']({},_0x4f9f7a,_0x547c08['options']);return db['VoiceQueueReport'][_0xe389('0x4d')](_0x4f9f7a)[_0xe389('0x2a')](handleEntityNotFound(_0x2a0878,null))[_0xe389('0x2a')](respondWithResult(_0x2a0878,null))[_0xe389('0x48')](handleError(_0x2a0878,null));};exports[_0xe389('0x4e')]=function(_0x39a0b6,_0xfac9cc){return db['VoiceQueueReport'][_0xe389('0x4e')](_0x39a0b6[_0xe389('0x4f')],{})['then'](respondWithResult(_0xfac9cc,0xc9))[_0xe389('0x48')](handleError(_0xfac9cc,null));};exports[_0xe389('0x29')]=function(_0x394b82,_0x491d38){if(_0x394b82[_0xe389('0x4f')]['id']){delete _0x394b82[_0xe389('0x4f')]['id'];}return db[_0xe389('0x34')]['find']({'where':{'id':_0x394b82[_0xe389('0x4a')]['id']}})['then'](handleEntityNotFound(_0x491d38,null))['then'](saveUpdates(_0x394b82[_0xe389('0x4f')],null))[_0xe389('0x2a')](respondWithResult(_0x491d38,null))[_0xe389('0x48')](handleError(_0x491d38,null));};exports['destroy']=function(_0x42f6f3,_0x5c7126){return db[_0xe389('0x34')][_0xe389('0x4d')]({'where':{'id':_0x42f6f3[_0xe389('0x4a')]['id']}})[_0xe389('0x2a')](handleEntityNotFound(_0x5c7126,null))['then'](removeEntity(_0x5c7126,null))[_0xe389('0x48')](handleError(_0x5c7126,null));};exports['describe']=function(_0x6e08b4,_0x46ed2c){return db['VoiceQueueReport'][_0xe389('0x50')]()[_0xe389('0x2a')](respondWithResult(_0x46ed2c,null))['catch'](handleError(_0x46ed2c,null));};exports[_0xe389('0x51')]=function(_0x3c831d,_0x30b3b8){var _0xe3439e={},_0x4aa5aa={},_0x4d87d4={'count':0x0,'rows':[]};_0x4aa5aa[_0xe389('0x3c')]=_[_0xe389('0x38')](db[_0xe389('0x34')][_0xe389('0x4b')]);_0x4aa5aa[_0xe389('0x37')]=_[_0xe389('0x38')](_0x3c831d[_0xe389('0x37')]);_0x4aa5aa['filters']=_[_0xe389('0x3a')](_0x4aa5aa[_0xe389('0x3c')],_0x4aa5aa['query']);_0xe3439e[_0xe389('0x3b')]=_[_0xe389('0x3a')](_0x4aa5aa['model'],qs[_0xe389('0x3d')](_0x3c831d[_0xe389('0x37')]['fields']));_0xe3439e[_0xe389('0x3b')]=_0xe3439e[_0xe389('0x3b')][_0xe389('0x3e')]?_0xe3439e[_0xe389('0x3b')]:_0x4aa5aa['model'];if(!_0x3c831d[_0xe389('0x37')]['hasOwnProperty']('nolimit')){_0xe3439e['limit']=qs[_0xe389('0x25')](_0x3c831d[_0xe389('0x37')]['limit']);_0xe3439e[_0xe389('0x23')]=qs[_0xe389('0x23')](_0x3c831d['query'][_0xe389('0x23')]);}_0xe3439e[_0xe389('0x52')]=qs[_0xe389('0x41')](_0x3c831d[_0xe389('0x37')][_0xe389('0x41')]);_0xe3439e[_0xe389('0x42')]=qs['filters'](_[_0xe389('0x43')](_0x3c831d[_0xe389('0x37')],_0x4aa5aa['filters']));if(_0x3c831d['query'][_0xe389('0x53')]){_0xe3439e[_0xe389('0x42')]=_['merge'](_0xe3439e[_0xe389('0x42')],{'$or':_[_0xe389('0x33')](_0xe3439e[_0xe389('0x3b')],function(_0x4c20b1){var _0x5deece={};_0x5deece[_0x4c20b1]={'$like':'%'+_0x3c831d[_0xe389('0x37')]['filter']+'%'};return _0x5deece;})});}_0xe3439e=_[_0xe389('0x44')]({},_0xe3439e,_0x3c831d[_0xe389('0x45')]);var _0x42112a={'where':_0xe3439e['where']};return db[_0xe389('0x34')][_0xe389('0x26')](_0x42112a)[_0xe389('0x2a')](function(_0x1232b4){_0x4d87d4['count']=_0x1232b4;if(_0x3c831d[_0xe389('0x37')][_0xe389('0x4c')]){_0xe3439e[_0xe389('0x46')]=[{'all':!![]}];}return db[_0xe389('0x34')][_0xe389('0x54')](_0xe3439e);})[_0xe389('0x2a')](function(_0x238141){_0x4d87d4[_0xe389('0x47')]=_0x238141;return _0x4d87d4;})[_0xe389('0x2a')](respondWithFilteredResult(_0x30b3b8,_0xe3439e,_0xe389('0x51')))['catch'](handleError(_0x30b3b8,null,'getVoiceQueuesReport'));};