Built motion from commit 5b761a7b.|2.5.36
[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 _0x9c97=['key','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','map','merge','options','AnalyticExtractedReport','includeAll','include','rows','show','find','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','body','params','download','basename','savename','output','existsSync','join','root','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','format','%s.%s','toLowerCase','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','sox','to-csv','ejs','fs-extra','squel','crypto','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','status','end','json','offset','limit','count','set','save','update','destroy','get','ExtractedReports','UserProfileResource','then','sendStatus','stack','name','send','index','rawAttributes','fieldName'];(function(_0x307194,_0x5aebd0){var _0x4c9683=function(_0x43e29f){while(--_0x43e29f){_0x307194['push'](_0x307194['shift']());}};_0x4c9683(++_0x5aebd0);}(_0x9c97,0x8e));var _0x79c9=function(_0x43ae49,_0x358bf4){_0x43ae49=_0x43ae49-0x0;var _0xd1b8d=_0x9c97[_0x43ae49];return _0xd1b8d;};'use strict';var emlformat=require(_0x79c9('0x0'));var rimraf=require(_0x79c9('0x1'));var zipdir=require(_0x79c9('0x2'));var jsonpatch=require(_0x79c9('0x3'));var rp=require(_0x79c9('0x4'));var moment=require(_0x79c9('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x79c9('0x6'));var util=require('util');var path=require('path');var sox=require(_0x79c9('0x7'));var csv=require(_0x79c9('0x8'));var ejs=require(_0x79c9('0x9'));var fs=require('fs');var fs_extra=require(_0x79c9('0xa'));var _=require('lodash');var squel=require(_0x79c9('0xb'));var crypto=require(_0x79c9('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x79c9('0x8'));var querystring=require(_0x79c9('0xd'));var Papa=require('papaparse');var Redis=require(_0x79c9('0xe'));var authService=require(_0x79c9('0xf'));var qs=require(_0x79c9('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x79c9('0x11'));var logger=require(_0x79c9('0x12'))(_0x79c9('0x13'));var utils=require('../../config/utils');var config=require(_0x79c9('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x124c53,_0x1b6b77){_0x1b6b77=_0x1b6b77||0xcc;return function(_0x3c2dcc){if(_0x3c2dcc){return _0x124c53['sendStatus'](_0x1b6b77);}return _0x124c53[_0x79c9('0x15')](_0x1b6b77)[_0x79c9('0x16')]();};}function respondWithResult(_0x4d094d,_0x16b866){_0x16b866=_0x16b866||0xc8;return function(_0x23eed2){if(_0x23eed2){return _0x4d094d['status'](_0x16b866)[_0x79c9('0x17')](_0x23eed2);}};}function respondWithFilteredResult(_0x1f20cd,_0x27d21c){return function(_0x3d0def){if(_0x3d0def){var _0x1981ad=typeof _0x27d21c[_0x79c9('0x18')]==='undefined'&&typeof _0x27d21c[_0x79c9('0x19')]==='undefined';var _0x456f1a=_0x3d0def[_0x79c9('0x1a')];var _0x3d2267=_0x1981ad?0x0:_0x27d21c['offset'];var _0x42ebf1=_0x1981ad?_0x3d0def[_0x79c9('0x1a')]:_0x27d21c[_0x79c9('0x18')]+_0x27d21c[_0x79c9('0x19')];var _0x443759;if(_0x42ebf1>=_0x456f1a){_0x42ebf1=_0x456f1a;_0x443759=0xc8;}else{_0x443759=0xce;}_0x1f20cd['status'](_0x443759);return _0x1f20cd[_0x79c9('0x1b')]('Content-Range',_0x3d2267+'-'+_0x42ebf1+'/'+_0x456f1a)[_0x79c9('0x17')](_0x3d0def);}return null;};}function patchUpdates(_0x1af90d){return function(_0x3993a9){try{jsonpatch['apply'](_0x3993a9,_0x1af90d,!![]);}catch(_0x9c9f69){return BPromise['reject'](_0x9c9f69);}return _0x3993a9[_0x79c9('0x1c')]();};}function saveUpdates(_0x40fedd,_0x4052b5){return function(_0x400979){if(_0x400979){return _0x400979[_0x79c9('0x1d')](_0x40fedd)['then'](function(_0x16e300){return _0x16e300;});}return null;};}function removeEntity(_0x402f06,_0x57108d){return function(_0x329756){if(_0x329756){return _0x329756[_0x79c9('0x1e')]()['then'](function(){var _0x36dd06=_0x329756[_0x79c9('0x1f')]({'plain':!![]});var _0x38efe9=_0x79c9('0x20');return db[_0x79c9('0x21')][_0x79c9('0x1e')]({'where':{'type':_0x38efe9,'resourceId':_0x36dd06['id']}})['then'](function(){return _0x329756;});})[_0x79c9('0x22')](function(){_0x402f06['status'](0xcc)[_0x79c9('0x16')]();});}};}function handleEntityNotFound(_0x16a3dc,_0xc5598b){return function(_0x4f0f0b){if(!_0x4f0f0b){_0x16a3dc[_0x79c9('0x23')](0x194);}return _0x4f0f0b;};}function handleError(_0x51ac2e,_0x51162){_0x51162=_0x51162||0x1f4;return function(_0x240b83){logger['error'](_0x240b83[_0x79c9('0x24')]);if(_0x240b83[_0x79c9('0x25')]){delete _0x240b83[_0x79c9('0x25')];}_0x51ac2e['status'](_0x51162)[_0x79c9('0x26')](_0x240b83);};}exports[_0x79c9('0x27')]=function(_0x18f764,_0x266cd9){var _0x3e56ea={},_0x1ca451={},_0x461bb8={'count':0x0,'rows':[]};var _0x1af1be=_['map'](db['AnalyticExtractedReport'][_0x79c9('0x28')],function(_0x4a0752){return{'name':_0x4a0752[_0x79c9('0x29')],'type':_0x4a0752['type'][_0x79c9('0x2a')]};});_0x1ca451[_0x79c9('0x2b')]=_['map'](_0x1af1be,_0x79c9('0x25'));_0x1ca451[_0x79c9('0x2c')]=_[_0x79c9('0x2d')](_0x18f764['query']);_0x1ca451['filters']=_['intersection'](_0x1ca451[_0x79c9('0x2b')],_0x1ca451[_0x79c9('0x2c')]);_0x3e56ea[_0x79c9('0x2e')]=_[_0x79c9('0x2f')](_0x1ca451[_0x79c9('0x2b')],qs[_0x79c9('0x30')](_0x18f764[_0x79c9('0x2c')][_0x79c9('0x30')]));_0x3e56ea['attributes']=_0x3e56ea['attributes'][_0x79c9('0x31')]?_0x3e56ea[_0x79c9('0x2e')]:_0x1ca451['model'];if(!_0x18f764[_0x79c9('0x2c')][_0x79c9('0x32')](_0x79c9('0x33'))){_0x3e56ea[_0x79c9('0x19')]=qs[_0x79c9('0x19')](_0x18f764[_0x79c9('0x2c')][_0x79c9('0x19')]);_0x3e56ea[_0x79c9('0x18')]=qs['offset'](_0x18f764['query'][_0x79c9('0x18')]);}_0x3e56ea[_0x79c9('0x34')]=qs[_0x79c9('0x35')](_0x18f764['query'][_0x79c9('0x35')]);_0x3e56ea[_0x79c9('0x36')]=qs['filters'](_[_0x79c9('0x37')](_0x18f764['query'],_0x1ca451[_0x79c9('0x38')]),_0x1af1be);if(_0x18f764['query'][_0x79c9('0x39')]){_0x3e56ea[_0x79c9('0x36')]=_['merge'](_0x3e56ea[_0x79c9('0x36')],{'$or':_[_0x79c9('0x3a')](_0x1af1be,function(_0x38eb42){if(_0x38eb42['type']!=='VIRTUAL'){var _0x202ba4={};_0x202ba4[_0x38eb42[_0x79c9('0x25')]]={'$like':'%'+_0x18f764[_0x79c9('0x2c')][_0x79c9('0x39')]+'%'};return _0x202ba4;}})});}_0x3e56ea=_[_0x79c9('0x3b')]({},_0x3e56ea,_0x18f764[_0x79c9('0x3c')]);var _0x598aa={'where':_0x3e56ea[_0x79c9('0x36')]};return db[_0x79c9('0x3d')][_0x79c9('0x1a')](_0x598aa)[_0x79c9('0x22')](function(_0x3f110e){_0x461bb8[_0x79c9('0x1a')]=_0x3f110e;if(_0x18f764[_0x79c9('0x2c')][_0x79c9('0x3e')]){_0x3e56ea[_0x79c9('0x3f')]=[{'all':!![]}];}return db['AnalyticExtractedReport']['findAll'](_0x3e56ea);})[_0x79c9('0x22')](function(_0x10a3d2){_0x461bb8[_0x79c9('0x40')]=_0x10a3d2;return _0x461bb8;})[_0x79c9('0x22')](respondWithFilteredResult(_0x266cd9,_0x3e56ea))['catch'](handleError(_0x266cd9,null));};exports[_0x79c9('0x41')]=function(_0x170a37,_0x78d571){var _0x23ba77={'raw':!![],'where':{'id':_0x170a37['params']['id']}},_0x3b652a={};_0x3b652a['model']=_[_0x79c9('0x2d')](db[_0x79c9('0x3d')][_0x79c9('0x28')]);_0x3b652a[_0x79c9('0x2c')]=_['keys'](_0x170a37['query']);_0x3b652a[_0x79c9('0x38')]=_[_0x79c9('0x2f')](_0x3b652a['model'],_0x3b652a['query']);_0x23ba77['attributes']=_[_0x79c9('0x2f')](_0x3b652a[_0x79c9('0x2b')],qs[_0x79c9('0x30')](_0x170a37[_0x79c9('0x2c')]['fields']));_0x23ba77['attributes']=_0x23ba77['attributes'][_0x79c9('0x31')]?_0x23ba77[_0x79c9('0x2e')]:_0x3b652a[_0x79c9('0x2b')];if(_0x170a37['query']['includeAll']){_0x23ba77['include']=[{'all':!![]}];}_0x23ba77=_['merge']({},_0x23ba77,_0x170a37[_0x79c9('0x3c')]);return db['AnalyticExtractedReport'][_0x79c9('0x42')](_0x23ba77)[_0x79c9('0x22')](handleEntityNotFound(_0x78d571,null))[_0x79c9('0x22')](respondWithResult(_0x78d571,null))[_0x79c9('0x43')](handleError(_0x78d571,null));};exports['create']=function(_0xd05427,_0x126cc7){return db[_0x79c9('0x3d')][_0x79c9('0x44')](_0xd05427['body'],{})[_0x79c9('0x22')](function(_0x3ca751){var _0x2ece90=_0xd05427[_0x79c9('0x45')][_0x79c9('0x1f')]({'plain':!![]});if(!_0x2ece90)throw new Error(_0x79c9('0x46'));if(_0x2ece90[_0x79c9('0x47')]===_0x79c9('0x45')){var _0x1a516e=_0x3ca751['get']({'plain':!![]});var _0x4924f1=_0x79c9('0x20');return db[_0x79c9('0x48')][_0x79c9('0x42')]({'where':{'name':_0x4924f1,'userProfileId':_0x2ece90[_0x79c9('0x49')]},'raw':!![]})[_0x79c9('0x22')](function(_0xd38f4c){if(_0xd38f4c&&_0xd38f4c[_0x79c9('0x4a')]===0x0){return db[_0x79c9('0x21')]['create']({'name':_0x1a516e[_0x79c9('0x25')],'resourceId':_0x1a516e['id'],'type':_0xd38f4c[_0x79c9('0x25')],'sectionId':_0xd38f4c['id']},{})[_0x79c9('0x22')](function(){return _0x3ca751;});}else{return _0x3ca751;}})['catch'](function(_0x568b8c){logger[_0x79c9('0x4b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x568b8c);throw _0x568b8c;});}return _0x3ca751;})[_0x79c9('0x22')](respondWithResult(_0x126cc7,0xc9))[_0x79c9('0x43')](handleError(_0x126cc7,null));};exports[_0x79c9('0x1d')]=function(_0xfd22c6,_0x58260b){if(_0xfd22c6['body']['id']){delete _0xfd22c6[_0x79c9('0x4c')]['id'];}return db[_0x79c9('0x3d')]['find']({'where':{'id':_0xfd22c6[_0x79c9('0x4d')]['id']}})[_0x79c9('0x22')](handleEntityNotFound(_0x58260b,null))['then'](saveUpdates(_0xfd22c6['body'],null))[_0x79c9('0x22')](respondWithResult(_0x58260b,null))[_0x79c9('0x43')](handleError(_0x58260b,null));};exports['destroy']=function(_0x487f92,_0xbbce50){return db[_0x79c9('0x3d')][_0x79c9('0x42')]({'where':{'id':_0x487f92[_0x79c9('0x4d')]['id']}})[_0x79c9('0x22')](handleEntityNotFound(_0xbbce50,null))['then'](removeEntity(_0xbbce50,null))[_0x79c9('0x43')](handleError(_0xbbce50,null));};exports[_0x79c9('0x4e')]=function(_0x3ca078,_0x1e7898,_0x3a77ad){return db['AnalyticExtractedReport']['find']({'where':{'id':_0x3ca078[_0x79c9('0x4d')]['id']},'attributes':[_0x79c9('0x25'),_0x79c9('0x4f'),_0x79c9('0x50'),_0x79c9('0x51')],'raw':!![]})[_0x79c9('0x22')](handleEntityNotFound(_0x1e7898,null))[_0x79c9('0x22')](function(_0x2a0eb7){if(_0x2a0eb7){if(!fs[_0x79c9('0x52')](path[_0x79c9('0x53')](config[_0x79c9('0x54')],'server/files/reports',_0x2a0eb7[_0x79c9('0x50')]))){throw new db[(_0x79c9('0x55'))][(_0x79c9('0x56'))](_0x79c9('0x57'));}if(_0x3ca078[_0x79c9('0x2c')][_0x79c9('0x58')]){return _0x1e7898[_0x79c9('0x23')](0xc8);}return _0x1e7898[_0x79c9('0x4e')](path[_0x79c9('0x53')](config['root'],'server/files/reports',_0x2a0eb7[_0x79c9('0x50')]),util[_0x79c9('0x59')](_0x79c9('0x5a'),_0x2a0eb7[_0x79c9('0x4f')]||_0x2a0eb7[_0x79c9('0x25')],_0x2a0eb7[_0x79c9('0x51')][_0x79c9('0x5b')]()));}})[_0x79c9('0x43')](handleError(_0x1e7898,null));};