0e23b3e3a064507484b210ff6066f6531bfeb76b
[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 _0x1ef9=['jsforce','desk.js','papaparse','../../components/auth/service','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','reject','save','update','destroy','then','get','UserProfileResource','error','stack','name','send','index','map','AnalyticExtractedReport','fieldName','type','key','query','keys','filters','model','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','rawAttributes','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','ExtractedReports','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','savename','output','existsSync','join','root','server/files/reports','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','download','format','basename','toLowerCase','html-pdf','eml-format','rimraf','moment','mustache','util','path','sox','to-csv','ejs','lodash'];(function(_0xe8a8df,_0x231533){var _0x1169d1=function(_0x5abf05){while(--_0x5abf05){_0xe8a8df['push'](_0xe8a8df['shift']());}};_0x1169d1(++_0x231533);}(_0x1ef9,0x1c6));var _0x91ef=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1ef9[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x91ef('0x0'));var emlformat=require(_0x91ef('0x1'));var rimraf=require(_0x91ef('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x91ef('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x91ef('0x4'));var util=require(_0x91ef('0x5'));var path=require(_0x91ef('0x6'));var sox=require(_0x91ef('0x7'));var csv=require(_0x91ef('0x8'));var ejs=require(_0x91ef('0x9'));var fs=require('fs');var _=require(_0x91ef('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x91ef('0xb'));var deskjs=require(_0x91ef('0xc'));var toCsv=require(_0x91ef('0x8'));var querystring=require('querystring');var Papa=require(_0x91ef('0xd'));var Redis=require('ioredis');var authService=require(_0x91ef('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x91ef('0xf'))(_0x91ef('0x10'));var utils=require('../../config/utils');var config=require(_0x91ef('0x11'));var licenseUtil=require(_0x91ef('0x12'));var db=require(_0x91ef('0x13'))['db'];function respondWithStatusCode(_0x26c88c,_0x4f492a){_0x4f492a=_0x4f492a||0xcc;return function(_0x5a699e){if(_0x5a699e){return _0x26c88c[_0x91ef('0x14')](_0x4f492a);}return _0x26c88c[_0x91ef('0x15')](_0x4f492a)[_0x91ef('0x16')]();};}function respondWithResult(_0x49387c,_0x2d7c03){_0x2d7c03=_0x2d7c03||0xc8;return function(_0x335efc){if(_0x335efc){return _0x49387c[_0x91ef('0x15')](_0x2d7c03)[_0x91ef('0x17')](_0x335efc);}};}function respondWithFilteredResult(_0x562eea,_0x430199){return function(_0x1e5175){if(_0x1e5175){var _0x1b3e86=_0x1e5175[_0x91ef('0x18')],_0x4b9bd9=_0x430199[_0x91ef('0x19')],_0xd7bf4d=_0x430199['offset']+_0x430199[_0x91ef('0x1a')],_0x5b870d;if(_0xd7bf4d>=_0x1b3e86){_0xd7bf4d=_0x1b3e86;_0x5b870d=0xc8;}else{_0x5b870d=0xce;}_0x562eea[_0x91ef('0x15')](_0x5b870d);return _0x562eea[_0x91ef('0x1b')](_0x91ef('0x1c'),_0x4b9bd9+'-'+_0xd7bf4d+'/'+_0x1b3e86)[_0x91ef('0x17')](_0x1e5175);}return null;};}function patchUpdates(_0x14fb3f){return function(_0x37ee1f){try{jsonpatch['apply'](_0x37ee1f,_0x14fb3f,!![]);}catch(_0x3a6dc5){return BPromise[_0x91ef('0x1d')](_0x3a6dc5);}return _0x37ee1f[_0x91ef('0x1e')]();};}function saveUpdates(_0x146068,_0x56702a){return function(_0x37ab7e){if(_0x37ab7e){return _0x37ab7e[_0x91ef('0x1f')](_0x146068)['then'](function(_0x20c461){return _0x20c461;});}return null;};}function removeEntity(_0x2905da,_0x45c51c){return function(_0x36c642){if(_0x36c642){return _0x36c642[_0x91ef('0x20')]()[_0x91ef('0x21')](function(){var _0x3eae73=_0x36c642[_0x91ef('0x22')]({'plain':!![]});var _0x3010cb='ExtractedReports';return db[_0x91ef('0x23')][_0x91ef('0x20')]({'where':{'type':_0x3010cb,'resourceId':_0x3eae73['id']}})[_0x91ef('0x21')](function(){return _0x36c642;});})['then'](function(){_0x2905da['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1f307b,_0x1ca321){return function(_0x12bfec){if(!_0x12bfec){_0x1f307b[_0x91ef('0x14')](0x194);}return _0x12bfec;};}function handleError(_0x522a3,_0x4787c8){_0x4787c8=_0x4787c8||0x1f4;return function(_0x10c379){logger[_0x91ef('0x24')](_0x10c379[_0x91ef('0x25')]);if(_0x10c379['name']){delete _0x10c379[_0x91ef('0x26')];}_0x522a3[_0x91ef('0x15')](_0x4787c8)[_0x91ef('0x27')](_0x10c379);};}exports[_0x91ef('0x28')]=function(_0x22472d,_0x45620c){var _0x1aec7e={},_0x351557={},_0x3c986b={'count':0x0,'rows':[]};var _0x26d759=_[_0x91ef('0x29')](db[_0x91ef('0x2a')]['rawAttributes'],function(_0x5a1a7b){return{'name':_0x5a1a7b[_0x91ef('0x2b')],'type':_0x5a1a7b[_0x91ef('0x2c')][_0x91ef('0x2d')]};});_0x351557['model']=_[_0x91ef('0x29')](_0x26d759,_0x91ef('0x26'));_0x351557[_0x91ef('0x2e')]=_[_0x91ef('0x2f')](_0x22472d[_0x91ef('0x2e')]);_0x351557[_0x91ef('0x30')]=_['intersection'](_0x351557[_0x91ef('0x31')],_0x351557[_0x91ef('0x2e')]);_0x1aec7e[_0x91ef('0x32')]=_[_0x91ef('0x33')](_0x351557['model'],qs['fields'](_0x22472d['query'][_0x91ef('0x34')]));_0x1aec7e[_0x91ef('0x32')]=_0x1aec7e[_0x91ef('0x32')]['length']?_0x1aec7e[_0x91ef('0x32')]:_0x351557['model'];if(!_0x22472d['query'][_0x91ef('0x35')](_0x91ef('0x36'))){_0x1aec7e[_0x91ef('0x1a')]=qs['limit'](_0x22472d[_0x91ef('0x2e')][_0x91ef('0x1a')]);_0x1aec7e['offset']=qs[_0x91ef('0x19')](_0x22472d[_0x91ef('0x2e')]['offset']);}_0x1aec7e[_0x91ef('0x37')]=qs['sort'](_0x22472d[_0x91ef('0x2e')][_0x91ef('0x38')]);_0x1aec7e[_0x91ef('0x39')]=qs['filters'](_[_0x91ef('0x3a')](_0x22472d['query'],_0x351557[_0x91ef('0x30')]),_0x26d759);if(_0x22472d[_0x91ef('0x2e')]['filter']){_0x1aec7e[_0x91ef('0x39')]=_[_0x91ef('0x3b')](_0x1aec7e[_0x91ef('0x39')],{'$or':_[_0x91ef('0x29')](_0x26d759,function(_0x7b8e54){if(_0x7b8e54['type']!==_0x91ef('0x3c')){var _0x336e8a={};_0x336e8a[_0x7b8e54[_0x91ef('0x26')]]={'$like':'%'+_0x22472d[_0x91ef('0x2e')]['filter']+'%'};return _0x336e8a;}})});}_0x1aec7e=_['merge']({},_0x1aec7e,_0x22472d[_0x91ef('0x3d')]);var _0x279d4f={'where':_0x1aec7e[_0x91ef('0x39')]};return db[_0x91ef('0x2a')]['count'](_0x279d4f)['then'](function(_0x7f9c9a){_0x3c986b['count']=_0x7f9c9a;if(_0x22472d[_0x91ef('0x2e')][_0x91ef('0x3e')]){_0x1aec7e[_0x91ef('0x3f')]=[{'all':!![]}];}return db['AnalyticExtractedReport'][_0x91ef('0x40')](_0x1aec7e);})[_0x91ef('0x21')](function(_0x5542ff){_0x3c986b[_0x91ef('0x41')]=_0x5542ff;return _0x3c986b;})[_0x91ef('0x21')](respondWithFilteredResult(_0x45620c,_0x1aec7e))[_0x91ef('0x42')](handleError(_0x45620c,null));};exports['show']=function(_0x134e6f,_0x1901ce){var _0x4151ed={'raw':!![],'where':{'id':_0x134e6f[_0x91ef('0x43')]['id']}},_0x374a27={};_0x374a27[_0x91ef('0x31')]=_[_0x91ef('0x2f')](db[_0x91ef('0x2a')][_0x91ef('0x44')]);_0x374a27[_0x91ef('0x2e')]=_[_0x91ef('0x2f')](_0x134e6f['query']);_0x374a27[_0x91ef('0x30')]=_[_0x91ef('0x33')](_0x374a27['model'],_0x374a27[_0x91ef('0x2e')]);_0x4151ed[_0x91ef('0x32')]=_[_0x91ef('0x33')](_0x374a27[_0x91ef('0x31')],qs[_0x91ef('0x34')](_0x134e6f[_0x91ef('0x2e')]['fields']));_0x4151ed['attributes']=_0x4151ed['attributes']['length']?_0x4151ed['attributes']:_0x374a27[_0x91ef('0x31')];if(_0x134e6f['query'][_0x91ef('0x3e')]){_0x4151ed[_0x91ef('0x3f')]=[{'all':!![]}];}_0x4151ed=_['merge']({},_0x4151ed,_0x134e6f[_0x91ef('0x3d')]);return db[_0x91ef('0x2a')][_0x91ef('0x45')](_0x4151ed)[_0x91ef('0x21')](handleEntityNotFound(_0x1901ce,null))[_0x91ef('0x21')](respondWithResult(_0x1901ce,null))['catch'](handleError(_0x1901ce,null));};exports[_0x91ef('0x46')]=function(_0x258f1e,_0x31ed42){return db[_0x91ef('0x2a')][_0x91ef('0x46')](_0x258f1e[_0x91ef('0x47')],{})['then'](function(_0x3eb291){var _0x5d8dd7=_0x258f1e['user'][_0x91ef('0x22')]({'plain':!![]});if(!_0x5d8dd7)throw new Error(_0x91ef('0x48'));if(_0x5d8dd7[_0x91ef('0x49')]===_0x91ef('0x4a')){var _0x217f0d=_0x3eb291[_0x91ef('0x22')]({'plain':!![]});var _0x313210=_0x91ef('0x4b');return db['UserProfileSection'][_0x91ef('0x45')]({'where':{'name':_0x313210,'userProfileId':_0x5d8dd7[_0x91ef('0x4c')]},'raw':!![]})[_0x91ef('0x21')](function(_0x55f5e1){if(_0x55f5e1&&_0x55f5e1[_0x91ef('0x4d')]===0x0){return db[_0x91ef('0x23')][_0x91ef('0x46')]({'name':_0x217f0d['name'],'resourceId':_0x217f0d['id'],'type':_0x55f5e1[_0x91ef('0x26')],'sectionId':_0x55f5e1['id']},{})['then'](function(){return _0x3eb291;});}else{return _0x3eb291;}})[_0x91ef('0x42')](function(_0x2e9967){logger['error'](_0x91ef('0x4e'),_0x2e9967);throw _0x2e9967;});}return _0x3eb291;})['then'](respondWithResult(_0x31ed42,0xc9))[_0x91ef('0x42')](handleError(_0x31ed42,null));};exports[_0x91ef('0x1f')]=function(_0x364ad6,_0x36a528){if(_0x364ad6['body']['id']){delete _0x364ad6[_0x91ef('0x47')]['id'];}return db[_0x91ef('0x2a')][_0x91ef('0x45')]({'where':{'id':_0x364ad6[_0x91ef('0x43')]['id']}})[_0x91ef('0x21')](handleEntityNotFound(_0x36a528,null))[_0x91ef('0x21')](saveUpdates(_0x364ad6[_0x91ef('0x47')],null))['then'](respondWithResult(_0x36a528,null))[_0x91ef('0x42')](handleError(_0x36a528,null));};exports[_0x91ef('0x20')]=function(_0x5060c5,_0x41f71f){return db['AnalyticExtractedReport'][_0x91ef('0x45')]({'where':{'id':_0x5060c5['params']['id']}})[_0x91ef('0x21')](handleEntityNotFound(_0x41f71f,null))[_0x91ef('0x21')](removeEntity(_0x41f71f,null))[_0x91ef('0x42')](handleError(_0x41f71f,null));};exports['download']=function(_0x12cad7,_0x4ecbf4,_0x43ca45){return db[_0x91ef('0x2a')]['find']({'where':{'id':_0x12cad7[_0x91ef('0x43')]['id']},'attributes':['name','basename',_0x91ef('0x4f'),_0x91ef('0x50')],'raw':!![]})[_0x91ef('0x21')](handleEntityNotFound(_0x4ecbf4,null))['then'](function(_0x48fbf8){if(_0x48fbf8){if(!fs[_0x91ef('0x51')](path[_0x91ef('0x52')](config[_0x91ef('0x53')],_0x91ef('0x54'),_0x48fbf8[_0x91ef('0x4f')]))){throw new db[(_0x91ef('0x55'))][(_0x91ef('0x56'))](_0x91ef('0x57'));}if(_0x12cad7[_0x91ef('0x2e')][_0x91ef('0x58')]){return _0x4ecbf4[_0x91ef('0x14')](0xc8);}return _0x4ecbf4[_0x91ef('0x59')](path['join'](config[_0x91ef('0x53')],_0x91ef('0x54'),_0x48fbf8[_0x91ef('0x4f')]),util[_0x91ef('0x5a')]('%s.%s',_0x48fbf8[_0x91ef('0x5b')]||_0x48fbf8[_0x91ef('0x26')],_0x48fbf8[_0x91ef('0x50')][_0x91ef('0x5c')]()));}})['catch'](handleError(_0x4ecbf4,null));};