6552b77673a44c8d35c1d356e43aa2ff7621db95
[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 _0xef1c=['sort','where','pick','filters','filter','merge','options','includeAll','include','findAll','rows','catch','params','keys','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','find','userProfileId','autoAssociation','download','basename','existsSync','join','root','server/files/reports','savename','Sequelize','Report\x20not\x20found\x20or\x20empty','format','output','toLowerCase','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','offset','undefined','limit','count','Content-Range','json','apply','reject','save','update','then','destroy','ExtractedReports','error','stack','name','send','index','map','AnalyticExtractedReport','rawAttributes','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit'];(function(_0x2391ab,_0x10b86d){var _0x598a88=function(_0x54271a){while(--_0x54271a){_0x2391ab['push'](_0x2391ab['shift']());}};_0x598a88(++_0x10b86d);}(_0xef1c,0xe5));var _0xcef1=function(_0x1d1779,_0x284147){_0x1d1779=_0x1d1779-0x0;var _0x2377e9=_0xef1c[_0x1d1779];return _0x2377e9;};'use strict';var emlformat=require(_0xcef1('0x0'));var rimraf=require(_0xcef1('0x1'));var zipdir=require(_0xcef1('0x2'));var jsonpatch=require(_0xcef1('0x3'));var rp=require(_0xcef1('0x4'));var moment=require(_0xcef1('0x5'));var BPromise=require(_0xcef1('0x6'));var Mustache=require(_0xcef1('0x7'));var util=require(_0xcef1('0x8'));var path=require(_0xcef1('0x9'));var sox=require(_0xcef1('0xa'));var csv=require(_0xcef1('0xb'));var ejs=require(_0xcef1('0xc'));var fs=require('fs');var fs_extra=require(_0xcef1('0xd'));var _=require('lodash');var squel=require(_0xcef1('0xe'));var crypto=require(_0xcef1('0xf'));var jsforce=require(_0xcef1('0x10'));var deskjs=require(_0xcef1('0x11'));var toCsv=require(_0xcef1('0xb'));var querystring=require(_0xcef1('0x12'));var Papa=require(_0xcef1('0x13'));var Redis=require(_0xcef1('0x14'));var authService=require('../../components/auth/service');var qs=require(_0xcef1('0x15'));var as=require(_0xcef1('0x16'));var hardwareService=require(_0xcef1('0x17'));var logger=require('../../config/logger')(_0xcef1('0x18'));var utils=require(_0xcef1('0x19'));var config=require(_0xcef1('0x1a'));var licenseUtil=require(_0xcef1('0x1b'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x449f83,_0x3f858e){_0x3f858e=_0x3f858e||0xcc;return function(_0x4b8415){if(_0x4b8415){return _0x449f83[_0xcef1('0x1c')](_0x3f858e);}return _0x449f83['status'](_0x3f858e)[_0xcef1('0x1d')]();};}function respondWithResult(_0x14714e,_0x3c9e0d){_0x3c9e0d=_0x3c9e0d||0xc8;return function(_0x4ab039){if(_0x4ab039){return _0x14714e[_0xcef1('0x1e')](_0x3c9e0d)['json'](_0x4ab039);}};}function respondWithFilteredResult(_0x54b35e,_0xbd95ad){return function(_0x5ac869){if(_0x5ac869){var _0x59ac62=typeof _0xbd95ad[_0xcef1('0x1f')]===_0xcef1('0x20')&&typeof _0xbd95ad[_0xcef1('0x21')]===_0xcef1('0x20');var _0x198dfb=_0x5ac869[_0xcef1('0x22')];var _0x52a49f=_0x59ac62?0x0:_0xbd95ad['offset'];var _0x2df294=_0x59ac62?_0x5ac869[_0xcef1('0x22')]:_0xbd95ad[_0xcef1('0x1f')]+_0xbd95ad[_0xcef1('0x21')];var _0xa5cddc;if(_0x2df294>=_0x198dfb){_0x2df294=_0x198dfb;_0xa5cddc=0xc8;}else{_0xa5cddc=0xce;}_0x54b35e[_0xcef1('0x1e')](_0xa5cddc);return _0x54b35e['set'](_0xcef1('0x23'),_0x52a49f+'-'+_0x2df294+'/'+_0x198dfb)[_0xcef1('0x24')](_0x5ac869);}return null;};}function patchUpdates(_0x1b9152){return function(_0x2dd332){try{jsonpatch[_0xcef1('0x25')](_0x2dd332,_0x1b9152,!![]);}catch(_0x482b59){return BPromise[_0xcef1('0x26')](_0x482b59);}return _0x2dd332[_0xcef1('0x27')]();};}function saveUpdates(_0x1b616c,_0x12ab45){return function(_0x941422){if(_0x941422){return _0x941422[_0xcef1('0x28')](_0x1b616c)[_0xcef1('0x29')](function(_0x5240f3){return _0x5240f3;});}return null;};}function removeEntity(_0x1e9566,_0x34f334){return function(_0x2b2c55){if(_0x2b2c55){return _0x2b2c55[_0xcef1('0x2a')]()['then'](function(){var _0x1fa05e=_0x2b2c55['get']({'plain':!![]});var _0x4ce9f1=_0xcef1('0x2b');return db['UserProfileResource'][_0xcef1('0x2a')]({'where':{'type':_0x4ce9f1,'resourceId':_0x1fa05e['id']}})[_0xcef1('0x29')](function(){return _0x2b2c55;});})[_0xcef1('0x29')](function(){_0x1e9566[_0xcef1('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x321a42,_0x4aecf2){return function(_0x24a455){if(!_0x24a455){_0x321a42[_0xcef1('0x1c')](0x194);}return _0x24a455;};}function handleError(_0x290c92,_0x581665){_0x581665=_0x581665||0x1f4;return function(_0x45f6a4){logger[_0xcef1('0x2c')](_0x45f6a4[_0xcef1('0x2d')]);if(_0x45f6a4['name']){delete _0x45f6a4[_0xcef1('0x2e')];}_0x290c92[_0xcef1('0x1e')](_0x581665)[_0xcef1('0x2f')](_0x45f6a4);};}exports[_0xcef1('0x30')]=function(_0x14d0bd,_0x46fd4d){var _0x707ec4={},_0x357628={},_0x5d403e={'count':0x0,'rows':[]};var _0x467d70=_[_0xcef1('0x31')](db[_0xcef1('0x32')][_0xcef1('0x33')],function(_0x2a5637){return{'name':_0x2a5637['fieldName'],'type':_0x2a5637[_0xcef1('0x34')][_0xcef1('0x35')]};});_0x357628[_0xcef1('0x36')]=_[_0xcef1('0x31')](_0x467d70,_0xcef1('0x2e'));_0x357628['query']=_['keys'](_0x14d0bd[_0xcef1('0x37')]);_0x357628['filters']=_[_0xcef1('0x38')](_0x357628[_0xcef1('0x36')],_0x357628[_0xcef1('0x37')]);_0x707ec4[_0xcef1('0x39')]=_['intersection'](_0x357628[_0xcef1('0x36')],qs[_0xcef1('0x3a')](_0x14d0bd['query'][_0xcef1('0x3a')]));_0x707ec4[_0xcef1('0x39')]=_0x707ec4[_0xcef1('0x39')][_0xcef1('0x3b')]?_0x707ec4[_0xcef1('0x39')]:_0x357628[_0xcef1('0x36')];if(!_0x14d0bd['query'][_0xcef1('0x3c')](_0xcef1('0x3d'))){_0x707ec4[_0xcef1('0x21')]=qs[_0xcef1('0x21')](_0x14d0bd['query'][_0xcef1('0x21')]);_0x707ec4[_0xcef1('0x1f')]=qs[_0xcef1('0x1f')](_0x14d0bd[_0xcef1('0x37')][_0xcef1('0x1f')]);}_0x707ec4['order']=qs[_0xcef1('0x3e')](_0x14d0bd['query'][_0xcef1('0x3e')]);_0x707ec4[_0xcef1('0x3f')]=qs['filters'](_[_0xcef1('0x40')](_0x14d0bd[_0xcef1('0x37')],_0x357628[_0xcef1('0x41')]),_0x467d70);if(_0x14d0bd[_0xcef1('0x37')][_0xcef1('0x42')]){_0x707ec4[_0xcef1('0x3f')]=_[_0xcef1('0x43')](_0x707ec4['where'],{'$or':_[_0xcef1('0x31')](_0x467d70,function(_0x622676){if(_0x622676[_0xcef1('0x34')]!=='VIRTUAL'){var _0x54293f={};_0x54293f[_0x622676['name']]={'$like':'%'+_0x14d0bd[_0xcef1('0x37')]['filter']+'%'};return _0x54293f;}})});}_0x707ec4=_['merge']({},_0x707ec4,_0x14d0bd[_0xcef1('0x44')]);var _0x146744={'where':_0x707ec4[_0xcef1('0x3f')]};return db[_0xcef1('0x32')]['count'](_0x146744)[_0xcef1('0x29')](function(_0x192f60){_0x5d403e[_0xcef1('0x22')]=_0x192f60;if(_0x14d0bd[_0xcef1('0x37')][_0xcef1('0x45')]){_0x707ec4[_0xcef1('0x46')]=[{'all':!![]}];}return db[_0xcef1('0x32')][_0xcef1('0x47')](_0x707ec4);})['then'](function(_0x8fe3aa){_0x5d403e[_0xcef1('0x48')]=_0x8fe3aa;return _0x5d403e;})[_0xcef1('0x29')](respondWithFilteredResult(_0x46fd4d,_0x707ec4))[_0xcef1('0x49')](handleError(_0x46fd4d,null));};exports['show']=function(_0x251ee1,_0x2cc63f){var _0x1d93f2={'raw':!![],'where':{'id':_0x251ee1[_0xcef1('0x4a')]['id']}},_0xdbd08a={};_0xdbd08a['model']=_[_0xcef1('0x4b')](db[_0xcef1('0x32')][_0xcef1('0x33')]);_0xdbd08a[_0xcef1('0x37')]=_[_0xcef1('0x4b')](_0x251ee1[_0xcef1('0x37')]);_0xdbd08a[_0xcef1('0x41')]=_['intersection'](_0xdbd08a[_0xcef1('0x36')],_0xdbd08a['query']);_0x1d93f2[_0xcef1('0x39')]=_[_0xcef1('0x38')](_0xdbd08a['model'],qs[_0xcef1('0x3a')](_0x251ee1[_0xcef1('0x37')][_0xcef1('0x3a')]));_0x1d93f2['attributes']=_0x1d93f2[_0xcef1('0x39')][_0xcef1('0x3b')]?_0x1d93f2['attributes']:_0xdbd08a[_0xcef1('0x36')];if(_0x251ee1[_0xcef1('0x37')][_0xcef1('0x45')]){_0x1d93f2['include']=[{'all':!![]}];}_0x1d93f2=_[_0xcef1('0x43')]({},_0x1d93f2,_0x251ee1[_0xcef1('0x44')]);return db[_0xcef1('0x32')]['find'](_0x1d93f2)[_0xcef1('0x29')](handleEntityNotFound(_0x2cc63f,null))[_0xcef1('0x29')](respondWithResult(_0x2cc63f,null))['catch'](handleError(_0x2cc63f,null));};exports[_0xcef1('0x4c')]=function(_0x5447f8,_0x2a1dd9){return db['AnalyticExtractedReport'][_0xcef1('0x4c')](_0x5447f8[_0xcef1('0x4d')],{})[_0xcef1('0x29')](function(_0x19c546){var _0x153777=_0x5447f8[_0xcef1('0x4e')][_0xcef1('0x4f')]({'plain':!![]});if(!_0x153777)throw new Error(_0xcef1('0x50'));if(_0x153777[_0xcef1('0x51')]===_0xcef1('0x4e')){var _0x3bb5d3=_0x19c546[_0xcef1('0x4f')]({'plain':!![]});var _0x512211=_0xcef1('0x2b');return db['UserProfileSection'][_0xcef1('0x52')]({'where':{'name':_0x512211,'userProfileId':_0x153777[_0xcef1('0x53')]},'raw':!![]})[_0xcef1('0x29')](function(_0x56d6c3){if(_0x56d6c3&&_0x56d6c3[_0xcef1('0x54')]===0x0){return db['UserProfileResource'][_0xcef1('0x4c')]({'name':_0x3bb5d3[_0xcef1('0x2e')],'resourceId':_0x3bb5d3['id'],'type':_0x56d6c3[_0xcef1('0x2e')],'sectionId':_0x56d6c3['id']},{})[_0xcef1('0x29')](function(){return _0x19c546;});}else{return _0x19c546;}})[_0xcef1('0x49')](function(_0x3c316a){logger[_0xcef1('0x2c')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3c316a);throw _0x3c316a;});}return _0x19c546;})[_0xcef1('0x29')](respondWithResult(_0x2a1dd9,0xc9))[_0xcef1('0x49')](handleError(_0x2a1dd9,null));};exports['update']=function(_0x7ee476,_0x40e665){if(_0x7ee476[_0xcef1('0x4d')]['id']){delete _0x7ee476[_0xcef1('0x4d')]['id'];}return db[_0xcef1('0x32')]['find']({'where':{'id':_0x7ee476[_0xcef1('0x4a')]['id']}})[_0xcef1('0x29')](handleEntityNotFound(_0x40e665,null))['then'](saveUpdates(_0x7ee476[_0xcef1('0x4d')],null))[_0xcef1('0x29')](respondWithResult(_0x40e665,null))[_0xcef1('0x49')](handleError(_0x40e665,null));};exports[_0xcef1('0x2a')]=function(_0x18c179,_0x15caaf){return db[_0xcef1('0x32')][_0xcef1('0x52')]({'where':{'id':_0x18c179[_0xcef1('0x4a')]['id']}})['then'](handleEntityNotFound(_0x15caaf,null))[_0xcef1('0x29')](removeEntity(_0x15caaf,null))[_0xcef1('0x49')](handleError(_0x15caaf,null));};exports[_0xcef1('0x55')]=function(_0x1ac3c3,_0x43da31,_0xb557e4){return db['AnalyticExtractedReport'][_0xcef1('0x52')]({'where':{'id':_0x1ac3c3['params']['id']},'attributes':[_0xcef1('0x2e'),_0xcef1('0x56'),'savename','output'],'raw':!![]})[_0xcef1('0x29')](handleEntityNotFound(_0x43da31,null))[_0xcef1('0x29')](function(_0x18e906){if(_0x18e906){if(!fs[_0xcef1('0x57')](path[_0xcef1('0x58')](config[_0xcef1('0x59')],_0xcef1('0x5a'),_0x18e906[_0xcef1('0x5b')]))){throw new db[(_0xcef1('0x5c'))]['ValidationError'](_0xcef1('0x5d'));}if(_0x1ac3c3[_0xcef1('0x37')]['exists']){return _0x43da31[_0xcef1('0x1c')](0xc8);}return _0x43da31[_0xcef1('0x55')](path['join'](config[_0xcef1('0x59')],'server/files/reports',_0x18e906['savename']),util[_0xcef1('0x5e')]('%s.%s',_0x18e906['basename']||_0x18e906[_0xcef1('0x2e')],_0x18e906[_0xcef1('0x5f')][_0xcef1('0x60')]()));}})['catch'](handleError(_0x43da31,null));};