4e868414c13f023a8381c738259bc06335660625
[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 _0x7384=['crypto','desk.js','to-csv','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','destroy','ExtractedReports','UserProfileResource','then','stack','send','index','map','rawAttributes','fieldName','type','key','model','name','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','filter','merge','where','VIRTUAL','options','AnalyticExtractedReport','findAll','show','params','keys','includeAll','include','catch','create','body','user','get','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','download','find','basename','savename','output','join','root','server/files/reports','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','format','%s.%s','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','squel'];(function(_0x96ad7d,_0x1017ba){var _0x32d63a=function(_0xb47ad9){while(--_0xb47ad9){_0x96ad7d['push'](_0x96ad7d['shift']());}};_0x32d63a(++_0x1017ba);}(_0x7384,0x170));var _0x4738=function(_0x45dee4,_0x574be2){_0x45dee4=_0x45dee4-0x0;var _0x1d98e9=_0x7384[_0x45dee4];return _0x1d98e9;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4738('0x0'));var zipdir=require(_0x4738('0x1'));var jsonpatch=require(_0x4738('0x2'));var rp=require(_0x4738('0x3'));var moment=require('moment');var BPromise=require(_0x4738('0x4'));var Mustache=require(_0x4738('0x5'));var util=require(_0x4738('0x6'));var path=require(_0x4738('0x7'));var sox=require(_0x4738('0x8'));var csv=require('to-csv');var ejs=require(_0x4738('0x9'));var fs=require('fs');var fs_extra=require(_0x4738('0xa'));var _=require('lodash');var squel=require(_0x4738('0xb'));var crypto=require(_0x4738('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x4738('0xd'));var toCsv=require(_0x4738('0xe'));var querystring=require(_0x4738('0xf'));var Papa=require('papaparse');var Redis=require(_0x4738('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x4738('0x11'));var as=require(_0x4738('0x12'));var hardwareService=require(_0x4738('0x13'));var logger=require(_0x4738('0x14'))('api');var utils=require(_0x4738('0x15'));var config=require(_0x4738('0x16'));var licenseUtil=require(_0x4738('0x17'));var db=require(_0x4738('0x18'))['db'];function respondWithStatusCode(_0x451d9e,_0x40c9a2){_0x40c9a2=_0x40c9a2||0xcc;return function(_0xaa9858){if(_0xaa9858){return _0x451d9e[_0x4738('0x19')](_0x40c9a2);}return _0x451d9e['status'](_0x40c9a2)[_0x4738('0x1a')]();};}function respondWithResult(_0x1691ff,_0x4ae7cc){_0x4ae7cc=_0x4ae7cc||0xc8;return function(_0x3dada4){if(_0x3dada4){return _0x1691ff[_0x4738('0x1b')](_0x4ae7cc)[_0x4738('0x1c')](_0x3dada4);}};}function respondWithFilteredResult(_0x5ea850,_0x21f197){return function(_0x46fab9){if(_0x46fab9){var _0xe3dc0=typeof _0x21f197[_0x4738('0x1d')]===_0x4738('0x1e')&&typeof _0x21f197[_0x4738('0x1f')]==='undefined';var _0x2d5180=_0x46fab9[_0x4738('0x20')];var _0x6ac0ba=_0xe3dc0?0x0:_0x21f197['offset'];var _0x1fe15f=_0xe3dc0?_0x46fab9[_0x4738('0x20')]:_0x21f197[_0x4738('0x1d')]+_0x21f197['limit'];var _0x151878;if(_0x1fe15f>=_0x2d5180){_0x1fe15f=_0x2d5180;_0x151878=0xc8;}else{_0x151878=0xce;}_0x5ea850['status'](_0x151878);return _0x5ea850[_0x4738('0x21')](_0x4738('0x22'),_0x6ac0ba+'-'+_0x1fe15f+'/'+_0x2d5180)[_0x4738('0x1c')](_0x46fab9);}return null;};}function patchUpdates(_0x31a818){return function(_0x1f0633){try{jsonpatch[_0x4738('0x23')](_0x1f0633,_0x31a818,!![]);}catch(_0x55dd0e){return BPromise['reject'](_0x55dd0e);}return _0x1f0633[_0x4738('0x24')]();};}function saveUpdates(_0x4400c5,_0x49ed5b){return function(_0x799dd1){if(_0x799dd1){return _0x799dd1[_0x4738('0x25')](_0x4400c5)['then'](function(_0x4fd90d){return _0x4fd90d;});}return null;};}function removeEntity(_0x1e4180,_0x56840a){return function(_0x21874b){if(_0x21874b){return _0x21874b[_0x4738('0x26')]()['then'](function(){var _0x3d713c=_0x21874b['get']({'plain':!![]});var _0x514079=_0x4738('0x27');return db[_0x4738('0x28')][_0x4738('0x26')]({'where':{'type':_0x514079,'resourceId':_0x3d713c['id']}})[_0x4738('0x29')](function(){return _0x21874b;});})[_0x4738('0x29')](function(){_0x1e4180[_0x4738('0x1b')](0xcc)[_0x4738('0x1a')]();});}};}function handleEntityNotFound(_0x26b713,_0x25fb94){return function(_0x432f98){if(!_0x432f98){_0x26b713[_0x4738('0x19')](0x194);}return _0x432f98;};}function handleError(_0x25a82d,_0xfc2206){_0xfc2206=_0xfc2206||0x1f4;return function(_0x1d1243){logger['error'](_0x1d1243[_0x4738('0x2a')]);if(_0x1d1243['name']){delete _0x1d1243['name'];}_0x25a82d[_0x4738('0x1b')](_0xfc2206)[_0x4738('0x2b')](_0x1d1243);};}exports[_0x4738('0x2c')]=function(_0x5e4fb8,_0x19ff9a){var _0x1f3a7f={},_0x361ff6={},_0x2ce1a3={'count':0x0,'rows':[]};var _0x48ab14=_[_0x4738('0x2d')](db['AnalyticExtractedReport'][_0x4738('0x2e')],function(_0x4570ee){return{'name':_0x4570ee[_0x4738('0x2f')],'type':_0x4570ee[_0x4738('0x30')][_0x4738('0x31')]};});_0x361ff6[_0x4738('0x32')]=_[_0x4738('0x2d')](_0x48ab14,_0x4738('0x33'));_0x361ff6[_0x4738('0x34')]=_['keys'](_0x5e4fb8[_0x4738('0x34')]);_0x361ff6[_0x4738('0x35')]=_[_0x4738('0x36')](_0x361ff6['model'],_0x361ff6[_0x4738('0x34')]);_0x1f3a7f[_0x4738('0x37')]=_[_0x4738('0x36')](_0x361ff6['model'],qs[_0x4738('0x38')](_0x5e4fb8['query'][_0x4738('0x38')]));_0x1f3a7f['attributes']=_0x1f3a7f['attributes'][_0x4738('0x39')]?_0x1f3a7f[_0x4738('0x37')]:_0x361ff6[_0x4738('0x32')];if(!_0x5e4fb8[_0x4738('0x34')][_0x4738('0x3a')]('nolimit')){_0x1f3a7f[_0x4738('0x1f')]=qs[_0x4738('0x1f')](_0x5e4fb8[_0x4738('0x34')]['limit']);_0x1f3a7f[_0x4738('0x1d')]=qs[_0x4738('0x1d')](_0x5e4fb8[_0x4738('0x34')][_0x4738('0x1d')]);}_0x1f3a7f[_0x4738('0x3b')]=qs[_0x4738('0x3c')](_0x5e4fb8['query']['sort']);_0x1f3a7f['where']=qs[_0x4738('0x35')](_[_0x4738('0x3d')](_0x5e4fb8[_0x4738('0x34')],_0x361ff6[_0x4738('0x35')]),_0x48ab14);if(_0x5e4fb8[_0x4738('0x34')][_0x4738('0x3e')]){_0x1f3a7f['where']=_[_0x4738('0x3f')](_0x1f3a7f[_0x4738('0x40')],{'$or':_[_0x4738('0x2d')](_0x48ab14,function(_0x1e3fd4){if(_0x1e3fd4[_0x4738('0x30')]!==_0x4738('0x41')){var _0x151448={};_0x151448[_0x1e3fd4[_0x4738('0x33')]]={'$like':'%'+_0x5e4fb8[_0x4738('0x34')]['filter']+'%'};return _0x151448;}})});}_0x1f3a7f=_[_0x4738('0x3f')]({},_0x1f3a7f,_0x5e4fb8[_0x4738('0x42')]);var _0x4dcd5f={'where':_0x1f3a7f[_0x4738('0x40')]};return db[_0x4738('0x43')][_0x4738('0x20')](_0x4dcd5f)[_0x4738('0x29')](function(_0x3a65ee){_0x2ce1a3[_0x4738('0x20')]=_0x3a65ee;if(_0x5e4fb8[_0x4738('0x34')]['includeAll']){_0x1f3a7f['include']=[{'all':!![]}];}return db[_0x4738('0x43')][_0x4738('0x44')](_0x1f3a7f);})[_0x4738('0x29')](function(_0x52a767){_0x2ce1a3['rows']=_0x52a767;return _0x2ce1a3;})[_0x4738('0x29')](respondWithFilteredResult(_0x19ff9a,_0x1f3a7f))['catch'](handleError(_0x19ff9a,null));};exports[_0x4738('0x45')]=function(_0x36d270,_0xccde75){var _0x31616f={'raw':!![],'where':{'id':_0x36d270[_0x4738('0x46')]['id']}},_0xc6d1af={};_0xc6d1af['model']=_[_0x4738('0x47')](db[_0x4738('0x43')][_0x4738('0x2e')]);_0xc6d1af['query']=_[_0x4738('0x47')](_0x36d270[_0x4738('0x34')]);_0xc6d1af[_0x4738('0x35')]=_[_0x4738('0x36')](_0xc6d1af[_0x4738('0x32')],_0xc6d1af['query']);_0x31616f[_0x4738('0x37')]=_[_0x4738('0x36')](_0xc6d1af[_0x4738('0x32')],qs['fields'](_0x36d270[_0x4738('0x34')][_0x4738('0x38')]));_0x31616f[_0x4738('0x37')]=_0x31616f['attributes'][_0x4738('0x39')]?_0x31616f[_0x4738('0x37')]:_0xc6d1af[_0x4738('0x32')];if(_0x36d270['query'][_0x4738('0x48')]){_0x31616f[_0x4738('0x49')]=[{'all':!![]}];}_0x31616f=_[_0x4738('0x3f')]({},_0x31616f,_0x36d270['options']);return db[_0x4738('0x43')]['find'](_0x31616f)[_0x4738('0x29')](handleEntityNotFound(_0xccde75,null))[_0x4738('0x29')](respondWithResult(_0xccde75,null))[_0x4738('0x4a')](handleError(_0xccde75,null));};exports[_0x4738('0x4b')]=function(_0x234ca5,_0x3eee46){return db[_0x4738('0x43')][_0x4738('0x4b')](_0x234ca5[_0x4738('0x4c')],{})['then'](function(_0x55c0e2){var _0x355111=_0x234ca5[_0x4738('0x4d')][_0x4738('0x4e')]({'plain':!![]});if(!_0x355111)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x355111['role']===_0x4738('0x4d')){var _0x374805=_0x55c0e2[_0x4738('0x4e')]({'plain':!![]});var _0x3c8ba6='ExtractedReports';return db['UserProfileSection']['find']({'where':{'name':_0x3c8ba6,'userProfileId':_0x355111[_0x4738('0x4f')]},'raw':!![]})[_0x4738('0x29')](function(_0xf81ce4){if(_0xf81ce4&&_0xf81ce4['autoAssociation']===0x0){return db[_0x4738('0x28')][_0x4738('0x4b')]({'name':_0x374805[_0x4738('0x33')],'resourceId':_0x374805['id'],'type':_0xf81ce4[_0x4738('0x33')],'sectionId':_0xf81ce4['id']},{})[_0x4738('0x29')](function(){return _0x55c0e2;});}else{return _0x55c0e2;}})[_0x4738('0x4a')](function(_0x36dbc1){logger[_0x4738('0x50')](_0x4738('0x51'),_0x36dbc1);throw _0x36dbc1;});}return _0x55c0e2;})[_0x4738('0x29')](respondWithResult(_0x3eee46,0xc9))[_0x4738('0x4a')](handleError(_0x3eee46,null));};exports[_0x4738('0x25')]=function(_0x2995c0,_0x3f60c1){if(_0x2995c0[_0x4738('0x4c')]['id']){delete _0x2995c0[_0x4738('0x4c')]['id'];}return db[_0x4738('0x43')]['find']({'where':{'id':_0x2995c0[_0x4738('0x46')]['id']}})['then'](handleEntityNotFound(_0x3f60c1,null))[_0x4738('0x29')](saveUpdates(_0x2995c0[_0x4738('0x4c')],null))['then'](respondWithResult(_0x3f60c1,null))[_0x4738('0x4a')](handleError(_0x3f60c1,null));};exports[_0x4738('0x26')]=function(_0x25ce3a,_0xed8237){return db[_0x4738('0x43')]['find']({'where':{'id':_0x25ce3a[_0x4738('0x46')]['id']}})['then'](handleEntityNotFound(_0xed8237,null))[_0x4738('0x29')](removeEntity(_0xed8237,null))[_0x4738('0x4a')](handleError(_0xed8237,null));};exports[_0x4738('0x52')]=function(_0x2f26bc,_0x1a1e76,_0xc6dd61){return db[_0x4738('0x43')][_0x4738('0x53')]({'where':{'id':_0x2f26bc['params']['id']},'attributes':[_0x4738('0x33'),_0x4738('0x54'),_0x4738('0x55'),_0x4738('0x56')],'raw':!![]})[_0x4738('0x29')](handleEntityNotFound(_0x1a1e76,null))[_0x4738('0x29')](function(_0x1c73c3){if(_0x1c73c3){if(!fs['existsSync'](path[_0x4738('0x57')](config[_0x4738('0x58')],_0x4738('0x59'),_0x1c73c3[_0x4738('0x55')]))){throw new db[(_0x4738('0x5a'))][(_0x4738('0x5b'))](_0x4738('0x5c'));}if(_0x2f26bc[_0x4738('0x34')]['exists']){return _0x1a1e76[_0x4738('0x19')](0xc8);}return _0x1a1e76[_0x4738('0x52')](path[_0x4738('0x57')](config[_0x4738('0x58')],_0x4738('0x59'),_0x1c73c3[_0x4738('0x55')]),util[_0x4738('0x5d')](_0x4738('0x5e'),_0x1c73c3[_0x4738('0x54')]||_0x1c73c3[_0x4738('0x33')],_0x1c73c3[_0x4738('0x56')]['toLowerCase']()));}})[_0x4738('0x4a')](handleError(_0x1a1e76,null));};