ffdc17b8fef977f27ba4045309aa07e5f75ecec0
[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 _0x3154=['length','hasOwnProperty','nolimit','sort','where','pick','merge','type','VIRTUAL','filter','options','includeAll','include','rows','show','params','find','create','body','catch','describe','getVoiceQueuesReport','order','findAll','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','./voiceQueueReport.socket','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','reject','update','then','error','stack','name','send','index','map','VoiceQueueReport','rawAttributes','fieldName','key','query','keys','filters','intersection','model','attributes','fields'];(function(_0x2c7780,_0x100f4a){var _0x580bc8=function(_0x3d435c){while(--_0x3d435c){_0x2c7780['push'](_0x2c7780['shift']());}};_0x580bc8(++_0x100f4a);}(_0x3154,0xbc));var _0x4315=function(_0x2e4e19,_0x493b50){_0x2e4e19=_0x2e4e19-0x0;var _0x9ba20b=_0x3154[_0x2e4e19];return _0x9ba20b;};'use strict';var emlformat=require(_0x4315('0x0'));var rimraf=require(_0x4315('0x1'));var zipdir=require(_0x4315('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x4315('0x3'));var BPromise=require(_0x4315('0x4'));var Mustache=require(_0x4315('0x5'));var util=require(_0x4315('0x6'));var path=require('path');var sox=require(_0x4315('0x7'));var csv=require(_0x4315('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4315('0x9'));var _=require(_0x4315('0xa'));var squel=require(_0x4315('0xb'));var crypto=require(_0x4315('0xc'));var jsforce=require(_0x4315('0xd'));var deskjs=require(_0x4315('0xe'));var toCsv=require(_0x4315('0x8'));var querystring=require(_0x4315('0xf'));var Papa=require('papaparse');var Redis=require(_0x4315('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x4315('0x11'));var as=require(_0x4315('0x12'));var hardwareService=require(_0x4315('0x13'));var logger=require(_0x4315('0x14'))(_0x4315('0x15'));var utils=require(_0x4315('0x16'));var config=require(_0x4315('0x17'));var licenseUtil=require(_0x4315('0x18'));var db=require('../../mysqldb')['db'];config[_0x4315('0x19')]=_[_0x4315('0x1a')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4315('0x19')]));require(_0x4315('0x1b'))['register'](socket);function respondWithStatusCode(_0x4f4e99,_0x5b7008){_0x5b7008=_0x5b7008||0xcc;return function(_0x5b215d){if(_0x5b215d){return _0x4f4e99[_0x4315('0x1c')](_0x5b7008);}return _0x4f4e99['status'](_0x5b7008)[_0x4315('0x1d')]();};}function respondWithResult(_0x2ae97b,_0x35cd21){_0x35cd21=_0x35cd21||0xc8;return function(_0x3b32dd){if(_0x3b32dd){return _0x2ae97b[_0x4315('0x1e')](_0x35cd21)[_0x4315('0x1f')](_0x3b32dd);}};}function respondWithFilteredResult(_0x14d651,_0xe932a3){return function(_0x15ea42){if(_0x15ea42){var _0x36264a=typeof _0xe932a3['offset']===_0x4315('0x20')&&typeof _0xe932a3[_0x4315('0x21')]===_0x4315('0x20');var _0x3655ed=_0x15ea42[_0x4315('0x22')];var _0x2a605c=_0x36264a?0x0:_0xe932a3[_0x4315('0x23')];var _0x42f5ad=_0x36264a?_0x15ea42['count']:_0xe932a3[_0x4315('0x23')]+_0xe932a3[_0x4315('0x21')];var _0x29ea74;if(_0x42f5ad>=_0x3655ed){_0x42f5ad=_0x3655ed;_0x29ea74=0xc8;}else{_0x29ea74=0xce;}_0x14d651['status'](_0x29ea74);return _0x14d651[_0x4315('0x24')](_0x4315('0x25'),_0x2a605c+'-'+_0x42f5ad+'/'+_0x3655ed)[_0x4315('0x1f')](_0x15ea42);}return null;};}function patchUpdates(_0x593320){return function(_0x470183){try{jsonpatch['apply'](_0x470183,_0x593320,!![]);}catch(_0x4b6fc4){return BPromise[_0x4315('0x26')](_0x4b6fc4);}return _0x470183['save']();};}function saveUpdates(_0x1c3168,_0x2f5fa2){return function(_0x4c785b){if(_0x4c785b){return _0x4c785b[_0x4315('0x27')](_0x1c3168)[_0x4315('0x28')](function(_0x50b984){return _0x50b984;});}return null;};}function removeEntity(_0x382450,_0x516ff8){return function(_0x58927d){if(_0x58927d){return _0x58927d['destroy']()[_0x4315('0x28')](function(){_0x382450[_0x4315('0x1e')](0xcc)[_0x4315('0x1d')]();});}};}function handleEntityNotFound(_0x476bd2,_0x5045b0){return function(_0x446aef){if(!_0x446aef){_0x476bd2[_0x4315('0x1c')](0x194);}return _0x446aef;};}function handleError(_0x39a452,_0x1703a5){_0x1703a5=_0x1703a5||0x1f4;return function(_0x3932b2){logger[_0x4315('0x29')](_0x3932b2[_0x4315('0x2a')]);if(_0x3932b2[_0x4315('0x2b')]){delete _0x3932b2[_0x4315('0x2b')];}_0x39a452[_0x4315('0x1e')](_0x1703a5)[_0x4315('0x2c')](_0x3932b2);};}exports[_0x4315('0x2d')]=function(_0x1990ea,_0x10d26b){var _0x55cb32={},_0x2cdf23={},_0x1edde0={'count':0x0,'rows':[]};var _0x335168=_[_0x4315('0x2e')](db[_0x4315('0x2f')][_0x4315('0x30')],function(_0x5c0673){return{'name':_0x5c0673[_0x4315('0x31')],'type':_0x5c0673['type'][_0x4315('0x32')]};});_0x2cdf23['model']=_[_0x4315('0x2e')](_0x335168,_0x4315('0x2b'));_0x2cdf23[_0x4315('0x33')]=_[_0x4315('0x34')](_0x1990ea['query']);_0x2cdf23[_0x4315('0x35')]=_[_0x4315('0x36')](_0x2cdf23[_0x4315('0x37')],_0x2cdf23[_0x4315('0x33')]);_0x55cb32[_0x4315('0x38')]=_[_0x4315('0x36')](_0x2cdf23[_0x4315('0x37')],qs[_0x4315('0x39')](_0x1990ea[_0x4315('0x33')][_0x4315('0x39')]));_0x55cb32['attributes']=_0x55cb32[_0x4315('0x38')][_0x4315('0x3a')]?_0x55cb32['attributes']:_0x2cdf23[_0x4315('0x37')];if(!_0x1990ea[_0x4315('0x33')][_0x4315('0x3b')](_0x4315('0x3c'))){_0x55cb32['limit']=qs[_0x4315('0x21')](_0x1990ea[_0x4315('0x33')][_0x4315('0x21')]);_0x55cb32['offset']=qs['offset'](_0x1990ea[_0x4315('0x33')][_0x4315('0x23')]);}_0x55cb32['order']=qs[_0x4315('0x3d')](_0x1990ea['query']['sort']);_0x55cb32[_0x4315('0x3e')]=qs[_0x4315('0x35')](_[_0x4315('0x3f')](_0x1990ea[_0x4315('0x33')],_0x2cdf23[_0x4315('0x35')]),_0x335168);if(_0x1990ea['query']['filter']){_0x55cb32[_0x4315('0x3e')]=_[_0x4315('0x40')](_0x55cb32['where'],{'$or':_[_0x4315('0x2e')](_0x335168,function(_0x256f83){if(_0x256f83[_0x4315('0x41')]!==_0x4315('0x42')){var _0x524bc6={};_0x524bc6[_0x256f83[_0x4315('0x2b')]]={'$like':'%'+_0x1990ea[_0x4315('0x33')][_0x4315('0x43')]+'%'};return _0x524bc6;}})});}_0x55cb32=_[_0x4315('0x40')]({},_0x55cb32,_0x1990ea[_0x4315('0x44')]);var _0x445b23={'where':_0x55cb32[_0x4315('0x3e')]};return db['VoiceQueueReport'][_0x4315('0x22')](_0x445b23)[_0x4315('0x28')](function(_0x246df4){_0x1edde0[_0x4315('0x22')]=_0x246df4;if(_0x1990ea[_0x4315('0x33')][_0x4315('0x45')]){_0x55cb32[_0x4315('0x46')]=[{'all':!![]}];}return db[_0x4315('0x2f')]['findAll'](_0x55cb32);})[_0x4315('0x28')](function(_0x1b2958){_0x1edde0[_0x4315('0x47')]=_0x1b2958;return _0x1edde0;})[_0x4315('0x28')](respondWithFilteredResult(_0x10d26b,_0x55cb32))['catch'](handleError(_0x10d26b,null));};exports[_0x4315('0x48')]=function(_0x542622,_0x1fd4a4){var _0x1f56dd={'raw':![],'where':{'id':_0x542622[_0x4315('0x49')]['id']}},_0x3cfc18={};_0x3cfc18[_0x4315('0x37')]=_[_0x4315('0x34')](db['VoiceQueueReport'][_0x4315('0x30')]);_0x3cfc18[_0x4315('0x33')]=_['keys'](_0x542622[_0x4315('0x33')]);_0x3cfc18['filters']=_[_0x4315('0x36')](_0x3cfc18[_0x4315('0x37')],_0x3cfc18[_0x4315('0x33')]);_0x1f56dd[_0x4315('0x38')]=_[_0x4315('0x36')](_0x3cfc18[_0x4315('0x37')],qs[_0x4315('0x39')](_0x542622[_0x4315('0x33')][_0x4315('0x39')]));_0x1f56dd['attributes']=_0x1f56dd[_0x4315('0x38')][_0x4315('0x3a')]?_0x1f56dd[_0x4315('0x38')]:_0x3cfc18[_0x4315('0x37')];if(_0x542622[_0x4315('0x33')][_0x4315('0x45')]){_0x1f56dd[_0x4315('0x46')]=[{'all':!![]}];}_0x1f56dd=_['merge']({},_0x1f56dd,_0x542622[_0x4315('0x44')]);return db[_0x4315('0x2f')][_0x4315('0x4a')](_0x1f56dd)['then'](handleEntityNotFound(_0x1fd4a4,null))['then'](respondWithResult(_0x1fd4a4,null))['catch'](handleError(_0x1fd4a4,null));};exports[_0x4315('0x4b')]=function(_0x34683d,_0x10677b){return db[_0x4315('0x2f')][_0x4315('0x4b')](_0x34683d[_0x4315('0x4c')],{})['then'](respondWithResult(_0x10677b,0xc9))['catch'](handleError(_0x10677b,null));};exports[_0x4315('0x27')]=function(_0x4dc788,_0x3887cd){if(_0x4dc788[_0x4315('0x4c')]['id']){delete _0x4dc788['body']['id'];}return db['VoiceQueueReport'][_0x4315('0x4a')]({'where':{'id':_0x4dc788[_0x4315('0x49')]['id']}})['then'](handleEntityNotFound(_0x3887cd,null))['then'](saveUpdates(_0x4dc788['body'],null))[_0x4315('0x28')](respondWithResult(_0x3887cd,null))[_0x4315('0x4d')](handleError(_0x3887cd,null));};exports['destroy']=function(_0xed23b1,_0x56ddfa){return db[_0x4315('0x2f')]['find']({'where':{'id':_0xed23b1[_0x4315('0x49')]['id']}})[_0x4315('0x28')](handleEntityNotFound(_0x56ddfa,null))[_0x4315('0x28')](removeEntity(_0x56ddfa,null))['catch'](handleError(_0x56ddfa,null));};exports[_0x4315('0x4e')]=function(_0x4ba975,_0x5dcca5){return db[_0x4315('0x2f')][_0x4315('0x4e')]()[_0x4315('0x28')](respondWithResult(_0x5dcca5,null))[_0x4315('0x4d')](handleError(_0x5dcca5,null));};exports[_0x4315('0x4f')]=function(_0x16f54d,_0x2e9a7f){var _0x213c24={},_0x1a3c95={},_0x206fc0={'count':0x0,'rows':[]};_0x1a3c95['model']=_[_0x4315('0x34')](db[_0x4315('0x2f')][_0x4315('0x30')]);_0x1a3c95['query']=_[_0x4315('0x34')](_0x16f54d[_0x4315('0x33')]);_0x1a3c95[_0x4315('0x35')]=_[_0x4315('0x36')](_0x1a3c95[_0x4315('0x37')],_0x1a3c95[_0x4315('0x33')]);_0x213c24['attributes']=_[_0x4315('0x36')](_0x1a3c95[_0x4315('0x37')],qs[_0x4315('0x39')](_0x16f54d[_0x4315('0x33')][_0x4315('0x39')]));_0x213c24[_0x4315('0x38')]=_0x213c24[_0x4315('0x38')][_0x4315('0x3a')]?_0x213c24[_0x4315('0x38')]:_0x1a3c95[_0x4315('0x37')];if(!_0x16f54d[_0x4315('0x33')][_0x4315('0x3b')]('nolimit')){_0x213c24[_0x4315('0x21')]=qs[_0x4315('0x21')](_0x16f54d[_0x4315('0x33')][_0x4315('0x21')]);_0x213c24['offset']=qs[_0x4315('0x23')](_0x16f54d['query'][_0x4315('0x23')]);}_0x213c24[_0x4315('0x50')]=qs[_0x4315('0x3d')](_0x16f54d['query'][_0x4315('0x3d')]);_0x213c24[_0x4315('0x3e')]=qs['filters'](_[_0x4315('0x3f')](_0x16f54d['query'],_0x1a3c95[_0x4315('0x35')]));if(_0x16f54d[_0x4315('0x33')][_0x4315('0x43')]){_0x213c24['where']=_[_0x4315('0x40')](_0x213c24[_0x4315('0x3e')],{'$or':_[_0x4315('0x2e')](_0x213c24['attributes'],function(_0x1609b1){var _0x540f28={};_0x540f28[_0x1609b1]={'$like':'%'+_0x16f54d['query'][_0x4315('0x43')]+'%'};return _0x540f28;})});}_0x213c24=_[_0x4315('0x40')]({},_0x213c24,_0x16f54d[_0x4315('0x44')]);var _0x4dd41c={'where':_0x213c24['where']};return db[_0x4315('0x2f')][_0x4315('0x22')](_0x4dd41c)[_0x4315('0x28')](function(_0x26ef77){_0x206fc0[_0x4315('0x22')]=_0x26ef77;if(_0x16f54d[_0x4315('0x33')]['includeAll']){_0x213c24['include']=[{'all':!![]}];}return db[_0x4315('0x2f')][_0x4315('0x51')](_0x213c24);})['then'](function(_0x3bb00d){_0x206fc0[_0x4315('0x47')]=_0x3bb00d;return _0x206fc0;})[_0x4315('0x28')](respondWithFilteredResult(_0x2e9a7f,_0x213c24,_0x4315('0x4f')))[_0x4315('0x4d')](handleError(_0x2e9a7f,null,_0x4315('0x4f')));};