a073922ab0fe82dddff52cd2291a427eda3393ac
[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 _0xd1f4=['squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','status','json','offset','undefined','limit','count','set','apply','destroy','get','ExtractedReports','then','end','sendStatus','error','name','send','map','rawAttributes','fieldName','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','AnalyticExtractedReport','includeAll','include','findAll','rows','catch','params','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','find','download','output','existsSync','join','savename','ValidationError','Report\x20not\x20found\x20or\x20empty','server/files/reports','format','%s.%s','basename','toLowerCase','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash'];(function(_0x8091b3,_0x20b49f){var _0x4b92a4=function(_0x45e4b3){while(--_0x45e4b3){_0x8091b3['push'](_0x8091b3['shift']());}};_0x4b92a4(++_0x20b49f);}(_0xd1f4,0x1c0));var _0x4d1f=function(_0x258a05,_0x11287b){_0x258a05=_0x258a05-0x0;var _0x2531fe=_0xd1f4[_0x258a05];return _0x2531fe;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4d1f('0x0'));var zipdir=require(_0x4d1f('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4d1f('0x2'));var moment=require(_0x4d1f('0x3'));var BPromise=require(_0x4d1f('0x4'));var Mustache=require(_0x4d1f('0x5'));var util=require(_0x4d1f('0x6'));var path=require('path');var sox=require(_0x4d1f('0x7'));var csv=require(_0x4d1f('0x8'));var ejs=require(_0x4d1f('0x9'));var fs=require('fs');var fs_extra=require(_0x4d1f('0xa'));var _=require(_0x4d1f('0xb'));var squel=require(_0x4d1f('0xc'));var crypto=require(_0x4d1f('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x4d1f('0xe'));var toCsv=require(_0x4d1f('0x8'));var querystring=require(_0x4d1f('0xf'));var Papa=require(_0x4d1f('0x10'));var Redis=require(_0x4d1f('0x11'));var authService=require(_0x4d1f('0x12'));var qs=require(_0x4d1f('0x13'));var as=require(_0x4d1f('0x14'));var hardwareService=require(_0x4d1f('0x15'));var logger=require(_0x4d1f('0x16'))('api');var utils=require(_0x4d1f('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x255d01,_0x42d13a){_0x42d13a=_0x42d13a||0xcc;return function(_0x3b88c8){if(_0x3b88c8){return _0x255d01['sendStatus'](_0x42d13a);}return _0x255d01[_0x4d1f('0x18')](_0x42d13a)['end']();};}function respondWithResult(_0x526d86,_0x390bba){_0x390bba=_0x390bba||0xc8;return function(_0x4adb8c){if(_0x4adb8c){return _0x526d86['status'](_0x390bba)[_0x4d1f('0x19')](_0x4adb8c);}};}function respondWithFilteredResult(_0x1536d7,_0x2ff8b5){return function(_0x310448){if(_0x310448){var _0x3bff55=typeof _0x2ff8b5[_0x4d1f('0x1a')]===_0x4d1f('0x1b')&&typeof _0x2ff8b5[_0x4d1f('0x1c')]===_0x4d1f('0x1b');var _0x181981=_0x310448[_0x4d1f('0x1d')];var _0x10823d=_0x3bff55?0x0:_0x2ff8b5[_0x4d1f('0x1a')];var _0x58a8ab=_0x3bff55?_0x310448[_0x4d1f('0x1d')]:_0x2ff8b5[_0x4d1f('0x1a')]+_0x2ff8b5[_0x4d1f('0x1c')];var _0x9fc045;if(_0x58a8ab>=_0x181981){_0x58a8ab=_0x181981;_0x9fc045=0xc8;}else{_0x9fc045=0xce;}_0x1536d7[_0x4d1f('0x18')](_0x9fc045);return _0x1536d7[_0x4d1f('0x1e')]('Content-Range',_0x10823d+'-'+_0x58a8ab+'/'+_0x181981)[_0x4d1f('0x19')](_0x310448);}return null;};}function patchUpdates(_0x1f858d){return function(_0x55438c){try{jsonpatch[_0x4d1f('0x1f')](_0x55438c,_0x1f858d,!![]);}catch(_0x3b7361){return BPromise['reject'](_0x3b7361);}return _0x55438c['save']();};}function saveUpdates(_0x22c993,_0x43a5cc){return function(_0x3d4070){if(_0x3d4070){return _0x3d4070['update'](_0x22c993)['then'](function(_0x43b7b0){return _0x43b7b0;});}return null;};}function removeEntity(_0x314238,_0x56df6a){return function(_0x2ac7ea){if(_0x2ac7ea){return _0x2ac7ea[_0x4d1f('0x20')]()['then'](function(){var _0x19a941=_0x2ac7ea[_0x4d1f('0x21')]({'plain':!![]});var _0x457681=_0x4d1f('0x22');return db['UserProfileResource']['destroy']({'where':{'type':_0x457681,'resourceId':_0x19a941['id']}})[_0x4d1f('0x23')](function(){return _0x2ac7ea;});})[_0x4d1f('0x23')](function(){_0x314238['status'](0xcc)[_0x4d1f('0x24')]();});}};}function handleEntityNotFound(_0x46439a,_0x2ee926){return function(_0x15a5f1){if(!_0x15a5f1){_0x46439a[_0x4d1f('0x25')](0x194);}return _0x15a5f1;};}function handleError(_0x27b92f,_0x3182ac){_0x3182ac=_0x3182ac||0x1f4;return function(_0x359390){logger[_0x4d1f('0x26')](_0x359390['stack']);if(_0x359390[_0x4d1f('0x27')]){delete _0x359390[_0x4d1f('0x27')];}_0x27b92f[_0x4d1f('0x18')](_0x3182ac)[_0x4d1f('0x28')](_0x359390);};}exports['index']=function(_0x3d5106,_0x37a3d2){var _0x41184f={},_0x50257a={},_0x4096a8={'count':0x0,'rows':[]};var _0x31bd32=_[_0x4d1f('0x29')](db['AnalyticExtractedReport'][_0x4d1f('0x2a')],function(_0x1c0fcc){return{'name':_0x1c0fcc[_0x4d1f('0x2b')],'type':_0x1c0fcc['type'][_0x4d1f('0x2c')]};});_0x50257a['model']=_[_0x4d1f('0x29')](_0x31bd32,_0x4d1f('0x27'));_0x50257a['query']=_[_0x4d1f('0x2d')](_0x3d5106[_0x4d1f('0x2e')]);_0x50257a[_0x4d1f('0x2f')]=_[_0x4d1f('0x30')](_0x50257a[_0x4d1f('0x31')],_0x50257a[_0x4d1f('0x2e')]);_0x41184f[_0x4d1f('0x32')]=_[_0x4d1f('0x30')](_0x50257a[_0x4d1f('0x31')],qs[_0x4d1f('0x33')](_0x3d5106[_0x4d1f('0x2e')]['fields']));_0x41184f['attributes']=_0x41184f[_0x4d1f('0x32')][_0x4d1f('0x34')]?_0x41184f[_0x4d1f('0x32')]:_0x50257a[_0x4d1f('0x31')];if(!_0x3d5106['query'][_0x4d1f('0x35')](_0x4d1f('0x36'))){_0x41184f[_0x4d1f('0x1c')]=qs['limit'](_0x3d5106[_0x4d1f('0x2e')][_0x4d1f('0x1c')]);_0x41184f[_0x4d1f('0x1a')]=qs['offset'](_0x3d5106[_0x4d1f('0x2e')][_0x4d1f('0x1a')]);}_0x41184f[_0x4d1f('0x37')]=qs['sort'](_0x3d5106[_0x4d1f('0x2e')][_0x4d1f('0x38')]);_0x41184f[_0x4d1f('0x39')]=qs[_0x4d1f('0x2f')](_[_0x4d1f('0x3a')](_0x3d5106[_0x4d1f('0x2e')],_0x50257a[_0x4d1f('0x2f')]),_0x31bd32);if(_0x3d5106[_0x4d1f('0x2e')][_0x4d1f('0x3b')]){_0x41184f['where']=_[_0x4d1f('0x3c')](_0x41184f[_0x4d1f('0x39')],{'$or':_[_0x4d1f('0x29')](_0x31bd32,function(_0x137a92){if(_0x137a92[_0x4d1f('0x3d')]!==_0x4d1f('0x3e')){var _0x36e366={};_0x36e366[_0x137a92[_0x4d1f('0x27')]]={'$like':'%'+_0x3d5106[_0x4d1f('0x2e')][_0x4d1f('0x3b')]+'%'};return _0x36e366;}})});}_0x41184f=_[_0x4d1f('0x3c')]({},_0x41184f,_0x3d5106[_0x4d1f('0x3f')]);var _0x2ca4ce={'where':_0x41184f[_0x4d1f('0x39')]};return db[_0x4d1f('0x40')][_0x4d1f('0x1d')](_0x2ca4ce)[_0x4d1f('0x23')](function(_0x159d52){_0x4096a8[_0x4d1f('0x1d')]=_0x159d52;if(_0x3d5106[_0x4d1f('0x2e')][_0x4d1f('0x41')]){_0x41184f[_0x4d1f('0x42')]=[{'all':!![]}];}return db['AnalyticExtractedReport'][_0x4d1f('0x43')](_0x41184f);})[_0x4d1f('0x23')](function(_0x2bc99f){_0x4096a8[_0x4d1f('0x44')]=_0x2bc99f;return _0x4096a8;})['then'](respondWithFilteredResult(_0x37a3d2,_0x41184f))[_0x4d1f('0x45')](handleError(_0x37a3d2,null));};exports['show']=function(_0x566264,_0x1c95ae){var _0x4c9180={'raw':!![],'where':{'id':_0x566264[_0x4d1f('0x46')]['id']}},_0x225e85={};_0x225e85['model']=_[_0x4d1f('0x2d')](db['AnalyticExtractedReport'][_0x4d1f('0x2a')]);_0x225e85['query']=_[_0x4d1f('0x2d')](_0x566264[_0x4d1f('0x2e')]);_0x225e85['filters']=_[_0x4d1f('0x30')](_0x225e85[_0x4d1f('0x31')],_0x225e85[_0x4d1f('0x2e')]);_0x4c9180['attributes']=_[_0x4d1f('0x30')](_0x225e85[_0x4d1f('0x31')],qs[_0x4d1f('0x33')](_0x566264[_0x4d1f('0x2e')]['fields']));_0x4c9180['attributes']=_0x4c9180[_0x4d1f('0x32')][_0x4d1f('0x34')]?_0x4c9180[_0x4d1f('0x32')]:_0x225e85['model'];if(_0x566264[_0x4d1f('0x2e')]['includeAll']){_0x4c9180['include']=[{'all':!![]}];}_0x4c9180=_[_0x4d1f('0x3c')]({},_0x4c9180,_0x566264['options']);return db['AnalyticExtractedReport']['find'](_0x4c9180)[_0x4d1f('0x23')](handleEntityNotFound(_0x1c95ae,null))['then'](respondWithResult(_0x1c95ae,null))['catch'](handleError(_0x1c95ae,null));};exports['create']=function(_0x2adb8f,_0x3eea43){return db[_0x4d1f('0x40')][_0x4d1f('0x47')](_0x2adb8f[_0x4d1f('0x48')],{})[_0x4d1f('0x23')](function(_0x1eedc7){var _0x1dafa1=_0x2adb8f[_0x4d1f('0x49')][_0x4d1f('0x21')]({'plain':!![]});if(!_0x1dafa1)throw new Error(_0x4d1f('0x4a'));if(_0x1dafa1['role']==='user'){var _0x4f8801=_0x1eedc7[_0x4d1f('0x21')]({'plain':!![]});var _0x33cf28=_0x4d1f('0x22');return db['UserProfileSection']['find']({'where':{'name':_0x33cf28,'userProfileId':_0x1dafa1[_0x4d1f('0x4b')]},'raw':!![]})[_0x4d1f('0x23')](function(_0xe4cca7){if(_0xe4cca7&&_0xe4cca7['autoAssociation']===0x0){return db[_0x4d1f('0x4c')]['create']({'name':_0x4f8801['name'],'resourceId':_0x4f8801['id'],'type':_0xe4cca7[_0x4d1f('0x27')],'sectionId':_0xe4cca7['id']},{})[_0x4d1f('0x23')](function(){return _0x1eedc7;});}else{return _0x1eedc7;}})[_0x4d1f('0x45')](function(_0x3f26c6){logger[_0x4d1f('0x26')](_0x4d1f('0x4d'),_0x3f26c6);throw _0x3f26c6;});}return _0x1eedc7;})[_0x4d1f('0x23')](respondWithResult(_0x3eea43,0xc9))['catch'](handleError(_0x3eea43,null));};exports[_0x4d1f('0x4e')]=function(_0x12f5b3,_0x1d55b2){if(_0x12f5b3['body']['id']){delete _0x12f5b3[_0x4d1f('0x48')]['id'];}return db['AnalyticExtractedReport'][_0x4d1f('0x4f')]({'where':{'id':_0x12f5b3[_0x4d1f('0x46')]['id']}})[_0x4d1f('0x23')](handleEntityNotFound(_0x1d55b2,null))[_0x4d1f('0x23')](saveUpdates(_0x12f5b3[_0x4d1f('0x48')],null))[_0x4d1f('0x23')](respondWithResult(_0x1d55b2,null))['catch'](handleError(_0x1d55b2,null));};exports['destroy']=function(_0x315af9,_0x4156a5){return db[_0x4d1f('0x40')]['find']({'where':{'id':_0x315af9[_0x4d1f('0x46')]['id']}})[_0x4d1f('0x23')](handleEntityNotFound(_0x4156a5,null))['then'](removeEntity(_0x4156a5,null))[_0x4d1f('0x45')](handleError(_0x4156a5,null));};exports[_0x4d1f('0x50')]=function(_0x439235,_0x30ec07,_0x226703){return db[_0x4d1f('0x40')][_0x4d1f('0x4f')]({'where':{'id':_0x439235[_0x4d1f('0x46')]['id']},'attributes':['name','basename','savename',_0x4d1f('0x51')],'raw':!![]})[_0x4d1f('0x23')](handleEntityNotFound(_0x30ec07,null))[_0x4d1f('0x23')](function(_0x24f2ca){if(_0x24f2ca){if(!fs[_0x4d1f('0x52')](path[_0x4d1f('0x53')](config['root'],'server/files/reports',_0x24f2ca[_0x4d1f('0x54')]))){throw new db['Sequelize'][(_0x4d1f('0x55'))](_0x4d1f('0x56'));}if(_0x439235[_0x4d1f('0x2e')]['exists']){return _0x30ec07[_0x4d1f('0x25')](0xc8);}return _0x30ec07[_0x4d1f('0x50')](path[_0x4d1f('0x53')](config['root'],_0x4d1f('0x57'),_0x24f2ca[_0x4d1f('0x54')]),util[_0x4d1f('0x58')](_0x4d1f('0x59'),_0x24f2ca[_0x4d1f('0x5a')]||_0x24f2ca[_0x4d1f('0x27')],_0x24f2ca[_0x4d1f('0x51')][_0x4d1f('0x5b')]()));}})['catch'](handleError(_0x30ec07,null));};