Built motion from commit 25580385.|2.6.2
[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 _0x12ee=['../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','get','ExtractedReports','UserProfileResource','destroy','error','name','send','AnalyticExtractedReport','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','type','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','basename','savename','output','root','server/files/reports','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','download','join','%s.%s','toLowerCase','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','ejs','lodash','desk.js','to-csv','querystring','ioredis','../../components/auth/service'];(function(_0x5893e5,_0x1436cc){var _0x2a35b0=function(_0x510e59){while(--_0x510e59){_0x5893e5['push'](_0x5893e5['shift']());}};_0x2a35b0(++_0x1436cc);}(_0x12ee,0xac));var _0xe12e=function(_0x1a80ae,_0x168cbd){_0x1a80ae=_0x1a80ae-0x0;var _0x2c8b41=_0x12ee[_0x1a80ae];return _0x2c8b41;};'use strict';var emlformat=require(_0xe12e('0x0'));var rimraf=require(_0xe12e('0x1'));var zipdir=require(_0xe12e('0x2'));var jsonpatch=require(_0xe12e('0x3'));var rp=require(_0xe12e('0x4'));var moment=require(_0xe12e('0x5'));var BPromise=require(_0xe12e('0x6'));var Mustache=require(_0xe12e('0x7'));var util=require(_0xe12e('0x8'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xe12e('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe12e('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xe12e('0xb'));var toCsv=require(_0xe12e('0xc'));var querystring=require(_0xe12e('0xd'));var Papa=require('papaparse');var Redis=require(_0xe12e('0xe'));var authService=require(_0xe12e('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xe12e('0x10'));var hardwareService=require(_0xe12e('0x11'));var logger=require('../../config/logger')(_0xe12e('0x12'));var utils=require(_0xe12e('0x13'));var config=require(_0xe12e('0x14'));var licenseUtil=require(_0xe12e('0x15'));var db=require(_0xe12e('0x16'))['db'];function respondWithStatusCode(_0x289029,_0x93e244){_0x93e244=_0x93e244||0xcc;return function(_0x5abc4c){if(_0x5abc4c){return _0x289029[_0xe12e('0x17')](_0x93e244);}return _0x289029['status'](_0x93e244)[_0xe12e('0x18')]();};}function respondWithResult(_0x3d3bdd,_0x1c69bd){_0x1c69bd=_0x1c69bd||0xc8;return function(_0x2e049f){if(_0x2e049f){return _0x3d3bdd[_0xe12e('0x19')](_0x1c69bd)[_0xe12e('0x1a')](_0x2e049f);}};}function respondWithFilteredResult(_0x5d4ccd,_0xbcf48e){return function(_0x381e23){if(_0x381e23){var _0x140fee=typeof _0xbcf48e[_0xe12e('0x1b')]==='undefined'&&typeof _0xbcf48e['limit']===_0xe12e('0x1c');var _0x3f482a=_0x381e23['count'];var _0x57a025=_0x140fee?0x0:_0xbcf48e[_0xe12e('0x1b')];var _0x5b76b7=_0x140fee?_0x381e23[_0xe12e('0x1d')]:_0xbcf48e[_0xe12e('0x1b')]+_0xbcf48e[_0xe12e('0x1e')];var _0x20fab1;if(_0x5b76b7>=_0x3f482a){_0x5b76b7=_0x3f482a;_0x20fab1=0xc8;}else{_0x20fab1=0xce;}_0x5d4ccd['status'](_0x20fab1);return _0x5d4ccd[_0xe12e('0x1f')](_0xe12e('0x20'),_0x57a025+'-'+_0x5b76b7+'/'+_0x3f482a)[_0xe12e('0x1a')](_0x381e23);}return null;};}function patchUpdates(_0xa7b7f1){return function(_0x1696f4){try{jsonpatch[_0xe12e('0x21')](_0x1696f4,_0xa7b7f1,!![]);}catch(_0x125bce){return BPromise[_0xe12e('0x22')](_0x125bce);}return _0x1696f4['save']();};}function saveUpdates(_0x2eb44b,_0x3dad02){return function(_0x208259){if(_0x208259){return _0x208259[_0xe12e('0x23')](_0x2eb44b)[_0xe12e('0x24')](function(_0x37dba6){return _0x37dba6;});}return null;};}function removeEntity(_0x45f900,_0x10062e){return function(_0x125365){if(_0x125365){return _0x125365['destroy']()['then'](function(){var _0x2fa80e=_0x125365[_0xe12e('0x25')]({'plain':!![]});var _0x393bd4=_0xe12e('0x26');return db[_0xe12e('0x27')][_0xe12e('0x28')]({'where':{'type':_0x393bd4,'resourceId':_0x2fa80e['id']}})[_0xe12e('0x24')](function(){return _0x125365;});})[_0xe12e('0x24')](function(){_0x45f900[_0xe12e('0x19')](0xcc)[_0xe12e('0x18')]();});}};}function handleEntityNotFound(_0xde27f6,_0x2748f3){return function(_0xe38fa){if(!_0xe38fa){_0xde27f6['sendStatus'](0x194);}return _0xe38fa;};}function handleError(_0x1f4fd2,_0x1eee7c){_0x1eee7c=_0x1eee7c||0x1f4;return function(_0x4858a4){logger[_0xe12e('0x29')](_0x4858a4['stack']);if(_0x4858a4[_0xe12e('0x2a')]){delete _0x4858a4['name'];}_0x1f4fd2[_0xe12e('0x19')](_0x1eee7c)[_0xe12e('0x2b')](_0x4858a4);};}exports['index']=function(_0x55c140,_0x2a763c){var _0x431f4d={},_0x498704={},_0x4cf402={'count':0x0,'rows':[]};var _0xd317a9=_['map'](db[_0xe12e('0x2c')][_0xe12e('0x2d')],function(_0x16236c){return{'name':_0x16236c[_0xe12e('0x2e')],'type':_0x16236c['type'][_0xe12e('0x2f')]};});_0x498704[_0xe12e('0x30')]=_[_0xe12e('0x31')](_0xd317a9,_0xe12e('0x2a'));_0x498704[_0xe12e('0x32')]=_[_0xe12e('0x33')](_0x55c140[_0xe12e('0x32')]);_0x498704[_0xe12e('0x34')]=_[_0xe12e('0x35')](_0x498704[_0xe12e('0x30')],_0x498704[_0xe12e('0x32')]);_0x431f4d[_0xe12e('0x36')]=_[_0xe12e('0x35')](_0x498704[_0xe12e('0x30')],qs['fields'](_0x55c140[_0xe12e('0x32')][_0xe12e('0x37')]));_0x431f4d['attributes']=_0x431f4d[_0xe12e('0x36')][_0xe12e('0x38')]?_0x431f4d['attributes']:_0x498704[_0xe12e('0x30')];if(!_0x55c140['query'][_0xe12e('0x39')](_0xe12e('0x3a'))){_0x431f4d['limit']=qs[_0xe12e('0x1e')](_0x55c140[_0xe12e('0x32')][_0xe12e('0x1e')]);_0x431f4d['offset']=qs[_0xe12e('0x1b')](_0x55c140[_0xe12e('0x32')][_0xe12e('0x1b')]);}_0x431f4d['order']=qs[_0xe12e('0x3b')](_0x55c140['query'][_0xe12e('0x3b')]);_0x431f4d[_0xe12e('0x3c')]=qs[_0xe12e('0x34')](_[_0xe12e('0x3d')](_0x55c140[_0xe12e('0x32')],_0x498704['filters']),_0xd317a9);if(_0x55c140[_0xe12e('0x32')][_0xe12e('0x3e')]){_0x431f4d['where']=_['merge'](_0x431f4d[_0xe12e('0x3c')],{'$or':_[_0xe12e('0x31')](_0xd317a9,function(_0x2cae6e){if(_0x2cae6e[_0xe12e('0x3f')]!==_0xe12e('0x40')){var _0x308af1={};_0x308af1[_0x2cae6e[_0xe12e('0x2a')]]={'$like':'%'+_0x55c140[_0xe12e('0x32')][_0xe12e('0x3e')]+'%'};return _0x308af1;}})});}_0x431f4d=_[_0xe12e('0x41')]({},_0x431f4d,_0x55c140[_0xe12e('0x42')]);var _0x4101c3={'where':_0x431f4d[_0xe12e('0x3c')]};return db[_0xe12e('0x2c')][_0xe12e('0x1d')](_0x4101c3)[_0xe12e('0x24')](function(_0x359651){_0x4cf402[_0xe12e('0x1d')]=_0x359651;if(_0x55c140[_0xe12e('0x32')][_0xe12e('0x43')]){_0x431f4d[_0xe12e('0x44')]=[{'all':!![]}];}return db[_0xe12e('0x2c')][_0xe12e('0x45')](_0x431f4d);})['then'](function(_0xc4e65f){_0x4cf402[_0xe12e('0x46')]=_0xc4e65f;return _0x4cf402;})[_0xe12e('0x24')](respondWithFilteredResult(_0x2a763c,_0x431f4d))[_0xe12e('0x47')](handleError(_0x2a763c,null));};exports[_0xe12e('0x48')]=function(_0x5f52f0,_0x149d3e){var _0x4d1e95={'raw':!![],'where':{'id':_0x5f52f0[_0xe12e('0x49')]['id']}},_0x1d503f={};_0x1d503f['model']=_[_0xe12e('0x33')](db[_0xe12e('0x2c')]['rawAttributes']);_0x1d503f[_0xe12e('0x32')]=_[_0xe12e('0x33')](_0x5f52f0[_0xe12e('0x32')]);_0x1d503f['filters']=_[_0xe12e('0x35')](_0x1d503f[_0xe12e('0x30')],_0x1d503f[_0xe12e('0x32')]);_0x4d1e95[_0xe12e('0x36')]=_['intersection'](_0x1d503f[_0xe12e('0x30')],qs['fields'](_0x5f52f0[_0xe12e('0x32')]['fields']));_0x4d1e95[_0xe12e('0x36')]=_0x4d1e95[_0xe12e('0x36')][_0xe12e('0x38')]?_0x4d1e95[_0xe12e('0x36')]:_0x1d503f[_0xe12e('0x30')];if(_0x5f52f0[_0xe12e('0x32')][_0xe12e('0x43')]){_0x4d1e95[_0xe12e('0x44')]=[{'all':!![]}];}_0x4d1e95=_[_0xe12e('0x41')]({},_0x4d1e95,_0x5f52f0[_0xe12e('0x42')]);return db[_0xe12e('0x2c')][_0xe12e('0x4a')](_0x4d1e95)[_0xe12e('0x24')](handleEntityNotFound(_0x149d3e,null))[_0xe12e('0x24')](respondWithResult(_0x149d3e,null))[_0xe12e('0x47')](handleError(_0x149d3e,null));};exports[_0xe12e('0x4b')]=function(_0x47a711,_0x5c22b9){return db['AnalyticExtractedReport']['create'](_0x47a711[_0xe12e('0x4c')],{})[_0xe12e('0x24')](function(_0x361b73){var _0x1e20d0=_0x47a711[_0xe12e('0x4d')][_0xe12e('0x25')]({'plain':!![]});if(!_0x1e20d0)throw new Error(_0xe12e('0x4e'));if(_0x1e20d0[_0xe12e('0x4f')]===_0xe12e('0x4d')){var _0x4e3d4b=_0x361b73[_0xe12e('0x25')]({'plain':!![]});var _0x444428='ExtractedReports';return db['UserProfileSection'][_0xe12e('0x4a')]({'where':{'name':_0x444428,'userProfileId':_0x1e20d0[_0xe12e('0x50')]},'raw':!![]})['then'](function(_0x4ad36f){if(_0x4ad36f&&_0x4ad36f['autoAssociation']===0x0){return db['UserProfileResource'][_0xe12e('0x4b')]({'name':_0x4e3d4b[_0xe12e('0x2a')],'resourceId':_0x4e3d4b['id'],'type':_0x4ad36f[_0xe12e('0x2a')],'sectionId':_0x4ad36f['id']},{})[_0xe12e('0x24')](function(){return _0x361b73;});}else{return _0x361b73;}})[_0xe12e('0x47')](function(_0xfefbe2){logger[_0xe12e('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xfefbe2);throw _0xfefbe2;});}return _0x361b73;})[_0xe12e('0x24')](respondWithResult(_0x5c22b9,0xc9))[_0xe12e('0x47')](handleError(_0x5c22b9,null));};exports[_0xe12e('0x23')]=function(_0x522a32,_0x3035d2){if(_0x522a32[_0xe12e('0x4c')]['id']){delete _0x522a32[_0xe12e('0x4c')]['id'];}return db[_0xe12e('0x2c')][_0xe12e('0x4a')]({'where':{'id':_0x522a32[_0xe12e('0x49')]['id']}})[_0xe12e('0x24')](handleEntityNotFound(_0x3035d2,null))[_0xe12e('0x24')](saveUpdates(_0x522a32['body'],null))[_0xe12e('0x24')](respondWithResult(_0x3035d2,null))[_0xe12e('0x47')](handleError(_0x3035d2,null));};exports['destroy']=function(_0x33720e,_0x10fcdb){return db[_0xe12e('0x2c')][_0xe12e('0x4a')]({'where':{'id':_0x33720e['params']['id']}})['then'](handleEntityNotFound(_0x10fcdb,null))[_0xe12e('0x24')](removeEntity(_0x10fcdb,null))['catch'](handleError(_0x10fcdb,null));};exports['download']=function(_0x4578ca,_0x3d94f4,_0x3ca16c){return db['AnalyticExtractedReport'][_0xe12e('0x4a')]({'where':{'id':_0x4578ca['params']['id']},'attributes':[_0xe12e('0x2a'),_0xe12e('0x51'),_0xe12e('0x52'),_0xe12e('0x53')],'raw':!![]})[_0xe12e('0x24')](handleEntityNotFound(_0x3d94f4,null))[_0xe12e('0x24')](function(_0x200de3){if(_0x200de3){if(!fs['existsSync'](path['join'](config[_0xe12e('0x54')],_0xe12e('0x55'),_0x200de3['savename']))){throw new db[(_0xe12e('0x56'))][(_0xe12e('0x57'))](_0xe12e('0x58'));}if(_0x4578ca[_0xe12e('0x32')][_0xe12e('0x59')]){return _0x3d94f4[_0xe12e('0x17')](0xc8);}return _0x3d94f4[_0xe12e('0x5a')](path[_0xe12e('0x5b')](config[_0xe12e('0x54')],_0xe12e('0x55'),_0x200de3[_0xe12e('0x52')]),util['format'](_0xe12e('0x5c'),_0x200de3[_0xe12e('0x51')]||_0x200de3['name'],_0x200de3[_0xe12e('0x53')][_0xe12e('0x5d')]()));}})[_0xe12e('0x47')](handleError(_0x3d94f4,null));};