800bc5cabf9e45d1964b7c594e02f923e4b02020
[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 _0x2f11=['user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','savename','output','join','root','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','%s.%s','toLowerCase','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','update','then','destroy','get','UserProfileResource','error','stack','name','send','index','map','AnalyticExtractedReport','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','fields','length','order','sort','filters','pick','filter','where','merge','VIRTUAL','includeAll','findAll','catch','show','params','include','find','create','role'];(function(_0x19a7ba,_0x517aef){var _0x230c13=function(_0x33e4aa){while(--_0x33e4aa){_0x19a7ba['push'](_0x19a7ba['shift']());}};_0x230c13(++_0x517aef);}(_0x2f11,0xcc));var _0x12f1=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x2f11[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require(_0x12f1('0x0'));var rimraf=require(_0x12f1('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x12f1('0x2'));var rp=require(_0x12f1('0x3'));var moment=require('moment');var BPromise=require(_0x12f1('0x4'));var Mustache=require(_0x12f1('0x5'));var util=require(_0x12f1('0x6'));var path=require(_0x12f1('0x7'));var sox=require(_0x12f1('0x8'));var csv=require(_0x12f1('0x9'));var ejs=require(_0x12f1('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x12f1('0xb'));var squel=require(_0x12f1('0xc'));var crypto=require(_0x12f1('0xd'));var jsforce=require(_0x12f1('0xe'));var deskjs=require(_0x12f1('0xf'));var toCsv=require(_0x12f1('0x9'));var querystring=require(_0x12f1('0x10'));var Papa=require(_0x12f1('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x12f1('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x12f1('0x13'));var logger=require(_0x12f1('0x14'))(_0x12f1('0x15'));var utils=require(_0x12f1('0x16'));var config=require(_0x12f1('0x17'));var licenseUtil=require(_0x12f1('0x18'));var db=require(_0x12f1('0x19'))['db'];function respondWithStatusCode(_0x51897a,_0x283105){_0x283105=_0x283105||0xcc;return function(_0x398261){if(_0x398261){return _0x51897a[_0x12f1('0x1a')](_0x283105);}return _0x51897a['status'](_0x283105)[_0x12f1('0x1b')]();};}function respondWithResult(_0x3f3405,_0x49bf6e){_0x49bf6e=_0x49bf6e||0xc8;return function(_0x4793d0){if(_0x4793d0){return _0x3f3405[_0x12f1('0x1c')](_0x49bf6e)[_0x12f1('0x1d')](_0x4793d0);}};}function respondWithFilteredResult(_0x5ad5a2,_0x2e167a){return function(_0x553a6c){if(_0x553a6c){var _0x2ef174=typeof _0x2e167a[_0x12f1('0x1e')]==='undefined'&&typeof _0x2e167a[_0x12f1('0x1f')]===_0x12f1('0x20');var _0xea2598=_0x553a6c[_0x12f1('0x21')];var _0x3b80c2=_0x2ef174?0x0:_0x2e167a[_0x12f1('0x1e')];var _0x2e9f1d=_0x2ef174?_0x553a6c[_0x12f1('0x21')]:_0x2e167a['offset']+_0x2e167a['limit'];var _0x164c55;if(_0x2e9f1d>=_0xea2598){_0x2e9f1d=_0xea2598;_0x164c55=0xc8;}else{_0x164c55=0xce;}_0x5ad5a2[_0x12f1('0x1c')](_0x164c55);return _0x5ad5a2[_0x12f1('0x22')](_0x12f1('0x23'),_0x3b80c2+'-'+_0x2e9f1d+'/'+_0xea2598)[_0x12f1('0x1d')](_0x553a6c);}return null;};}function patchUpdates(_0x5e807d){return function(_0x5ad5c7){try{jsonpatch[_0x12f1('0x24')](_0x5ad5c7,_0x5e807d,!![]);}catch(_0x3672b7){return BPromise[_0x12f1('0x25')](_0x3672b7);}return _0x5ad5c7['save']();};}function saveUpdates(_0x1226b8,_0xde26f4){return function(_0x4d0856){if(_0x4d0856){return _0x4d0856[_0x12f1('0x26')](_0x1226b8)[_0x12f1('0x27')](function(_0x38f759){return _0x38f759;});}return null;};}function removeEntity(_0x3cc332,_0x4c39d9){return function(_0x344c7f){if(_0x344c7f){return _0x344c7f[_0x12f1('0x28')]()[_0x12f1('0x27')](function(){var _0x4ff7c3=_0x344c7f[_0x12f1('0x29')]({'plain':!![]});var _0x534217='ExtractedReports';return db[_0x12f1('0x2a')][_0x12f1('0x28')]({'where':{'type':_0x534217,'resourceId':_0x4ff7c3['id']}})[_0x12f1('0x27')](function(){return _0x344c7f;});})['then'](function(){_0x3cc332[_0x12f1('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5856c0,_0x1f9702){return function(_0xbbb8d){if(!_0xbbb8d){_0x5856c0[_0x12f1('0x1a')](0x194);}return _0xbbb8d;};}function handleError(_0x3e7cbd,_0x5449f0){_0x5449f0=_0x5449f0||0x1f4;return function(_0x387a43){logger[_0x12f1('0x2b')](_0x387a43[_0x12f1('0x2c')]);if(_0x387a43[_0x12f1('0x2d')]){delete _0x387a43[_0x12f1('0x2d')];}_0x3e7cbd[_0x12f1('0x1c')](_0x5449f0)[_0x12f1('0x2e')](_0x387a43);};}exports[_0x12f1('0x2f')]=function(_0x459624,_0x533934){var _0x4711f4={},_0x1943ef={},_0x22d249={'count':0x0,'rows':[]};var _0x377e20=_[_0x12f1('0x30')](db[_0x12f1('0x31')][_0x12f1('0x32')],function(_0x1e372f){return{'name':_0x1e372f[_0x12f1('0x33')],'type':_0x1e372f[_0x12f1('0x34')][_0x12f1('0x35')]};});_0x1943ef[_0x12f1('0x36')]=_[_0x12f1('0x30')](_0x377e20,_0x12f1('0x2d'));_0x1943ef[_0x12f1('0x37')]=_[_0x12f1('0x38')](_0x459624[_0x12f1('0x37')]);_0x1943ef['filters']=_['intersection'](_0x1943ef[_0x12f1('0x36')],_0x1943ef[_0x12f1('0x37')]);_0x4711f4[_0x12f1('0x39')]=_[_0x12f1('0x3a')](_0x1943ef[_0x12f1('0x36')],qs[_0x12f1('0x3b')](_0x459624['query'][_0x12f1('0x3b')]));_0x4711f4[_0x12f1('0x39')]=_0x4711f4[_0x12f1('0x39')][_0x12f1('0x3c')]?_0x4711f4[_0x12f1('0x39')]:_0x1943ef['model'];if(!_0x459624['query']['hasOwnProperty']('nolimit')){_0x4711f4[_0x12f1('0x1f')]=qs['limit'](_0x459624[_0x12f1('0x37')][_0x12f1('0x1f')]);_0x4711f4[_0x12f1('0x1e')]=qs[_0x12f1('0x1e')](_0x459624[_0x12f1('0x37')][_0x12f1('0x1e')]);}_0x4711f4[_0x12f1('0x3d')]=qs[_0x12f1('0x3e')](_0x459624[_0x12f1('0x37')][_0x12f1('0x3e')]);_0x4711f4['where']=qs[_0x12f1('0x3f')](_[_0x12f1('0x40')](_0x459624[_0x12f1('0x37')],_0x1943ef[_0x12f1('0x3f')]),_0x377e20);if(_0x459624[_0x12f1('0x37')][_0x12f1('0x41')]){_0x4711f4[_0x12f1('0x42')]=_[_0x12f1('0x43')](_0x4711f4[_0x12f1('0x42')],{'$or':_[_0x12f1('0x30')](_0x377e20,function(_0x14bd5c){if(_0x14bd5c['type']!==_0x12f1('0x44')){var _0x36de04={};_0x36de04[_0x14bd5c[_0x12f1('0x2d')]]={'$like':'%'+_0x459624['query'][_0x12f1('0x41')]+'%'};return _0x36de04;}})});}_0x4711f4=_[_0x12f1('0x43')]({},_0x4711f4,_0x459624['options']);var _0x2fc405={'where':_0x4711f4[_0x12f1('0x42')]};return db[_0x12f1('0x31')][_0x12f1('0x21')](_0x2fc405)[_0x12f1('0x27')](function(_0x4642ac){_0x22d249[_0x12f1('0x21')]=_0x4642ac;if(_0x459624[_0x12f1('0x37')][_0x12f1('0x45')]){_0x4711f4['include']=[{'all':!![]}];}return db[_0x12f1('0x31')][_0x12f1('0x46')](_0x4711f4);})[_0x12f1('0x27')](function(_0x178a6c){_0x22d249['rows']=_0x178a6c;return _0x22d249;})[_0x12f1('0x27')](respondWithFilteredResult(_0x533934,_0x4711f4))[_0x12f1('0x47')](handleError(_0x533934,null));};exports[_0x12f1('0x48')]=function(_0x3d3ddb,_0x44cb7b){var _0x565663={'raw':!![],'where':{'id':_0x3d3ddb[_0x12f1('0x49')]['id']}},_0x9a81ea={};_0x9a81ea[_0x12f1('0x36')]=_['keys'](db['AnalyticExtractedReport'][_0x12f1('0x32')]);_0x9a81ea[_0x12f1('0x37')]=_[_0x12f1('0x38')](_0x3d3ddb['query']);_0x9a81ea[_0x12f1('0x3f')]=_['intersection'](_0x9a81ea[_0x12f1('0x36')],_0x9a81ea[_0x12f1('0x37')]);_0x565663[_0x12f1('0x39')]=_[_0x12f1('0x3a')](_0x9a81ea[_0x12f1('0x36')],qs[_0x12f1('0x3b')](_0x3d3ddb[_0x12f1('0x37')]['fields']));_0x565663['attributes']=_0x565663[_0x12f1('0x39')][_0x12f1('0x3c')]?_0x565663['attributes']:_0x9a81ea[_0x12f1('0x36')];if(_0x3d3ddb['query']['includeAll']){_0x565663[_0x12f1('0x4a')]=[{'all':!![]}];}_0x565663=_[_0x12f1('0x43')]({},_0x565663,_0x3d3ddb['options']);return db['AnalyticExtractedReport'][_0x12f1('0x4b')](_0x565663)[_0x12f1('0x27')](handleEntityNotFound(_0x44cb7b,null))[_0x12f1('0x27')](respondWithResult(_0x44cb7b,null))[_0x12f1('0x47')](handleError(_0x44cb7b,null));};exports[_0x12f1('0x4c')]=function(_0x2cbe99,_0x561ff1){return db[_0x12f1('0x31')]['create'](_0x2cbe99['body'],{})[_0x12f1('0x27')](function(_0x4a6f10){var _0x302825=_0x2cbe99['user']['get']({'plain':!![]});if(!_0x302825)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x302825[_0x12f1('0x4d')]===_0x12f1('0x4e')){var _0x5ed6ae=_0x4a6f10['get']({'plain':!![]});var _0x2aec0b='ExtractedReports';return db[_0x12f1('0x4f')][_0x12f1('0x4b')]({'where':{'name':_0x2aec0b,'userProfileId':_0x302825[_0x12f1('0x50')]},'raw':!![]})[_0x12f1('0x27')](function(_0xf20dda){if(_0xf20dda&&_0xf20dda[_0x12f1('0x51')]===0x0){return db[_0x12f1('0x2a')][_0x12f1('0x4c')]({'name':_0x5ed6ae[_0x12f1('0x2d')],'resourceId':_0x5ed6ae['id'],'type':_0xf20dda[_0x12f1('0x2d')],'sectionId':_0xf20dda['id']},{})['then'](function(){return _0x4a6f10;});}else{return _0x4a6f10;}})[_0x12f1('0x47')](function(_0x2f8e93){logger['error'](_0x12f1('0x52'),_0x2f8e93);throw _0x2f8e93;});}return _0x4a6f10;})[_0x12f1('0x27')](respondWithResult(_0x561ff1,0xc9))[_0x12f1('0x47')](handleError(_0x561ff1,null));};exports[_0x12f1('0x26')]=function(_0x442f2f,_0x40196f){if(_0x442f2f[_0x12f1('0x53')]['id']){delete _0x442f2f[_0x12f1('0x53')]['id'];}return db[_0x12f1('0x31')][_0x12f1('0x4b')]({'where':{'id':_0x442f2f[_0x12f1('0x49')]['id']}})[_0x12f1('0x27')](handleEntityNotFound(_0x40196f,null))[_0x12f1('0x27')](saveUpdates(_0x442f2f[_0x12f1('0x53')],null))[_0x12f1('0x27')](respondWithResult(_0x40196f,null))[_0x12f1('0x47')](handleError(_0x40196f,null));};exports['destroy']=function(_0x1d2aba,_0x42fb33){return db[_0x12f1('0x31')]['find']({'where':{'id':_0x1d2aba['params']['id']}})[_0x12f1('0x27')](handleEntityNotFound(_0x42fb33,null))[_0x12f1('0x27')](removeEntity(_0x42fb33,null))[_0x12f1('0x47')](handleError(_0x42fb33,null));};exports['download']=function(_0x320415,_0x94a647,_0x2eed8c){return db['AnalyticExtractedReport'][_0x12f1('0x4b')]({'where':{'id':_0x320415[_0x12f1('0x49')]['id']},'attributes':[_0x12f1('0x2d'),'basename',_0x12f1('0x54'),_0x12f1('0x55')],'raw':!![]})[_0x12f1('0x27')](handleEntityNotFound(_0x94a647,null))['then'](function(_0x48dda0){if(_0x48dda0){if(!fs['existsSync'](path[_0x12f1('0x56')](config[_0x12f1('0x57')],'server/files/reports',_0x48dda0[_0x12f1('0x54')]))){throw new db[(_0x12f1('0x58'))][(_0x12f1('0x59'))](_0x12f1('0x5a'));}if(_0x320415['query'][_0x12f1('0x5b')]){return _0x94a647['sendStatus'](0xc8);}return _0x94a647['download'](path[_0x12f1('0x56')](config['root'],'server/files/reports',_0x48dda0['savename']),util['format'](_0x12f1('0x5c'),_0x48dda0['basename']||_0x48dda0[_0x12f1('0x2d')],_0x48dda0[_0x12f1('0x55')][_0x12f1('0x5d')]()));}})['catch'](handleError(_0x94a647,null));};