Built motion from commit 994c64e1.|2.6.1
[motion2.git] / server / api / analyticExtractedReport / analyticExtractedReport.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 _0xb7df=['path','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','json','apply','reject','save','then','destroy','get','ExtractedReports','error','stack','name','send','index','AnalyticExtractedReport','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','find','create','body','role','user','userProfileId','autoAssociation','UserProfileResource','update','params','download','basename','savename','output','existsSync','join','root','server/files/reports','Sequelize','exists','format','toLowerCase','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util'];(function(_0x59e0c7,_0x44a899){var _0x41a676=function(_0x146fa2){while(--_0x146fa2){_0x59e0c7['push'](_0x59e0c7['shift']());}};_0x41a676(++_0x44a899);}(_0xb7df,0x1ce));var _0xfb7d=function(_0x25c7a7,_0x37ab8c){_0x25c7a7=_0x25c7a7-0x0;var _0x144688=_0xb7df[_0x25c7a7];return _0x144688;};'use strict';var emlformat=require(_0xfb7d('0x0'));var rimraf=require(_0xfb7d('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xfb7d('0x2'));var rp=require(_0xfb7d('0x3'));var moment=require(_0xfb7d('0x4'));var BPromise=require(_0xfb7d('0x5'));var Mustache=require(_0xfb7d('0x6'));var util=require(_0xfb7d('0x7'));var path=require(_0xfb7d('0x8'));var sox=require('sox');var csv=require(_0xfb7d('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xfb7d('0xa'));var _=require(_0xfb7d('0xb'));var squel=require(_0xfb7d('0xc'));var crypto=require(_0xfb7d('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xfb7d('0xe'));var toCsv=require(_0xfb7d('0x9'));var querystring=require(_0xfb7d('0xf'));var Papa=require(_0xfb7d('0x10'));var Redis=require('ioredis');var authService=require(_0xfb7d('0x11'));var qs=require(_0xfb7d('0x12'));var as=require(_0xfb7d('0x13'));var hardwareService=require(_0xfb7d('0x14'));var logger=require('../../config/logger')(_0xfb7d('0x15'));var utils=require(_0xfb7d('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xfb7d('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4d0b4c,_0x4d78fb){_0x4d78fb=_0x4d78fb||0xcc;return function(_0x63270b){if(_0x63270b){return _0x4d0b4c[_0xfb7d('0x18')](_0x4d78fb);}return _0x4d0b4c[_0xfb7d('0x19')](_0x4d78fb)[_0xfb7d('0x1a')]();};}function respondWithResult(_0x446ec5,_0x24b230){_0x24b230=_0x24b230||0xc8;return function(_0xaf5a3e){if(_0xaf5a3e){return _0x446ec5[_0xfb7d('0x19')](_0x24b230)['json'](_0xaf5a3e);}};}function respondWithFilteredResult(_0x223f1f,_0x596ed9){return function(_0x19c32b){if(_0x19c32b){var _0x457712=typeof _0x596ed9[_0xfb7d('0x1b')]==='undefined'&&typeof _0x596ed9[_0xfb7d('0x1c')]===_0xfb7d('0x1d');var _0x37c10b=_0x19c32b[_0xfb7d('0x1e')];var _0x2414f5=_0x457712?0x0:_0x596ed9[_0xfb7d('0x1b')];var _0x52d9bb=_0x457712?_0x19c32b[_0xfb7d('0x1e')]:_0x596ed9[_0xfb7d('0x1b')]+_0x596ed9['limit'];var _0x5d494b;if(_0x52d9bb>=_0x37c10b){_0x52d9bb=_0x37c10b;_0x5d494b=0xc8;}else{_0x5d494b=0xce;}_0x223f1f[_0xfb7d('0x19')](_0x5d494b);return _0x223f1f[_0xfb7d('0x1f')](_0xfb7d('0x20'),_0x2414f5+'-'+_0x52d9bb+'/'+_0x37c10b)[_0xfb7d('0x21')](_0x19c32b);}return null;};}function patchUpdates(_0x5593a9){return function(_0x191f60){try{jsonpatch[_0xfb7d('0x22')](_0x191f60,_0x5593a9,!![]);}catch(_0x19e5ae){return BPromise[_0xfb7d('0x23')](_0x19e5ae);}return _0x191f60[_0xfb7d('0x24')]();};}function saveUpdates(_0x3081f3,_0x1c131d){return function(_0x4177ab){if(_0x4177ab){return _0x4177ab['update'](_0x3081f3)[_0xfb7d('0x25')](function(_0x57d7f0){return _0x57d7f0;});}return null;};}function removeEntity(_0x48e0a6,_0x132a95){return function(_0x46cb1a){if(_0x46cb1a){return _0x46cb1a[_0xfb7d('0x26')]()['then'](function(){var _0x289d36=_0x46cb1a[_0xfb7d('0x27')]({'plain':!![]});var _0x34248c=_0xfb7d('0x28');return db['UserProfileResource'][_0xfb7d('0x26')]({'where':{'type':_0x34248c,'resourceId':_0x289d36['id']}})[_0xfb7d('0x25')](function(){return _0x46cb1a;});})[_0xfb7d('0x25')](function(){_0x48e0a6[_0xfb7d('0x19')](0xcc)[_0xfb7d('0x1a')]();});}};}function handleEntityNotFound(_0x45d8dd,_0x11ddd8){return function(_0x2e4456){if(!_0x2e4456){_0x45d8dd[_0xfb7d('0x18')](0x194);}return _0x2e4456;};}function handleError(_0x420923,_0x170029){_0x170029=_0x170029||0x1f4;return function(_0x32148d){logger[_0xfb7d('0x29')](_0x32148d[_0xfb7d('0x2a')]);if(_0x32148d[_0xfb7d('0x2b')]){delete _0x32148d[_0xfb7d('0x2b')];}_0x420923[_0xfb7d('0x19')](_0x170029)[_0xfb7d('0x2c')](_0x32148d);};}exports[_0xfb7d('0x2d')]=function(_0x5a4e30,_0x6c9ed){var _0x43e599={},_0x2abddf={},_0x5623b7={'count':0x0,'rows':[]};var _0x382c25=_['map'](db[_0xfb7d('0x2e')][_0xfb7d('0x2f')],function(_0x2952ff){return{'name':_0x2952ff[_0xfb7d('0x30')],'type':_0x2952ff[_0xfb7d('0x31')][_0xfb7d('0x32')]};});_0x2abddf[_0xfb7d('0x33')]=_[_0xfb7d('0x34')](_0x382c25,_0xfb7d('0x2b'));_0x2abddf[_0xfb7d('0x35')]=_[_0xfb7d('0x36')](_0x5a4e30[_0xfb7d('0x35')]);_0x2abddf[_0xfb7d('0x37')]=_[_0xfb7d('0x38')](_0x2abddf[_0xfb7d('0x33')],_0x2abddf[_0xfb7d('0x35')]);_0x43e599[_0xfb7d('0x39')]=_[_0xfb7d('0x38')](_0x2abddf[_0xfb7d('0x33')],qs[_0xfb7d('0x3a')](_0x5a4e30[_0xfb7d('0x35')][_0xfb7d('0x3a')]));_0x43e599[_0xfb7d('0x39')]=_0x43e599[_0xfb7d('0x39')][_0xfb7d('0x3b')]?_0x43e599['attributes']:_0x2abddf[_0xfb7d('0x33')];if(!_0x5a4e30[_0xfb7d('0x35')][_0xfb7d('0x3c')]('nolimit')){_0x43e599[_0xfb7d('0x1c')]=qs[_0xfb7d('0x1c')](_0x5a4e30[_0xfb7d('0x35')]['limit']);_0x43e599[_0xfb7d('0x1b')]=qs[_0xfb7d('0x1b')](_0x5a4e30['query'][_0xfb7d('0x1b')]);}_0x43e599['order']=qs[_0xfb7d('0x3d')](_0x5a4e30[_0xfb7d('0x35')][_0xfb7d('0x3d')]);_0x43e599['where']=qs[_0xfb7d('0x37')](_['pick'](_0x5a4e30[_0xfb7d('0x35')],_0x2abddf['filters']),_0x382c25);if(_0x5a4e30[_0xfb7d('0x35')][_0xfb7d('0x3e')]){_0x43e599[_0xfb7d('0x3f')]=_[_0xfb7d('0x40')](_0x43e599[_0xfb7d('0x3f')],{'$or':_[_0xfb7d('0x34')](_0x382c25,function(_0x2202f2){if(_0x2202f2[_0xfb7d('0x31')]!==_0xfb7d('0x41')){var _0x16226b={};_0x16226b[_0x2202f2[_0xfb7d('0x2b')]]={'$like':'%'+_0x5a4e30[_0xfb7d('0x35')]['filter']+'%'};return _0x16226b;}})});}_0x43e599=_[_0xfb7d('0x40')]({},_0x43e599,_0x5a4e30[_0xfb7d('0x42')]);var _0x1f55df={'where':_0x43e599['where']};return db['AnalyticExtractedReport']['count'](_0x1f55df)[_0xfb7d('0x25')](function(_0x1fe371){_0x5623b7['count']=_0x1fe371;if(_0x5a4e30[_0xfb7d('0x35')][_0xfb7d('0x43')]){_0x43e599[_0xfb7d('0x44')]=[{'all':!![]}];}return db['AnalyticExtractedReport'][_0xfb7d('0x45')](_0x43e599);})[_0xfb7d('0x25')](function(_0x55f8c8){_0x5623b7[_0xfb7d('0x46')]=_0x55f8c8;return _0x5623b7;})[_0xfb7d('0x25')](respondWithFilteredResult(_0x6c9ed,_0x43e599))[_0xfb7d('0x47')](handleError(_0x6c9ed,null));};exports['show']=function(_0x3e99ad,_0x39ed07){var _0x2c3567={'raw':!![],'where':{'id':_0x3e99ad['params']['id']}},_0x42966e={};_0x42966e[_0xfb7d('0x33')]=_[_0xfb7d('0x36')](db['AnalyticExtractedReport'][_0xfb7d('0x2f')]);_0x42966e[_0xfb7d('0x35')]=_['keys'](_0x3e99ad[_0xfb7d('0x35')]);_0x42966e[_0xfb7d('0x37')]=_[_0xfb7d('0x38')](_0x42966e[_0xfb7d('0x33')],_0x42966e[_0xfb7d('0x35')]);_0x2c3567[_0xfb7d('0x39')]=_[_0xfb7d('0x38')](_0x42966e[_0xfb7d('0x33')],qs[_0xfb7d('0x3a')](_0x3e99ad[_0xfb7d('0x35')][_0xfb7d('0x3a')]));_0x2c3567[_0xfb7d('0x39')]=_0x2c3567[_0xfb7d('0x39')]['length']?_0x2c3567[_0xfb7d('0x39')]:_0x42966e['model'];if(_0x3e99ad[_0xfb7d('0x35')][_0xfb7d('0x43')]){_0x2c3567[_0xfb7d('0x44')]=[{'all':!![]}];}_0x2c3567=_[_0xfb7d('0x40')]({},_0x2c3567,_0x3e99ad['options']);return db[_0xfb7d('0x2e')][_0xfb7d('0x48')](_0x2c3567)[_0xfb7d('0x25')](handleEntityNotFound(_0x39ed07,null))[_0xfb7d('0x25')](respondWithResult(_0x39ed07,null))['catch'](handleError(_0x39ed07,null));};exports['create']=function(_0x9335a2,_0x5cf6b2){return db['AnalyticExtractedReport'][_0xfb7d('0x49')](_0x9335a2[_0xfb7d('0x4a')],{})[_0xfb7d('0x25')](function(_0x547a19){var _0x3a2fdc=_0x9335a2['user'][_0xfb7d('0x27')]({'plain':!![]});if(!_0x3a2fdc)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3a2fdc[_0xfb7d('0x4b')]===_0xfb7d('0x4c')){var _0x5a46f6=_0x547a19['get']({'plain':!![]});var _0x44334b='ExtractedReports';return db['UserProfileSection']['find']({'where':{'name':_0x44334b,'userProfileId':_0x3a2fdc[_0xfb7d('0x4d')]},'raw':!![]})[_0xfb7d('0x25')](function(_0x36bcca){if(_0x36bcca&&_0x36bcca[_0xfb7d('0x4e')]===0x0){return db[_0xfb7d('0x4f')][_0xfb7d('0x49')]({'name':_0x5a46f6[_0xfb7d('0x2b')],'resourceId':_0x5a46f6['id'],'type':_0x36bcca[_0xfb7d('0x2b')],'sectionId':_0x36bcca['id']},{})[_0xfb7d('0x25')](function(){return _0x547a19;});}else{return _0x547a19;}})[_0xfb7d('0x47')](function(_0x2f3487){logger[_0xfb7d('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2f3487);throw _0x2f3487;});}return _0x547a19;})[_0xfb7d('0x25')](respondWithResult(_0x5cf6b2,0xc9))[_0xfb7d('0x47')](handleError(_0x5cf6b2,null));};exports[_0xfb7d('0x50')]=function(_0x130230,_0x27ce5e){if(_0x130230[_0xfb7d('0x4a')]['id']){delete _0x130230[_0xfb7d('0x4a')]['id'];}return db[_0xfb7d('0x2e')]['find']({'where':{'id':_0x130230[_0xfb7d('0x51')]['id']}})[_0xfb7d('0x25')](handleEntityNotFound(_0x27ce5e,null))['then'](saveUpdates(_0x130230[_0xfb7d('0x4a')],null))[_0xfb7d('0x25')](respondWithResult(_0x27ce5e,null))[_0xfb7d('0x47')](handleError(_0x27ce5e,null));};exports['destroy']=function(_0x35aab2,_0x4e1ca8){return db[_0xfb7d('0x2e')][_0xfb7d('0x48')]({'where':{'id':_0x35aab2[_0xfb7d('0x51')]['id']}})['then'](handleEntityNotFound(_0x4e1ca8,null))[_0xfb7d('0x25')](removeEntity(_0x4e1ca8,null))[_0xfb7d('0x47')](handleError(_0x4e1ca8,null));};exports[_0xfb7d('0x52')]=function(_0x3b0549,_0x42fdff,_0x14f8d6){return db['AnalyticExtractedReport']['find']({'where':{'id':_0x3b0549['params']['id']},'attributes':[_0xfb7d('0x2b'),_0xfb7d('0x53'),_0xfb7d('0x54'),_0xfb7d('0x55')],'raw':!![]})['then'](handleEntityNotFound(_0x42fdff,null))[_0xfb7d('0x25')](function(_0x712ab0){if(_0x712ab0){if(!fs[_0xfb7d('0x56')](path[_0xfb7d('0x57')](config[_0xfb7d('0x58')],_0xfb7d('0x59'),_0x712ab0[_0xfb7d('0x54')]))){throw new db[(_0xfb7d('0x5a'))]['ValidationError']('Report\x20not\x20found\x20or\x20empty');}if(_0x3b0549[_0xfb7d('0x35')][_0xfb7d('0x5b')]){return _0x42fdff[_0xfb7d('0x18')](0xc8);}return _0x42fdff[_0xfb7d('0x52')](path[_0xfb7d('0x57')](config['root'],_0xfb7d('0x59'),_0x712ab0['savename']),util[_0xfb7d('0x5c')]('%s.%s',_0x712ab0['basename']||_0x712ab0[_0xfb7d('0x2b')],_0x712ab0[_0xfb7d('0x55')][_0xfb7d('0x5d')]()));}})['catch'](handleError(_0x42fdff,null));};