e555cf8c0baffe6771bfa93bce192506f2731c2e
[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 _0xc222=['root','server/files/reports','Sequelize','Report\x20not\x20found\x20or\x20empty','toLowerCase','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','sox','to-csv','fs-extra','lodash','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','json','undefined','count','offset','set','Content-Range','apply','save','then','destroy','ExtractedReports','UserProfileResource','error','stack','name','send','index','map','rawAttributes','type','key','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','pick','where','merge','VIRTUAL','filter','options','AnalyticExtractedReport','includeAll','include','findAll','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','download','basename','savename','output','existsSync','join'];(function(_0xb5ab5,_0x16d476){var _0x22ec50=function(_0x4b1de2){while(--_0x4b1de2){_0xb5ab5['push'](_0xb5ab5['shift']());}};_0x22ec50(++_0x16d476);}(_0xc222,0xb9));var _0x2c22=function(_0x1d61ec,_0x3b4c77){_0x1d61ec=_0x1d61ec-0x0;var _0x1513b9=_0xc222[_0x1d61ec];return _0x1513b9;};'use strict';var emlformat=require(_0x2c22('0x0'));var rimraf=require(_0x2c22('0x1'));var zipdir=require(_0x2c22('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x2c22('0x3'));var moment=require(_0x2c22('0x4'));var BPromise=require(_0x2c22('0x5'));var Mustache=require('mustache');var util=require(_0x2c22('0x6'));var path=require('path');var sox=require(_0x2c22('0x7'));var csv=require(_0x2c22('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2c22('0x9'));var _=require(_0x2c22('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x2c22('0xb'));var Papa=require('papaparse');var Redis=require(_0x2c22('0xc'));var authService=require('../../components/auth/service');var qs=require(_0x2c22('0xd'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2c22('0xe'));var logger=require(_0x2c22('0xf'))(_0x2c22('0x10'));var utils=require('../../config/utils');var config=require(_0x2c22('0x11'));var licenseUtil=require(_0x2c22('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xdcfa90,_0x44dc68){_0x44dc68=_0x44dc68||0xcc;return function(_0x178596){if(_0x178596){return _0xdcfa90[_0x2c22('0x13')](_0x44dc68);}return _0xdcfa90[_0x2c22('0x14')](_0x44dc68)[_0x2c22('0x15')]();};}function respondWithResult(_0x1a8104,_0x35db4b){_0x35db4b=_0x35db4b||0xc8;return function(_0x5eca81){if(_0x5eca81){return _0x1a8104['status'](_0x35db4b)[_0x2c22('0x16')](_0x5eca81);}};}function respondWithFilteredResult(_0x278ff8,_0x571869){return function(_0xe9e327){if(_0xe9e327){var _0x46dc72=typeof _0x571869['offset']===_0x2c22('0x17')&&typeof _0x571869['limit']===_0x2c22('0x17');var _0x2d77d2=_0xe9e327[_0x2c22('0x18')];var _0xd0bd68=_0x46dc72?0x0:_0x571869[_0x2c22('0x19')];var _0x4164f6=_0x46dc72?_0xe9e327[_0x2c22('0x18')]:_0x571869[_0x2c22('0x19')]+_0x571869['limit'];var _0x67250;if(_0x4164f6>=_0x2d77d2){_0x4164f6=_0x2d77d2;_0x67250=0xc8;}else{_0x67250=0xce;}_0x278ff8[_0x2c22('0x14')](_0x67250);return _0x278ff8[_0x2c22('0x1a')](_0x2c22('0x1b'),_0xd0bd68+'-'+_0x4164f6+'/'+_0x2d77d2)[_0x2c22('0x16')](_0xe9e327);}return null;};}function patchUpdates(_0x532718){return function(_0x4e897b){try{jsonpatch[_0x2c22('0x1c')](_0x4e897b,_0x532718,!![]);}catch(_0x2cb894){return BPromise['reject'](_0x2cb894);}return _0x4e897b[_0x2c22('0x1d')]();};}function saveUpdates(_0x305516,_0x422e51){return function(_0x124800){if(_0x124800){return _0x124800['update'](_0x305516)[_0x2c22('0x1e')](function(_0x3c65ce){return _0x3c65ce;});}return null;};}function removeEntity(_0x35eff0,_0x580205){return function(_0x7442dd){if(_0x7442dd){return _0x7442dd[_0x2c22('0x1f')]()[_0x2c22('0x1e')](function(){var _0x479516=_0x7442dd['get']({'plain':!![]});var _0x13d939=_0x2c22('0x20');return db[_0x2c22('0x21')]['destroy']({'where':{'type':_0x13d939,'resourceId':_0x479516['id']}})[_0x2c22('0x1e')](function(){return _0x7442dd;});})[_0x2c22('0x1e')](function(){_0x35eff0[_0x2c22('0x14')](0xcc)[_0x2c22('0x15')]();});}};}function handleEntityNotFound(_0x5e4533,_0x109378){return function(_0x16009a){if(!_0x16009a){_0x5e4533[_0x2c22('0x13')](0x194);}return _0x16009a;};}function handleError(_0xbb88ed,_0x463f3b){_0x463f3b=_0x463f3b||0x1f4;return function(_0x179dc3){logger[_0x2c22('0x22')](_0x179dc3[_0x2c22('0x23')]);if(_0x179dc3[_0x2c22('0x24')]){delete _0x179dc3[_0x2c22('0x24')];}_0xbb88ed[_0x2c22('0x14')](_0x463f3b)[_0x2c22('0x25')](_0x179dc3);};}exports[_0x2c22('0x26')]=function(_0x489a5c,_0x389f5b){var _0xf11716={},_0x3d16d3={},_0x1a68f3={'count':0x0,'rows':[]};var _0x27cf0b=_[_0x2c22('0x27')](db['AnalyticExtractedReport'][_0x2c22('0x28')],function(_0x4207b){return{'name':_0x4207b['fieldName'],'type':_0x4207b[_0x2c22('0x29')][_0x2c22('0x2a')]};});_0x3d16d3['model']=_[_0x2c22('0x27')](_0x27cf0b,_0x2c22('0x24'));_0x3d16d3[_0x2c22('0x2b')]=_[_0x2c22('0x2c')](_0x489a5c[_0x2c22('0x2b')]);_0x3d16d3[_0x2c22('0x2d')]=_[_0x2c22('0x2e')](_0x3d16d3['model'],_0x3d16d3['query']);_0xf11716['attributes']=_[_0x2c22('0x2e')](_0x3d16d3[_0x2c22('0x2f')],qs[_0x2c22('0x30')](_0x489a5c[_0x2c22('0x2b')][_0x2c22('0x30')]));_0xf11716[_0x2c22('0x31')]=_0xf11716[_0x2c22('0x31')][_0x2c22('0x32')]?_0xf11716[_0x2c22('0x31')]:_0x3d16d3[_0x2c22('0x2f')];if(!_0x489a5c[_0x2c22('0x2b')][_0x2c22('0x33')](_0x2c22('0x34'))){_0xf11716[_0x2c22('0x35')]=qs[_0x2c22('0x35')](_0x489a5c[_0x2c22('0x2b')][_0x2c22('0x35')]);_0xf11716[_0x2c22('0x19')]=qs['offset'](_0x489a5c[_0x2c22('0x2b')]['offset']);}_0xf11716[_0x2c22('0x36')]=qs[_0x2c22('0x37')](_0x489a5c[_0x2c22('0x2b')]['sort']);_0xf11716['where']=qs[_0x2c22('0x2d')](_[_0x2c22('0x38')](_0x489a5c[_0x2c22('0x2b')],_0x3d16d3[_0x2c22('0x2d')]),_0x27cf0b);if(_0x489a5c[_0x2c22('0x2b')]['filter']){_0xf11716[_0x2c22('0x39')]=_[_0x2c22('0x3a')](_0xf11716[_0x2c22('0x39')],{'$or':_[_0x2c22('0x27')](_0x27cf0b,function(_0x2c49fa){if(_0x2c49fa[_0x2c22('0x29')]!==_0x2c22('0x3b')){var _0x1a1357={};_0x1a1357[_0x2c49fa[_0x2c22('0x24')]]={'$like':'%'+_0x489a5c[_0x2c22('0x2b')][_0x2c22('0x3c')]+'%'};return _0x1a1357;}})});}_0xf11716=_[_0x2c22('0x3a')]({},_0xf11716,_0x489a5c[_0x2c22('0x3d')]);var _0x2dcfe1={'where':_0xf11716[_0x2c22('0x39')]};return db[_0x2c22('0x3e')][_0x2c22('0x18')](_0x2dcfe1)[_0x2c22('0x1e')](function(_0x36f2a4){_0x1a68f3['count']=_0x36f2a4;if(_0x489a5c[_0x2c22('0x2b')][_0x2c22('0x3f')]){_0xf11716[_0x2c22('0x40')]=[{'all':!![]}];}return db[_0x2c22('0x3e')][_0x2c22('0x41')](_0xf11716);})[_0x2c22('0x1e')](function(_0x2f55a7){_0x1a68f3['rows']=_0x2f55a7;return _0x1a68f3;})[_0x2c22('0x1e')](respondWithFilteredResult(_0x389f5b,_0xf11716))[_0x2c22('0x42')](handleError(_0x389f5b,null));};exports[_0x2c22('0x43')]=function(_0x546400,_0x338fdb){var _0x504c97={'raw':!![],'where':{'id':_0x546400[_0x2c22('0x44')]['id']}},_0x2458d6={};_0x2458d6[_0x2c22('0x2f')]=_[_0x2c22('0x2c')](db[_0x2c22('0x3e')][_0x2c22('0x28')]);_0x2458d6[_0x2c22('0x2b')]=_[_0x2c22('0x2c')](_0x546400[_0x2c22('0x2b')]);_0x2458d6[_0x2c22('0x2d')]=_[_0x2c22('0x2e')](_0x2458d6[_0x2c22('0x2f')],_0x2458d6[_0x2c22('0x2b')]);_0x504c97[_0x2c22('0x31')]=_[_0x2c22('0x2e')](_0x2458d6[_0x2c22('0x2f')],qs[_0x2c22('0x30')](_0x546400['query'][_0x2c22('0x30')]));_0x504c97[_0x2c22('0x31')]=_0x504c97[_0x2c22('0x31')]['length']?_0x504c97[_0x2c22('0x31')]:_0x2458d6['model'];if(_0x546400['query']['includeAll']){_0x504c97[_0x2c22('0x40')]=[{'all':!![]}];}_0x504c97=_[_0x2c22('0x3a')]({},_0x504c97,_0x546400[_0x2c22('0x3d')]);return db[_0x2c22('0x3e')][_0x2c22('0x45')](_0x504c97)[_0x2c22('0x1e')](handleEntityNotFound(_0x338fdb,null))[_0x2c22('0x1e')](respondWithResult(_0x338fdb,null))[_0x2c22('0x42')](handleError(_0x338fdb,null));};exports[_0x2c22('0x46')]=function(_0x1373f8,_0x3d1dbb){return db['AnalyticExtractedReport']['create'](_0x1373f8[_0x2c22('0x47')],{})[_0x2c22('0x1e')](function(_0x44a667){var _0x69650=_0x1373f8[_0x2c22('0x48')]['get']({'plain':!![]});if(!_0x69650)throw new Error(_0x2c22('0x49'));if(_0x69650['role']==='user'){var _0x1bf3f3=_0x44a667['get']({'plain':!![]});var _0x4267f0=_0x2c22('0x20');return db[_0x2c22('0x4a')]['find']({'where':{'name':_0x4267f0,'userProfileId':_0x69650[_0x2c22('0x4b')]},'raw':!![]})[_0x2c22('0x1e')](function(_0x5ebada){if(_0x5ebada&&_0x5ebada[_0x2c22('0x4c')]===0x0){return db[_0x2c22('0x21')][_0x2c22('0x46')]({'name':_0x1bf3f3[_0x2c22('0x24')],'resourceId':_0x1bf3f3['id'],'type':_0x5ebada['name'],'sectionId':_0x5ebada['id']},{})[_0x2c22('0x1e')](function(){return _0x44a667;});}else{return _0x44a667;}})[_0x2c22('0x42')](function(_0x2fddd9){logger[_0x2c22('0x22')](_0x2c22('0x4d'),_0x2fddd9);throw _0x2fddd9;});}return _0x44a667;})[_0x2c22('0x1e')](respondWithResult(_0x3d1dbb,0xc9))[_0x2c22('0x42')](handleError(_0x3d1dbb,null));};exports[_0x2c22('0x4e')]=function(_0x3b97f5,_0x5c38da){if(_0x3b97f5[_0x2c22('0x47')]['id']){delete _0x3b97f5['body']['id'];}return db[_0x2c22('0x3e')][_0x2c22('0x45')]({'where':{'id':_0x3b97f5[_0x2c22('0x44')]['id']}})[_0x2c22('0x1e')](handleEntityNotFound(_0x5c38da,null))['then'](saveUpdates(_0x3b97f5[_0x2c22('0x47')],null))[_0x2c22('0x1e')](respondWithResult(_0x5c38da,null))[_0x2c22('0x42')](handleError(_0x5c38da,null));};exports[_0x2c22('0x1f')]=function(_0x4eb628,_0x52d4ad){return db[_0x2c22('0x3e')][_0x2c22('0x45')]({'where':{'id':_0x4eb628[_0x2c22('0x44')]['id']}})[_0x2c22('0x1e')](handleEntityNotFound(_0x52d4ad,null))[_0x2c22('0x1e')](removeEntity(_0x52d4ad,null))['catch'](handleError(_0x52d4ad,null));};exports[_0x2c22('0x4f')]=function(_0x529a6e,_0x116536,_0x506ff3){return db[_0x2c22('0x3e')][_0x2c22('0x45')]({'where':{'id':_0x529a6e[_0x2c22('0x44')]['id']},'attributes':[_0x2c22('0x24'),_0x2c22('0x50'),_0x2c22('0x51'),_0x2c22('0x52')],'raw':!![]})['then'](handleEntityNotFound(_0x116536,null))[_0x2c22('0x1e')](function(_0x3b490f){if(_0x3b490f){if(!fs[_0x2c22('0x53')](path[_0x2c22('0x54')](config[_0x2c22('0x55')],_0x2c22('0x56'),_0x3b490f[_0x2c22('0x51')]))){throw new db[(_0x2c22('0x57'))]['ValidationError'](_0x2c22('0x58'));}if(_0x529a6e[_0x2c22('0x2b')]['exists']){return _0x116536[_0x2c22('0x13')](0xc8);}return _0x116536[_0x2c22('0x4f')](path[_0x2c22('0x54')](config['root'],'server/files/reports',_0x3b490f[_0x2c22('0x51')]),util['format']('%s.%s',_0x3b490f['basename']||_0x3b490f[_0x2c22('0x24')],_0x3b490f[_0x2c22('0x52')][_0x2c22('0x59')]()));}})[_0x2c22('0x42')](handleError(_0x116536,null));};