859ca9ad25e8ffae616da5917fadab5b62d394e3
[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 _0x2516=['Unable\x20to\x20retrieve\x20the\x20current\x20user','role','ExtractedReports','UserProfileSection','userProfileId','error','download','basename','savename','existsSync','join','root','server/files/reports','Sequelize','Report\x20not\x20found\x20or\x20empty','%s.%s','output','rimraf','zip-dir','bluebird','mustache','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','UserProfileResource','stack','name','send','index','AnalyticExtractedReport','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','where','pick','filter','merge','includeAll','findAll','rows','catch','show','params','keys','length','include','options','find','create','body','user','get'];(function(_0x207439,_0x3d8b35){var _0x5630d8=function(_0x29c477){while(--_0x29c477){_0x207439['push'](_0x207439['shift']());}};_0x5630d8(++_0x3d8b35);}(_0x2516,0x1f1));var _0x6251=function(_0x3a6efd,_0x2a5102){_0x3a6efd=_0x3a6efd-0x0;var _0x487b9a=_0x2516[_0x3a6efd];return _0x487b9a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6251('0x0'));var zipdir=require(_0x6251('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6251('0x2'));var Mustache=require(_0x6251('0x3'));var util=require('util');var path=require(_0x6251('0x4'));var sox=require(_0x6251('0x5'));var csv=require('to-csv');var ejs=require(_0x6251('0x6'));var fs=require('fs');var fs_extra=require(_0x6251('0x7'));var _=require(_0x6251('0x8'));var squel=require(_0x6251('0x9'));var crypto=require(_0x6251('0xa'));var jsforce=require(_0x6251('0xb'));var deskjs=require(_0x6251('0xc'));var toCsv=require('to-csv');var querystring=require(_0x6251('0xd'));var Papa=require(_0x6251('0xe'));var Redis=require(_0x6251('0xf'));var authService=require(_0x6251('0x10'));var qs=require(_0x6251('0x11'));var as=require(_0x6251('0x12'));var hardwareService=require(_0x6251('0x13'));var logger=require(_0x6251('0x14'))(_0x6251('0x15'));var utils=require('../../config/utils');var config=require(_0x6251('0x16'));var licenseUtil=require(_0x6251('0x17'));var db=require(_0x6251('0x18'))['db'];function respondWithStatusCode(_0x1f738f,_0x1dabe7){_0x1dabe7=_0x1dabe7||0xcc;return function(_0x3ab1a9){if(_0x3ab1a9){return _0x1f738f[_0x6251('0x19')](_0x1dabe7);}return _0x1f738f[_0x6251('0x1a')](_0x1dabe7)[_0x6251('0x1b')]();};}function respondWithResult(_0x1e6a75,_0x477139){_0x477139=_0x477139||0xc8;return function(_0x5b4741){if(_0x5b4741){return _0x1e6a75[_0x6251('0x1a')](_0x477139)['json'](_0x5b4741);}};}function respondWithFilteredResult(_0x2bfa94,_0x34f1e6){return function(_0x3143e5){if(_0x3143e5){var _0xeced8c=typeof _0x34f1e6[_0x6251('0x1c')]===_0x6251('0x1d')&&typeof _0x34f1e6[_0x6251('0x1e')]===_0x6251('0x1d');var _0x4a9f49=_0x3143e5['count'];var _0x123c27=_0xeced8c?0x0:_0x34f1e6[_0x6251('0x1c')];var _0x4eb72e=_0xeced8c?_0x3143e5[_0x6251('0x1f')]:_0x34f1e6[_0x6251('0x1c')]+_0x34f1e6[_0x6251('0x1e')];var _0x153ee8;if(_0x4eb72e>=_0x4a9f49){_0x4eb72e=_0x4a9f49;_0x153ee8=0xc8;}else{_0x153ee8=0xce;}_0x2bfa94[_0x6251('0x1a')](_0x153ee8);return _0x2bfa94[_0x6251('0x20')](_0x6251('0x21'),_0x123c27+'-'+_0x4eb72e+'/'+_0x4a9f49)[_0x6251('0x22')](_0x3143e5);}return null;};}function patchUpdates(_0x1cec20){return function(_0x308787){try{jsonpatch[_0x6251('0x23')](_0x308787,_0x1cec20,!![]);}catch(_0x2daaa8){return BPromise[_0x6251('0x24')](_0x2daaa8);}return _0x308787[_0x6251('0x25')]();};}function saveUpdates(_0x54ee32,_0x3ca087){return function(_0x22b6db){if(_0x22b6db){return _0x22b6db[_0x6251('0x26')](_0x54ee32)[_0x6251('0x27')](function(_0x5c6afb){return _0x5c6afb;});}return null;};}function removeEntity(_0x56874d,_0x2d27f2){return function(_0x27e9f8){if(_0x27e9f8){return _0x27e9f8[_0x6251('0x28')]()[_0x6251('0x27')](function(){var _0x56e94c=_0x27e9f8['get']({'plain':!![]});var _0x184e14='ExtractedReports';return db[_0x6251('0x29')]['destroy']({'where':{'type':_0x184e14,'resourceId':_0x56e94c['id']}})['then'](function(){return _0x27e9f8;});})[_0x6251('0x27')](function(){_0x56874d['status'](0xcc)[_0x6251('0x1b')]();});}};}function handleEntityNotFound(_0x31f1b2,_0x20e7e7){return function(_0x382e39){if(!_0x382e39){_0x31f1b2['sendStatus'](0x194);}return _0x382e39;};}function handleError(_0x355c47,_0x3d5b02){_0x3d5b02=_0x3d5b02||0x1f4;return function(_0x3c4b1f){logger['error'](_0x3c4b1f[_0x6251('0x2a')]);if(_0x3c4b1f['name']){delete _0x3c4b1f[_0x6251('0x2b')];}_0x355c47[_0x6251('0x1a')](_0x3d5b02)[_0x6251('0x2c')](_0x3c4b1f);};}exports[_0x6251('0x2d')]=function(_0x44bfbe,_0x438186){var _0x59dfbf={},_0x1cf9d7={},_0x362efe={'count':0x0,'rows':[]};var _0x377b4f=_['map'](db[_0x6251('0x2e')][_0x6251('0x2f')],function(_0x166c72){return{'name':_0x166c72[_0x6251('0x30')],'type':_0x166c72[_0x6251('0x31')][_0x6251('0x32')]};});_0x1cf9d7[_0x6251('0x33')]=_['map'](_0x377b4f,_0x6251('0x2b'));_0x1cf9d7[_0x6251('0x34')]=_['keys'](_0x44bfbe[_0x6251('0x34')]);_0x1cf9d7[_0x6251('0x35')]=_[_0x6251('0x36')](_0x1cf9d7['model'],_0x1cf9d7[_0x6251('0x34')]);_0x59dfbf['attributes']=_[_0x6251('0x36')](_0x1cf9d7[_0x6251('0x33')],qs[_0x6251('0x37')](_0x44bfbe['query']['fields']));_0x59dfbf['attributes']=_0x59dfbf[_0x6251('0x38')]['length']?_0x59dfbf[_0x6251('0x38')]:_0x1cf9d7['model'];if(!_0x44bfbe[_0x6251('0x34')][_0x6251('0x39')](_0x6251('0x3a'))){_0x59dfbf['limit']=qs[_0x6251('0x1e')](_0x44bfbe[_0x6251('0x34')][_0x6251('0x1e')]);_0x59dfbf[_0x6251('0x1c')]=qs['offset'](_0x44bfbe[_0x6251('0x34')]['offset']);}_0x59dfbf[_0x6251('0x3b')]=qs['sort'](_0x44bfbe[_0x6251('0x34')]['sort']);_0x59dfbf[_0x6251('0x3c')]=qs[_0x6251('0x35')](_[_0x6251('0x3d')](_0x44bfbe[_0x6251('0x34')],_0x1cf9d7[_0x6251('0x35')]),_0x377b4f);if(_0x44bfbe[_0x6251('0x34')][_0x6251('0x3e')]){_0x59dfbf[_0x6251('0x3c')]=_[_0x6251('0x3f')](_0x59dfbf[_0x6251('0x3c')],{'$or':_['map'](_0x377b4f,function(_0x1cbe6){if(_0x1cbe6[_0x6251('0x31')]!=='VIRTUAL'){var _0x5b828d={};_0x5b828d[_0x1cbe6[_0x6251('0x2b')]]={'$like':'%'+_0x44bfbe[_0x6251('0x34')]['filter']+'%'};return _0x5b828d;}})});}_0x59dfbf=_[_0x6251('0x3f')]({},_0x59dfbf,_0x44bfbe['options']);var _0x1a37f0={'where':_0x59dfbf['where']};return db[_0x6251('0x2e')][_0x6251('0x1f')](_0x1a37f0)[_0x6251('0x27')](function(_0x428846){_0x362efe[_0x6251('0x1f')]=_0x428846;if(_0x44bfbe[_0x6251('0x34')][_0x6251('0x40')]){_0x59dfbf['include']=[{'all':!![]}];}return db[_0x6251('0x2e')][_0x6251('0x41')](_0x59dfbf);})[_0x6251('0x27')](function(_0x23d55e){_0x362efe[_0x6251('0x42')]=_0x23d55e;return _0x362efe;})[_0x6251('0x27')](respondWithFilteredResult(_0x438186,_0x59dfbf))[_0x6251('0x43')](handleError(_0x438186,null));};exports[_0x6251('0x44')]=function(_0x18de5a,_0x4d42fb){var _0x49052c={'raw':!![],'where':{'id':_0x18de5a[_0x6251('0x45')]['id']}},_0x132d89={};_0x132d89[_0x6251('0x33')]=_[_0x6251('0x46')](db[_0x6251('0x2e')][_0x6251('0x2f')]);_0x132d89[_0x6251('0x34')]=_[_0x6251('0x46')](_0x18de5a[_0x6251('0x34')]);_0x132d89[_0x6251('0x35')]=_[_0x6251('0x36')](_0x132d89[_0x6251('0x33')],_0x132d89[_0x6251('0x34')]);_0x49052c[_0x6251('0x38')]=_[_0x6251('0x36')](_0x132d89[_0x6251('0x33')],qs['fields'](_0x18de5a['query'][_0x6251('0x37')]));_0x49052c['attributes']=_0x49052c[_0x6251('0x38')][_0x6251('0x47')]?_0x49052c[_0x6251('0x38')]:_0x132d89['model'];if(_0x18de5a[_0x6251('0x34')][_0x6251('0x40')]){_0x49052c[_0x6251('0x48')]=[{'all':!![]}];}_0x49052c=_[_0x6251('0x3f')]({},_0x49052c,_0x18de5a[_0x6251('0x49')]);return db['AnalyticExtractedReport'][_0x6251('0x4a')](_0x49052c)[_0x6251('0x27')](handleEntityNotFound(_0x4d42fb,null))[_0x6251('0x27')](respondWithResult(_0x4d42fb,null))[_0x6251('0x43')](handleError(_0x4d42fb,null));};exports['create']=function(_0x3b0a93,_0x468c9f){return db[_0x6251('0x2e')][_0x6251('0x4b')](_0x3b0a93[_0x6251('0x4c')],{})['then'](function(_0x3f4f45){var _0x26210f=_0x3b0a93[_0x6251('0x4d')][_0x6251('0x4e')]({'plain':!![]});if(!_0x26210f)throw new Error(_0x6251('0x4f'));if(_0x26210f[_0x6251('0x50')]===_0x6251('0x4d')){var _0x3630b4=_0x3f4f45[_0x6251('0x4e')]({'plain':!![]});var _0x46d8b8=_0x6251('0x51');return db[_0x6251('0x52')][_0x6251('0x4a')]({'where':{'name':_0x46d8b8,'userProfileId':_0x26210f[_0x6251('0x53')]},'raw':!![]})['then'](function(_0x1a44ce){if(_0x1a44ce&&_0x1a44ce['autoAssociation']===0x0){return db[_0x6251('0x29')][_0x6251('0x4b')]({'name':_0x3630b4[_0x6251('0x2b')],'resourceId':_0x3630b4['id'],'type':_0x1a44ce['name'],'sectionId':_0x1a44ce['id']},{})['then'](function(){return _0x3f4f45;});}else{return _0x3f4f45;}})[_0x6251('0x43')](function(_0x51dce3){logger[_0x6251('0x54')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x51dce3);throw _0x51dce3;});}return _0x3f4f45;})['then'](respondWithResult(_0x468c9f,0xc9))[_0x6251('0x43')](handleError(_0x468c9f,null));};exports[_0x6251('0x26')]=function(_0xa78fe2,_0xa5a036){if(_0xa78fe2[_0x6251('0x4c')]['id']){delete _0xa78fe2['body']['id'];}return db[_0x6251('0x2e')][_0x6251('0x4a')]({'where':{'id':_0xa78fe2['params']['id']}})[_0x6251('0x27')](handleEntityNotFound(_0xa5a036,null))[_0x6251('0x27')](saveUpdates(_0xa78fe2[_0x6251('0x4c')],null))['then'](respondWithResult(_0xa5a036,null))[_0x6251('0x43')](handleError(_0xa5a036,null));};exports['destroy']=function(_0x394922,_0x5335c7){return db[_0x6251('0x2e')][_0x6251('0x4a')]({'where':{'id':_0x394922[_0x6251('0x45')]['id']}})[_0x6251('0x27')](handleEntityNotFound(_0x5335c7,null))[_0x6251('0x27')](removeEntity(_0x5335c7,null))[_0x6251('0x43')](handleError(_0x5335c7,null));};exports[_0x6251('0x55')]=function(_0x58ead7,_0x4cab85,_0x598034){return db[_0x6251('0x2e')][_0x6251('0x4a')]({'where':{'id':_0x58ead7['params']['id']},'attributes':[_0x6251('0x2b'),_0x6251('0x56'),_0x6251('0x57'),'output'],'raw':!![]})[_0x6251('0x27')](handleEntityNotFound(_0x4cab85,null))[_0x6251('0x27')](function(_0x2bd660){if(_0x2bd660){if(!fs[_0x6251('0x58')](path[_0x6251('0x59')](config[_0x6251('0x5a')],_0x6251('0x5b'),_0x2bd660['savename']))){throw new db[(_0x6251('0x5c'))]['ValidationError'](_0x6251('0x5d'));}if(_0x58ead7[_0x6251('0x34')]['exists']){return _0x4cab85[_0x6251('0x19')](0xc8);}return _0x4cab85[_0x6251('0x55')](path[_0x6251('0x59')](config[_0x6251('0x5a')],_0x6251('0x5b'),_0x2bd660[_0x6251('0x57')]),util['format'](_0x6251('0x5e'),_0x2bd660['basename']||_0x2bd660['name'],_0x2bd660[_0x6251('0x5f')]['toLowerCase']()));}})[_0x6251('0x43')](handleError(_0x4cab85,null));};