Built motion from commit 1fa89557.|2.6.10
[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 _0x3d8d=['update','body','params','download','output','existsSync','join','root','server/files/reports','savename','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','format','toLowerCase','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','then','destroy','get','error','stack','name','send','map','AnalyticExtractedReport','fieldName','type','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','where','pick','filter','merge','options','include','findAll','rows','catch','rawAttributes','includeAll','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s'];(function(_0x3718f2,_0x2c7463){var _0x47d2ac=function(_0x34c7dd){while(--_0x34c7dd){_0x3718f2['push'](_0x3718f2['shift']());}};_0x47d2ac(++_0x2c7463);}(_0x3d8d,0x6c));var _0xd3d8=function(_0xd5a842,_0x3bef1f){_0xd5a842=_0xd5a842-0x0;var _0xcedd84=_0x3d8d[_0xd5a842];return _0xcedd84;};'use strict';var emlformat=require(_0xd3d8('0x0'));var rimraf=require(_0xd3d8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xd3d8('0x2'));var moment=require(_0xd3d8('0x3'));var BPromise=require(_0xd3d8('0x4'));var Mustache=require(_0xd3d8('0x5'));var util=require(_0xd3d8('0x6'));var path=require(_0xd3d8('0x7'));var sox=require('sox');var csv=require(_0xd3d8('0x8'));var ejs=require(_0xd3d8('0x9'));var fs=require('fs');var fs_extra=require(_0xd3d8('0xa'));var _=require(_0xd3d8('0xb'));var squel=require('squel');var crypto=require(_0xd3d8('0xc'));var jsforce=require(_0xd3d8('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xd3d8('0x8'));var querystring=require(_0xd3d8('0xe'));var Papa=require(_0xd3d8('0xf'));var Redis=require(_0xd3d8('0x10'));var authService=require(_0xd3d8('0x11'));var qs=require(_0xd3d8('0x12'));var as=require(_0xd3d8('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xd3d8('0x14'));var utils=require(_0xd3d8('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xd3d8('0x16'));var db=require(_0xd3d8('0x17'))['db'];function respondWithStatusCode(_0x2c9400,_0x8a2d6a){_0x8a2d6a=_0x8a2d6a||0xcc;return function(_0x2a3b97){if(_0x2a3b97){return _0x2c9400[_0xd3d8('0x18')](_0x8a2d6a);}return _0x2c9400[_0xd3d8('0x19')](_0x8a2d6a)[_0xd3d8('0x1a')]();};}function respondWithResult(_0x5b4593,_0x474353){_0x474353=_0x474353||0xc8;return function(_0x1f064d){if(_0x1f064d){return _0x5b4593[_0xd3d8('0x19')](_0x474353)[_0xd3d8('0x1b')](_0x1f064d);}};}function respondWithFilteredResult(_0x46ba1b,_0x4a8858){return function(_0x459d39){if(_0x459d39){var _0xb735df=typeof _0x4a8858[_0xd3d8('0x1c')]==='undefined'&&typeof _0x4a8858[_0xd3d8('0x1d')]===_0xd3d8('0x1e');var _0x186046=_0x459d39['count'];var _0x28e696=_0xb735df?0x0:_0x4a8858[_0xd3d8('0x1c')];var _0x353995=_0xb735df?_0x459d39[_0xd3d8('0x1f')]:_0x4a8858[_0xd3d8('0x1c')]+_0x4a8858[_0xd3d8('0x1d')];var _0x17561b;if(_0x353995>=_0x186046){_0x353995=_0x186046;_0x17561b=0xc8;}else{_0x17561b=0xce;}_0x46ba1b[_0xd3d8('0x19')](_0x17561b);return _0x46ba1b[_0xd3d8('0x20')](_0xd3d8('0x21'),_0x28e696+'-'+_0x353995+'/'+_0x186046)[_0xd3d8('0x1b')](_0x459d39);}return null;};}function patchUpdates(_0x3ea1f8){return function(_0x4b65da){try{jsonpatch[_0xd3d8('0x22')](_0x4b65da,_0x3ea1f8,!![]);}catch(_0x155c30){return BPromise[_0xd3d8('0x23')](_0x155c30);}return _0x4b65da[_0xd3d8('0x24')]();};}function saveUpdates(_0x2a53c1,_0x114675){return function(_0x19dad8){if(_0x19dad8){return _0x19dad8['update'](_0x2a53c1)[_0xd3d8('0x25')](function(_0x461beb){return _0x461beb;});}return null;};}function removeEntity(_0x20ad06,_0x30b6c5){return function(_0x2649dc){if(_0x2649dc){return _0x2649dc[_0xd3d8('0x26')]()['then'](function(){var _0xafc174=_0x2649dc[_0xd3d8('0x27')]({'plain':!![]});var _0x1e2387='ExtractedReports';return db['UserProfileResource'][_0xd3d8('0x26')]({'where':{'type':_0x1e2387,'resourceId':_0xafc174['id']}})[_0xd3d8('0x25')](function(){return _0x2649dc;});})[_0xd3d8('0x25')](function(){_0x20ad06[_0xd3d8('0x19')](0xcc)[_0xd3d8('0x1a')]();});}};}function handleEntityNotFound(_0x35eaee,_0x18fcbe){return function(_0xac526c){if(!_0xac526c){_0x35eaee[_0xd3d8('0x18')](0x194);}return _0xac526c;};}function handleError(_0x215ff1,_0x900918){_0x900918=_0x900918||0x1f4;return function(_0x45a8f3){logger[_0xd3d8('0x28')](_0x45a8f3[_0xd3d8('0x29')]);if(_0x45a8f3[_0xd3d8('0x2a')]){delete _0x45a8f3['name'];}_0x215ff1['status'](_0x900918)[_0xd3d8('0x2b')](_0x45a8f3);};}exports['index']=function(_0x478b76,_0x6916c3){var _0x34c777={},_0x416066={},_0x4a010a={'count':0x0,'rows':[]};var _0x2257c2=_[_0xd3d8('0x2c')](db[_0xd3d8('0x2d')]['rawAttributes'],function(_0x2e6ac5){return{'name':_0x2e6ac5[_0xd3d8('0x2e')],'type':_0x2e6ac5[_0xd3d8('0x2f')]['key']};});_0x416066[_0xd3d8('0x30')]=_['map'](_0x2257c2,_0xd3d8('0x2a'));_0x416066[_0xd3d8('0x31')]=_[_0xd3d8('0x32')](_0x478b76[_0xd3d8('0x31')]);_0x416066[_0xd3d8('0x33')]=_[_0xd3d8('0x34')](_0x416066['model'],_0x416066[_0xd3d8('0x31')]);_0x34c777[_0xd3d8('0x35')]=_[_0xd3d8('0x34')](_0x416066['model'],qs['fields'](_0x478b76[_0xd3d8('0x31')]['fields']));_0x34c777[_0xd3d8('0x35')]=_0x34c777[_0xd3d8('0x35')][_0xd3d8('0x36')]?_0x34c777['attributes']:_0x416066['model'];if(!_0x478b76[_0xd3d8('0x31')][_0xd3d8('0x37')](_0xd3d8('0x38'))){_0x34c777[_0xd3d8('0x1d')]=qs[_0xd3d8('0x1d')](_0x478b76['query'][_0xd3d8('0x1d')]);_0x34c777[_0xd3d8('0x1c')]=qs[_0xd3d8('0x1c')](_0x478b76['query'][_0xd3d8('0x1c')]);}_0x34c777[_0xd3d8('0x39')]=qs['sort'](_0x478b76[_0xd3d8('0x31')]['sort']);_0x34c777[_0xd3d8('0x3a')]=qs[_0xd3d8('0x33')](_[_0xd3d8('0x3b')](_0x478b76[_0xd3d8('0x31')],_0x416066[_0xd3d8('0x33')]),_0x2257c2);if(_0x478b76[_0xd3d8('0x31')][_0xd3d8('0x3c')]){_0x34c777[_0xd3d8('0x3a')]=_[_0xd3d8('0x3d')](_0x34c777[_0xd3d8('0x3a')],{'$or':_['map'](_0x2257c2,function(_0x260844){if(_0x260844[_0xd3d8('0x2f')]!=='VIRTUAL'){var _0x1648a8={};_0x1648a8[_0x260844[_0xd3d8('0x2a')]]={'$like':'%'+_0x478b76['query'][_0xd3d8('0x3c')]+'%'};return _0x1648a8;}})});}_0x34c777=_['merge']({},_0x34c777,_0x478b76[_0xd3d8('0x3e')]);var _0x45ec23={'where':_0x34c777[_0xd3d8('0x3a')]};return db[_0xd3d8('0x2d')][_0xd3d8('0x1f')](_0x45ec23)[_0xd3d8('0x25')](function(_0x2311ee){_0x4a010a['count']=_0x2311ee;if(_0x478b76[_0xd3d8('0x31')]['includeAll']){_0x34c777[_0xd3d8('0x3f')]=[{'all':!![]}];}return db[_0xd3d8('0x2d')][_0xd3d8('0x40')](_0x34c777);})['then'](function(_0x421c83){_0x4a010a[_0xd3d8('0x41')]=_0x421c83;return _0x4a010a;})[_0xd3d8('0x25')](respondWithFilteredResult(_0x6916c3,_0x34c777))[_0xd3d8('0x42')](handleError(_0x6916c3,null));};exports['show']=function(_0x4f3e2b,_0x170d0d){var _0x3c24f5={'raw':!![],'where':{'id':_0x4f3e2b['params']['id']}},_0x45d7c4={};_0x45d7c4[_0xd3d8('0x30')]=_['keys'](db['AnalyticExtractedReport'][_0xd3d8('0x43')]);_0x45d7c4[_0xd3d8('0x31')]=_['keys'](_0x4f3e2b['query']);_0x45d7c4[_0xd3d8('0x33')]=_['intersection'](_0x45d7c4[_0xd3d8('0x30')],_0x45d7c4[_0xd3d8('0x31')]);_0x3c24f5['attributes']=_[_0xd3d8('0x34')](_0x45d7c4[_0xd3d8('0x30')],qs['fields'](_0x4f3e2b['query']['fields']));_0x3c24f5[_0xd3d8('0x35')]=_0x3c24f5[_0xd3d8('0x35')]['length']?_0x3c24f5[_0xd3d8('0x35')]:_0x45d7c4[_0xd3d8('0x30')];if(_0x4f3e2b['query'][_0xd3d8('0x44')]){_0x3c24f5['include']=[{'all':!![]}];}_0x3c24f5=_['merge']({},_0x3c24f5,_0x4f3e2b[_0xd3d8('0x3e')]);return db['AnalyticExtractedReport'][_0xd3d8('0x45')](_0x3c24f5)[_0xd3d8('0x25')](handleEntityNotFound(_0x170d0d,null))[_0xd3d8('0x25')](respondWithResult(_0x170d0d,null))[_0xd3d8('0x42')](handleError(_0x170d0d,null));};exports['create']=function(_0x20d308,_0x3c2371){return db[_0xd3d8('0x2d')][_0xd3d8('0x46')](_0x20d308['body'],{})['then'](function(_0xb17c08){var _0x43e44d=_0x20d308['user'][_0xd3d8('0x27')]({'plain':!![]});if(!_0x43e44d)throw new Error(_0xd3d8('0x47'));if(_0x43e44d[_0xd3d8('0x48')]===_0xd3d8('0x49')){var _0x174960=_0xb17c08['get']({'plain':!![]});var _0x389759='ExtractedReports';return db['UserProfileSection'][_0xd3d8('0x45')]({'where':{'name':_0x389759,'userProfileId':_0x43e44d['userProfileId']},'raw':!![]})[_0xd3d8('0x25')](function(_0x574b6c){if(_0x574b6c&&_0x574b6c['autoAssociation']===0x0){return db[_0xd3d8('0x4a')][_0xd3d8('0x46')]({'name':_0x174960[_0xd3d8('0x2a')],'resourceId':_0x174960['id'],'type':_0x574b6c[_0xd3d8('0x2a')],'sectionId':_0x574b6c['id']},{})[_0xd3d8('0x25')](function(){return _0xb17c08;});}else{return _0xb17c08;}})[_0xd3d8('0x42')](function(_0x1e8026){logger[_0xd3d8('0x28')](_0xd3d8('0x4b'),_0x1e8026);throw _0x1e8026;});}return _0xb17c08;})['then'](respondWithResult(_0x3c2371,0xc9))[_0xd3d8('0x42')](handleError(_0x3c2371,null));};exports[_0xd3d8('0x4c')]=function(_0x4a789a,_0x290d22){if(_0x4a789a[_0xd3d8('0x4d')]['id']){delete _0x4a789a[_0xd3d8('0x4d')]['id'];}return db['AnalyticExtractedReport'][_0xd3d8('0x45')]({'where':{'id':_0x4a789a[_0xd3d8('0x4e')]['id']}})['then'](handleEntityNotFound(_0x290d22,null))[_0xd3d8('0x25')](saveUpdates(_0x4a789a[_0xd3d8('0x4d')],null))['then'](respondWithResult(_0x290d22,null))['catch'](handleError(_0x290d22,null));};exports[_0xd3d8('0x26')]=function(_0x1c26b8,_0x10a391){return db[_0xd3d8('0x2d')]['find']({'where':{'id':_0x1c26b8[_0xd3d8('0x4e')]['id']}})[_0xd3d8('0x25')](handleEntityNotFound(_0x10a391,null))['then'](removeEntity(_0x10a391,null))[_0xd3d8('0x42')](handleError(_0x10a391,null));};exports[_0xd3d8('0x4f')]=function(_0x1a89e5,_0x498443,_0x12e4c4){return db[_0xd3d8('0x2d')][_0xd3d8('0x45')]({'where':{'id':_0x1a89e5[_0xd3d8('0x4e')]['id']},'attributes':[_0xd3d8('0x2a'),'basename','savename',_0xd3d8('0x50')],'raw':!![]})[_0xd3d8('0x25')](handleEntityNotFound(_0x498443,null))[_0xd3d8('0x25')](function(_0x3bc1af){if(_0x3bc1af){if(!fs[_0xd3d8('0x51')](path[_0xd3d8('0x52')](config[_0xd3d8('0x53')],_0xd3d8('0x54'),_0x3bc1af[_0xd3d8('0x55')]))){throw new db[(_0xd3d8('0x56'))][(_0xd3d8('0x57'))](_0xd3d8('0x58'));}if(_0x1a89e5[_0xd3d8('0x31')][_0xd3d8('0x59')]){return _0x498443[_0xd3d8('0x18')](0xc8);}return _0x498443[_0xd3d8('0x4f')](path[_0xd3d8('0x52')](config[_0xd3d8('0x53')],_0xd3d8('0x54'),_0x3bc1af[_0xd3d8('0x55')]),util[_0xd3d8('0x5a')]('%s.%s',_0x3bc1af['basename']||_0x3bc1af[_0xd3d8('0x2a')],_0x3bc1af[_0xd3d8('0x50')][_0xd3d8('0x5b')]()));}})[_0xd3d8('0x42')](handleError(_0x498443,null));};