a052a7e7b3d46f4704b934a53bd364c18bde486c
[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 _0x6fe2=['set','Content-Range','update','then','destroy','get','stack','name','send','index','AnalyticExtractedReport','rawAttributes','type','key','model','map','filters','intersection','query','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','keys','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','ExtractedReports','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','download','basename','savename','output','existsSync','root','server/files/reports','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','format','%s.%s','toLowerCase','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','json','offset','undefined','limit','count'];(function(_0x1dd532,_0x36e81c){var _0x3732aa=function(_0x19d50a){while(--_0x19d50a){_0x1dd532['push'](_0x1dd532['shift']());}};_0x3732aa(++_0x36e81c);}(_0x6fe2,0x104));var _0x26fe=function(_0x29fe0c,_0x3025f8){_0x29fe0c=_0x29fe0c-0x0;var _0x572e95=_0x6fe2[_0x29fe0c];return _0x572e95;};'use strict';var emlformat=require(_0x26fe('0x0'));var rimraf=require(_0x26fe('0x1'));var zipdir=require(_0x26fe('0x2'));var jsonpatch=require(_0x26fe('0x3'));var rp=require(_0x26fe('0x4'));var moment=require(_0x26fe('0x5'));var BPromise=require(_0x26fe('0x6'));var Mustache=require('mustache');var util=require(_0x26fe('0x7'));var path=require(_0x26fe('0x8'));var sox=require(_0x26fe('0x9'));var csv=require(_0x26fe('0xa'));var ejs=require(_0x26fe('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x26fe('0xc'));var squel=require('squel');var crypto=require(_0x26fe('0xd'));var jsforce=require(_0x26fe('0xe'));var deskjs=require(_0x26fe('0xf'));var toCsv=require(_0x26fe('0xa'));var querystring=require('querystring');var Papa=require(_0x26fe('0x10'));var Redis=require('ioredis');var authService=require(_0x26fe('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x26fe('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x26fe('0x13'));var utils=require(_0x26fe('0x14'));var config=require(_0x26fe('0x15'));var licenseUtil=require(_0x26fe('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x49eb99,_0x1a523d){_0x1a523d=_0x1a523d||0xcc;return function(_0x3f31e5){if(_0x3f31e5){return _0x49eb99[_0x26fe('0x17')](_0x1a523d);}return _0x49eb99['status'](_0x1a523d)[_0x26fe('0x18')]();};}function respondWithResult(_0x3d5da4,_0xa29bd0){_0xa29bd0=_0xa29bd0||0xc8;return function(_0x1f6128){if(_0x1f6128){return _0x3d5da4[_0x26fe('0x19')](_0xa29bd0)[_0x26fe('0x1a')](_0x1f6128);}};}function respondWithFilteredResult(_0x4fbc96,_0xd785d2){return function(_0x7a13fd){if(_0x7a13fd){var _0x22e15a=typeof _0xd785d2[_0x26fe('0x1b')]===_0x26fe('0x1c')&&typeof _0xd785d2[_0x26fe('0x1d')]===_0x26fe('0x1c');var _0x314e83=_0x7a13fd[_0x26fe('0x1e')];var _0x157c99=_0x22e15a?0x0:_0xd785d2['offset'];var _0x167df6=_0x22e15a?_0x7a13fd['count']:_0xd785d2[_0x26fe('0x1b')]+_0xd785d2[_0x26fe('0x1d')];var _0x1d9d81;if(_0x167df6>=_0x314e83){_0x167df6=_0x314e83;_0x1d9d81=0xc8;}else{_0x1d9d81=0xce;}_0x4fbc96[_0x26fe('0x19')](_0x1d9d81);return _0x4fbc96[_0x26fe('0x1f')](_0x26fe('0x20'),_0x157c99+'-'+_0x167df6+'/'+_0x314e83)[_0x26fe('0x1a')](_0x7a13fd);}return null;};}function patchUpdates(_0x18d278){return function(_0x1a3163){try{jsonpatch['apply'](_0x1a3163,_0x18d278,!![]);}catch(_0x366f68){return BPromise['reject'](_0x366f68);}return _0x1a3163['save']();};}function saveUpdates(_0x4e7d14,_0x426bc4){return function(_0x300ddd){if(_0x300ddd){return _0x300ddd[_0x26fe('0x21')](_0x4e7d14)[_0x26fe('0x22')](function(_0x2c3fcd){return _0x2c3fcd;});}return null;};}function removeEntity(_0x501fe7,_0x38b609){return function(_0x79a961){if(_0x79a961){return _0x79a961[_0x26fe('0x23')]()[_0x26fe('0x22')](function(){var _0x4ffa92=_0x79a961[_0x26fe('0x24')]({'plain':!![]});var _0x1bb3a1='ExtractedReports';return db['UserProfileResource'][_0x26fe('0x23')]({'where':{'type':_0x1bb3a1,'resourceId':_0x4ffa92['id']}})[_0x26fe('0x22')](function(){return _0x79a961;});})['then'](function(){_0x501fe7[_0x26fe('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x57f2c8,_0x483b5b){return function(_0x20449b){if(!_0x20449b){_0x57f2c8['sendStatus'](0x194);}return _0x20449b;};}function handleError(_0xad4d2a,_0x4fdbb5){_0x4fdbb5=_0x4fdbb5||0x1f4;return function(_0xfab5d){logger['error'](_0xfab5d[_0x26fe('0x25')]);if(_0xfab5d[_0x26fe('0x26')]){delete _0xfab5d[_0x26fe('0x26')];}_0xad4d2a[_0x26fe('0x19')](_0x4fdbb5)[_0x26fe('0x27')](_0xfab5d);};}exports[_0x26fe('0x28')]=function(_0x310bfb,_0xbcd73f){var _0x2476b2={},_0x533b0e={},_0x3847f3={'count':0x0,'rows':[]};var _0x73424b=_['map'](db[_0x26fe('0x29')][_0x26fe('0x2a')],function(_0x3dbc1a){return{'name':_0x3dbc1a['fieldName'],'type':_0x3dbc1a[_0x26fe('0x2b')][_0x26fe('0x2c')]};});_0x533b0e[_0x26fe('0x2d')]=_[_0x26fe('0x2e')](_0x73424b,_0x26fe('0x26'));_0x533b0e['query']=_['keys'](_0x310bfb['query']);_0x533b0e[_0x26fe('0x2f')]=_['intersection'](_0x533b0e[_0x26fe('0x2d')],_0x533b0e['query']);_0x2476b2['attributes']=_[_0x26fe('0x30')](_0x533b0e[_0x26fe('0x2d')],qs['fields'](_0x310bfb[_0x26fe('0x31')][_0x26fe('0x32')]));_0x2476b2[_0x26fe('0x33')]=_0x2476b2[_0x26fe('0x33')][_0x26fe('0x34')]?_0x2476b2[_0x26fe('0x33')]:_0x533b0e['model'];if(!_0x310bfb[_0x26fe('0x31')][_0x26fe('0x35')](_0x26fe('0x36'))){_0x2476b2[_0x26fe('0x1d')]=qs[_0x26fe('0x1d')](_0x310bfb[_0x26fe('0x31')]['limit']);_0x2476b2[_0x26fe('0x1b')]=qs[_0x26fe('0x1b')](_0x310bfb[_0x26fe('0x31')][_0x26fe('0x1b')]);}_0x2476b2['order']=qs[_0x26fe('0x37')](_0x310bfb[_0x26fe('0x31')]['sort']);_0x2476b2[_0x26fe('0x38')]=qs[_0x26fe('0x2f')](_[_0x26fe('0x39')](_0x310bfb[_0x26fe('0x31')],_0x533b0e[_0x26fe('0x2f')]),_0x73424b);if(_0x310bfb['query'][_0x26fe('0x3a')]){_0x2476b2[_0x26fe('0x38')]=_[_0x26fe('0x3b')](_0x2476b2[_0x26fe('0x38')],{'$or':_['map'](_0x73424b,function(_0x16130d){if(_0x16130d['type']!==_0x26fe('0x3c')){var _0x3c73bf={};_0x3c73bf[_0x16130d[_0x26fe('0x26')]]={'$like':'%'+_0x310bfb['query'][_0x26fe('0x3a')]+'%'};return _0x3c73bf;}})});}_0x2476b2=_['merge']({},_0x2476b2,_0x310bfb['options']);var _0x2e413c={'where':_0x2476b2[_0x26fe('0x38')]};return db[_0x26fe('0x29')][_0x26fe('0x1e')](_0x2e413c)[_0x26fe('0x22')](function(_0x30701c){_0x3847f3[_0x26fe('0x1e')]=_0x30701c;if(_0x310bfb[_0x26fe('0x31')][_0x26fe('0x3d')]){_0x2476b2[_0x26fe('0x3e')]=[{'all':!![]}];}return db[_0x26fe('0x29')][_0x26fe('0x3f')](_0x2476b2);})[_0x26fe('0x22')](function(_0x73c639){_0x3847f3[_0x26fe('0x40')]=_0x73c639;return _0x3847f3;})['then'](respondWithFilteredResult(_0xbcd73f,_0x2476b2))[_0x26fe('0x41')](handleError(_0xbcd73f,null));};exports[_0x26fe('0x42')]=function(_0x5e696a,_0x391cea){var _0x29f9e6={'raw':!![],'where':{'id':_0x5e696a[_0x26fe('0x43')]['id']}},_0x110f3b={};_0x110f3b[_0x26fe('0x2d')]=_[_0x26fe('0x44')](db[_0x26fe('0x29')][_0x26fe('0x2a')]);_0x110f3b['query']=_[_0x26fe('0x44')](_0x5e696a[_0x26fe('0x31')]);_0x110f3b[_0x26fe('0x2f')]=_[_0x26fe('0x30')](_0x110f3b[_0x26fe('0x2d')],_0x110f3b[_0x26fe('0x31')]);_0x29f9e6[_0x26fe('0x33')]=_[_0x26fe('0x30')](_0x110f3b['model'],qs['fields'](_0x5e696a[_0x26fe('0x31')][_0x26fe('0x32')]));_0x29f9e6['attributes']=_0x29f9e6[_0x26fe('0x33')][_0x26fe('0x34')]?_0x29f9e6['attributes']:_0x110f3b[_0x26fe('0x2d')];if(_0x5e696a[_0x26fe('0x31')][_0x26fe('0x3d')]){_0x29f9e6['include']=[{'all':!![]}];}_0x29f9e6=_[_0x26fe('0x3b')]({},_0x29f9e6,_0x5e696a[_0x26fe('0x45')]);return db['AnalyticExtractedReport'][_0x26fe('0x46')](_0x29f9e6)[_0x26fe('0x22')](handleEntityNotFound(_0x391cea,null))[_0x26fe('0x22')](respondWithResult(_0x391cea,null))[_0x26fe('0x41')](handleError(_0x391cea,null));};exports[_0x26fe('0x47')]=function(_0x33f97f,_0xfb70a7){return db[_0x26fe('0x29')][_0x26fe('0x47')](_0x33f97f['body'],{})['then'](function(_0xd1f70c){var _0x5e9b06=_0x33f97f[_0x26fe('0x48')]['get']({'plain':!![]});if(!_0x5e9b06)throw new Error(_0x26fe('0x49'));if(_0x5e9b06[_0x26fe('0x4a')]===_0x26fe('0x48')){var _0x4a1139=_0xd1f70c[_0x26fe('0x24')]({'plain':!![]});var _0x33b926=_0x26fe('0x4b');return db[_0x26fe('0x4c')][_0x26fe('0x46')]({'where':{'name':_0x33b926,'userProfileId':_0x5e9b06[_0x26fe('0x4d')]},'raw':!![]})[_0x26fe('0x22')](function(_0x340f94){if(_0x340f94&&_0x340f94[_0x26fe('0x4e')]===0x0){return db[_0x26fe('0x4f')][_0x26fe('0x47')]({'name':_0x4a1139['name'],'resourceId':_0x4a1139['id'],'type':_0x340f94[_0x26fe('0x26')],'sectionId':_0x340f94['id']},{})[_0x26fe('0x22')](function(){return _0xd1f70c;});}else{return _0xd1f70c;}})[_0x26fe('0x41')](function(_0x59bace){logger[_0x26fe('0x50')](_0x26fe('0x51'),_0x59bace);throw _0x59bace;});}return _0xd1f70c;})[_0x26fe('0x22')](respondWithResult(_0xfb70a7,0xc9))[_0x26fe('0x41')](handleError(_0xfb70a7,null));};exports[_0x26fe('0x21')]=function(_0x144ed7,_0x2bc5e5){if(_0x144ed7[_0x26fe('0x52')]['id']){delete _0x144ed7[_0x26fe('0x52')]['id'];}return db['AnalyticExtractedReport'][_0x26fe('0x46')]({'where':{'id':_0x144ed7[_0x26fe('0x43')]['id']}})['then'](handleEntityNotFound(_0x2bc5e5,null))['then'](saveUpdates(_0x144ed7[_0x26fe('0x52')],null))[_0x26fe('0x22')](respondWithResult(_0x2bc5e5,null))[_0x26fe('0x41')](handleError(_0x2bc5e5,null));};exports['destroy']=function(_0x2e98cf,_0x3c813d){return db[_0x26fe('0x29')]['find']({'where':{'id':_0x2e98cf['params']['id']}})[_0x26fe('0x22')](handleEntityNotFound(_0x3c813d,null))[_0x26fe('0x22')](removeEntity(_0x3c813d,null))[_0x26fe('0x41')](handleError(_0x3c813d,null));};exports[_0x26fe('0x53')]=function(_0x500824,_0x5bcf8b,_0x47ef15){return db['AnalyticExtractedReport']['find']({'where':{'id':_0x500824['params']['id']},'attributes':[_0x26fe('0x26'),_0x26fe('0x54'),_0x26fe('0x55'),_0x26fe('0x56')],'raw':!![]})[_0x26fe('0x22')](handleEntityNotFound(_0x5bcf8b,null))[_0x26fe('0x22')](function(_0x1ba085){if(_0x1ba085){if(!fs[_0x26fe('0x57')](path['join'](config[_0x26fe('0x58')],_0x26fe('0x59'),_0x1ba085[_0x26fe('0x55')]))){throw new db[(_0x26fe('0x5a'))][(_0x26fe('0x5b'))](_0x26fe('0x5c'));}if(_0x500824[_0x26fe('0x31')][_0x26fe('0x5d')]){return _0x5bcf8b['sendStatus'](0xc8);}return _0x5bcf8b['download'](path['join'](config[_0x26fe('0x58')],_0x26fe('0x59'),_0x1ba085[_0x26fe('0x55')]),util[_0x26fe('0x5e')](_0x26fe('0x5f'),_0x1ba085['basename']||_0x1ba085[_0x26fe('0x26')],_0x1ba085[_0x26fe('0x56')][_0x26fe('0x60')]()));}})['catch'](handleError(_0x5bcf8b,null));};