Built motion from commit 511216ff.|2.6.34
[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 _0xaf76=['sox','fs-extra','lodash','crypto','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','update','ExtractedReports','destroy','then','stack','name','index','map','AnalyticExtractedReport','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','findAll','rows','catch','show','params','include','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','get','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','download','basename','savename','existsSync','join','root','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','server/files/reports','%s.%s','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path'];(function(_0x123599,_0x374e14){var _0x3bf01d=function(_0x60b9bc){while(--_0x60b9bc){_0x123599['push'](_0x123599['shift']());}};_0x3bf01d(++_0x374e14);}(_0xaf76,0xb0));var _0x6af7=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xaf76[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x6af7('0x0'));var rimraf=require(_0x6af7('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6af7('0x2'));var rp=require(_0x6af7('0x3'));var moment=require(_0x6af7('0x4'));var BPromise=require(_0x6af7('0x5'));var Mustache=require('mustache');var util=require(_0x6af7('0x6'));var path=require(_0x6af7('0x7'));var sox=require(_0x6af7('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6af7('0x9'));var _=require(_0x6af7('0xa'));var squel=require('squel');var crypto=require(_0x6af7('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x6af7('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x6af7('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0x6af7('0xe'));var hardwareService=require(_0x6af7('0xf'));var logger=require(_0x6af7('0x10'))('api');var utils=require('../../config/utils');var config=require(_0x6af7('0x11'));var licenseUtil=require('../../config/license/util');var db=require(_0x6af7('0x12'))['db'];function respondWithStatusCode(_0x22135d,_0x1c3604){_0x1c3604=_0x1c3604||0xcc;return function(_0x3d4301){if(_0x3d4301){return _0x22135d[_0x6af7('0x13')](_0x1c3604);}return _0x22135d[_0x6af7('0x14')](_0x1c3604)[_0x6af7('0x15')]();};}function respondWithResult(_0x447ccf,_0x1f4eef){_0x1f4eef=_0x1f4eef||0xc8;return function(_0x507372){if(_0x507372){return _0x447ccf['status'](_0x1f4eef)[_0x6af7('0x16')](_0x507372);}};}function respondWithFilteredResult(_0x3a94a4,_0x4e7f76){return function(_0x432896){if(_0x432896){var _0x3fa345=typeof _0x4e7f76[_0x6af7('0x17')]===_0x6af7('0x18')&&typeof _0x4e7f76[_0x6af7('0x19')]===_0x6af7('0x18');var _0x57d79d=_0x432896[_0x6af7('0x1a')];var _0x351fdb=_0x3fa345?0x0:_0x4e7f76[_0x6af7('0x17')];var _0x495c75=_0x3fa345?_0x432896[_0x6af7('0x1a')]:_0x4e7f76[_0x6af7('0x17')]+_0x4e7f76[_0x6af7('0x19')];var _0x4a071a;if(_0x495c75>=_0x57d79d){_0x495c75=_0x57d79d;_0x4a071a=0xc8;}else{_0x4a071a=0xce;}_0x3a94a4[_0x6af7('0x14')](_0x4a071a);return _0x3a94a4[_0x6af7('0x1b')]('Content-Range',_0x351fdb+'-'+_0x495c75+'/'+_0x57d79d)[_0x6af7('0x16')](_0x432896);}return null;};}function patchUpdates(_0x50e996){return function(_0x499567){try{jsonpatch[_0x6af7('0x1c')](_0x499567,_0x50e996,!![]);}catch(_0x202e4c){return BPromise[_0x6af7('0x1d')](_0x202e4c);}return _0x499567[_0x6af7('0x1e')]();};}function saveUpdates(_0x54ecdf,_0x3b550d){return function(_0x23e8b5){if(_0x23e8b5){return _0x23e8b5[_0x6af7('0x1f')](_0x54ecdf)['then'](function(_0xb93ce2){return _0xb93ce2;});}return null;};}function removeEntity(_0xd8eb5b,_0x1243d6){return function(_0x38b97c){if(_0x38b97c){return _0x38b97c['destroy']()['then'](function(){var _0x32642f=_0x38b97c['get']({'plain':!![]});var _0x40c380=_0x6af7('0x20');return db['UserProfileResource'][_0x6af7('0x21')]({'where':{'type':_0x40c380,'resourceId':_0x32642f['id']}})['then'](function(){return _0x38b97c;});})[_0x6af7('0x22')](function(){_0xd8eb5b[_0x6af7('0x14')](0xcc)[_0x6af7('0x15')]();});}};}function handleEntityNotFound(_0x15d50d,_0x262654){return function(_0x46e99f){if(!_0x46e99f){_0x15d50d[_0x6af7('0x13')](0x194);}return _0x46e99f;};}function handleError(_0x57023e,_0x7b6191){_0x7b6191=_0x7b6191||0x1f4;return function(_0x435cc6){logger['error'](_0x435cc6[_0x6af7('0x23')]);if(_0x435cc6[_0x6af7('0x24')]){delete _0x435cc6[_0x6af7('0x24')];}_0x57023e[_0x6af7('0x14')](_0x7b6191)['send'](_0x435cc6);};}exports[_0x6af7('0x25')]=function(_0x3304a3,_0x1adb71){var _0x1648f5={},_0x489c22={},_0xf562fe={'count':0x0,'rows':[]};var _0x26ace8=_[_0x6af7('0x26')](db[_0x6af7('0x27')]['rawAttributes'],function(_0x56a35b){return{'name':_0x56a35b[_0x6af7('0x28')],'type':_0x56a35b[_0x6af7('0x29')][_0x6af7('0x2a')]};});_0x489c22[_0x6af7('0x2b')]=_[_0x6af7('0x26')](_0x26ace8,_0x6af7('0x24'));_0x489c22[_0x6af7('0x2c')]=_[_0x6af7('0x2d')](_0x3304a3[_0x6af7('0x2c')]);_0x489c22[_0x6af7('0x2e')]=_['intersection'](_0x489c22['model'],_0x489c22[_0x6af7('0x2c')]);_0x1648f5[_0x6af7('0x2f')]=_[_0x6af7('0x30')](_0x489c22['model'],qs[_0x6af7('0x31')](_0x3304a3['query'][_0x6af7('0x31')]));_0x1648f5[_0x6af7('0x2f')]=_0x1648f5[_0x6af7('0x2f')][_0x6af7('0x32')]?_0x1648f5[_0x6af7('0x2f')]:_0x489c22['model'];if(!_0x3304a3[_0x6af7('0x2c')][_0x6af7('0x33')](_0x6af7('0x34'))){_0x1648f5[_0x6af7('0x19')]=qs[_0x6af7('0x19')](_0x3304a3[_0x6af7('0x2c')][_0x6af7('0x19')]);_0x1648f5[_0x6af7('0x17')]=qs[_0x6af7('0x17')](_0x3304a3[_0x6af7('0x2c')][_0x6af7('0x17')]);}_0x1648f5[_0x6af7('0x35')]=qs[_0x6af7('0x36')](_0x3304a3[_0x6af7('0x2c')][_0x6af7('0x36')]);_0x1648f5[_0x6af7('0x37')]=qs[_0x6af7('0x2e')](_[_0x6af7('0x38')](_0x3304a3[_0x6af7('0x2c')],_0x489c22[_0x6af7('0x2e')]),_0x26ace8);if(_0x3304a3['query'][_0x6af7('0x39')]){_0x1648f5['where']=_[_0x6af7('0x3a')](_0x1648f5[_0x6af7('0x37')],{'$or':_[_0x6af7('0x26')](_0x26ace8,function(_0x10cda5){if(_0x10cda5['type']!=='VIRTUAL'){var _0x106fa5={};_0x106fa5[_0x10cda5[_0x6af7('0x24')]]={'$like':'%'+_0x3304a3[_0x6af7('0x2c')][_0x6af7('0x39')]+'%'};return _0x106fa5;}})});}_0x1648f5=_[_0x6af7('0x3a')]({},_0x1648f5,_0x3304a3[_0x6af7('0x3b')]);var _0x37a6bd={'where':_0x1648f5[_0x6af7('0x37')]};return db[_0x6af7('0x27')][_0x6af7('0x1a')](_0x37a6bd)[_0x6af7('0x22')](function(_0x2426b5){_0xf562fe[_0x6af7('0x1a')]=_0x2426b5;if(_0x3304a3[_0x6af7('0x2c')][_0x6af7('0x3c')]){_0x1648f5['include']=[{'all':!![]}];}return db['AnalyticExtractedReport'][_0x6af7('0x3d')](_0x1648f5);})[_0x6af7('0x22')](function(_0x193cc4){_0xf562fe[_0x6af7('0x3e')]=_0x193cc4;return _0xf562fe;})['then'](respondWithFilteredResult(_0x1adb71,_0x1648f5))[_0x6af7('0x3f')](handleError(_0x1adb71,null));};exports[_0x6af7('0x40')]=function(_0x335c51,_0x1a4515){var _0x45bb37={'raw':!![],'where':{'id':_0x335c51[_0x6af7('0x41')]['id']}},_0x1d5a76={};_0x1d5a76[_0x6af7('0x2b')]=_[_0x6af7('0x2d')](db[_0x6af7('0x27')]['rawAttributes']);_0x1d5a76[_0x6af7('0x2c')]=_[_0x6af7('0x2d')](_0x335c51['query']);_0x1d5a76[_0x6af7('0x2e')]=_['intersection'](_0x1d5a76['model'],_0x1d5a76[_0x6af7('0x2c')]);_0x45bb37[_0x6af7('0x2f')]=_[_0x6af7('0x30')](_0x1d5a76[_0x6af7('0x2b')],qs[_0x6af7('0x31')](_0x335c51[_0x6af7('0x2c')][_0x6af7('0x31')]));_0x45bb37[_0x6af7('0x2f')]=_0x45bb37[_0x6af7('0x2f')][_0x6af7('0x32')]?_0x45bb37[_0x6af7('0x2f')]:_0x1d5a76[_0x6af7('0x2b')];if(_0x335c51[_0x6af7('0x2c')][_0x6af7('0x3c')]){_0x45bb37[_0x6af7('0x42')]=[{'all':!![]}];}_0x45bb37=_[_0x6af7('0x3a')]({},_0x45bb37,_0x335c51['options']);return db['AnalyticExtractedReport'][_0x6af7('0x43')](_0x45bb37)['then'](handleEntityNotFound(_0x1a4515,null))[_0x6af7('0x22')](respondWithResult(_0x1a4515,null))[_0x6af7('0x3f')](handleError(_0x1a4515,null));};exports[_0x6af7('0x44')]=function(_0x4e73c9,_0x3f738f){return db[_0x6af7('0x27')][_0x6af7('0x44')](_0x4e73c9[_0x6af7('0x45')],{})[_0x6af7('0x22')](function(_0x4e0e50){var _0x43ccf5=_0x4e73c9['user']['get']({'plain':!![]});if(!_0x43ccf5)throw new Error(_0x6af7('0x46'));if(_0x43ccf5[_0x6af7('0x47')]===_0x6af7('0x48')){var _0x3c737d=_0x4e0e50[_0x6af7('0x49')]({'plain':!![]});var _0x59ffbc='ExtractedReports';return db[_0x6af7('0x4a')][_0x6af7('0x43')]({'where':{'name':_0x59ffbc,'userProfileId':_0x43ccf5[_0x6af7('0x4b')]},'raw':!![]})[_0x6af7('0x22')](function(_0x332a60){if(_0x332a60&&_0x332a60[_0x6af7('0x4c')]===0x0){return db[_0x6af7('0x4d')]['create']({'name':_0x3c737d[_0x6af7('0x24')],'resourceId':_0x3c737d['id'],'type':_0x332a60[_0x6af7('0x24')],'sectionId':_0x332a60['id']},{})[_0x6af7('0x22')](function(){return _0x4e0e50;});}else{return _0x4e0e50;}})[_0x6af7('0x3f')](function(_0x3acb42){logger[_0x6af7('0x4e')](_0x6af7('0x4f'),_0x3acb42);throw _0x3acb42;});}return _0x4e0e50;})[_0x6af7('0x22')](respondWithResult(_0x3f738f,0xc9))[_0x6af7('0x3f')](handleError(_0x3f738f,null));};exports[_0x6af7('0x1f')]=function(_0xaf09b1,_0x36528f){if(_0xaf09b1[_0x6af7('0x45')]['id']){delete _0xaf09b1['body']['id'];}return db[_0x6af7('0x27')][_0x6af7('0x43')]({'where':{'id':_0xaf09b1[_0x6af7('0x41')]['id']}})['then'](handleEntityNotFound(_0x36528f,null))[_0x6af7('0x22')](saveUpdates(_0xaf09b1['body'],null))['then'](respondWithResult(_0x36528f,null))[_0x6af7('0x3f')](handleError(_0x36528f,null));};exports[_0x6af7('0x21')]=function(_0x24534a,_0x1e7e73){return db[_0x6af7('0x27')][_0x6af7('0x43')]({'where':{'id':_0x24534a[_0x6af7('0x41')]['id']}})[_0x6af7('0x22')](handleEntityNotFound(_0x1e7e73,null))[_0x6af7('0x22')](removeEntity(_0x1e7e73,null))[_0x6af7('0x3f')](handleError(_0x1e7e73,null));};exports[_0x6af7('0x50')]=function(_0x584c14,_0x423e86,_0x21e1cb){return db[_0x6af7('0x27')][_0x6af7('0x43')]({'where':{'id':_0x584c14[_0x6af7('0x41')]['id']},'attributes':[_0x6af7('0x24'),_0x6af7('0x51'),_0x6af7('0x52'),'output'],'raw':!![]})[_0x6af7('0x22')](handleEntityNotFound(_0x423e86,null))['then'](function(_0x3e2a4e){if(_0x3e2a4e){if(!fs[_0x6af7('0x53')](path[_0x6af7('0x54')](config[_0x6af7('0x55')],'server/files/reports',_0x3e2a4e[_0x6af7('0x52')]))){throw new db[(_0x6af7('0x56'))][(_0x6af7('0x57'))](_0x6af7('0x58'));}if(_0x584c14[_0x6af7('0x2c')][_0x6af7('0x59')]){return _0x423e86[_0x6af7('0x13')](0xc8);}return _0x423e86[_0x6af7('0x50')](path[_0x6af7('0x54')](config[_0x6af7('0x55')],_0x6af7('0x5a'),_0x3e2a4e['savename']),util['format'](_0x6af7('0x5b'),_0x3e2a4e[_0x6af7('0x51')]||_0x3e2a4e[_0x6af7('0x24')],_0x3e2a4e['output']['toLowerCase']()));}})[_0x6af7('0x3f')](handleError(_0x423e86,null));};