Built motion from commit da617fac.|2.6.6
[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 _0xc7ae=['Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','download','toLowerCase','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/license/util','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','get','ExtractedReports','UserProfileResource','sendStatus','error','stack','name','send','index','map','AnalyticExtractedReport','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','basename','savename','output','existsSync','join','server/files/reports'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0xc7ae,0x1f0));var _0xec7a=function(_0x286712,_0x6d9ea5){_0x286712=_0x286712-0x0;var _0x3a538c=_0xc7ae[_0x286712];return _0x3a538c;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xec7a('0x0'));var zipdir=require(_0xec7a('0x1'));var jsonpatch=require(_0xec7a('0x2'));var rp=require(_0xec7a('0x3'));var moment=require(_0xec7a('0x4'));var BPromise=require(_0xec7a('0x5'));var Mustache=require(_0xec7a('0x6'));var util=require(_0xec7a('0x7'));var path=require('path');var sox=require(_0xec7a('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xec7a('0x9'));var _=require(_0xec7a('0xa'));var squel=require(_0xec7a('0xb'));var crypto=require(_0xec7a('0xc'));var jsforce=require(_0xec7a('0xd'));var deskjs=require(_0xec7a('0xe'));var toCsv=require(_0xec7a('0xf'));var querystring=require(_0xec7a('0x10'));var Papa=require('papaparse');var Redis=require(_0xec7a('0x11'));var authService=require(_0xec7a('0x12'));var qs=require(_0xec7a('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xec7a('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0xec7a('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xec7a('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4dede9,_0x4f388d){_0x4f388d=_0x4f388d||0xcc;return function(_0x563922){if(_0x563922){return _0x4dede9['sendStatus'](_0x4f388d);}return _0x4dede9['status'](_0x4f388d)[_0xec7a('0x17')]();};}function respondWithResult(_0x196996,_0xd27f94){_0xd27f94=_0xd27f94||0xc8;return function(_0x4d06cc){if(_0x4d06cc){return _0x196996[_0xec7a('0x18')](_0xd27f94)[_0xec7a('0x19')](_0x4d06cc);}};}function respondWithFilteredResult(_0x17afbf,_0x3ecedc){return function(_0x25407e){if(_0x25407e){var _0x57dfd8=typeof _0x3ecedc[_0xec7a('0x1a')]==='undefined'&&typeof _0x3ecedc[_0xec7a('0x1b')]===_0xec7a('0x1c');var _0x4bc54e=_0x25407e[_0xec7a('0x1d')];var _0xfd3ad8=_0x57dfd8?0x0:_0x3ecedc[_0xec7a('0x1a')];var _0x4ce5a9=_0x57dfd8?_0x25407e[_0xec7a('0x1d')]:_0x3ecedc[_0xec7a('0x1a')]+_0x3ecedc[_0xec7a('0x1b')];var _0x21de0d;if(_0x4ce5a9>=_0x4bc54e){_0x4ce5a9=_0x4bc54e;_0x21de0d=0xc8;}else{_0x21de0d=0xce;}_0x17afbf['status'](_0x21de0d);return _0x17afbf[_0xec7a('0x1e')](_0xec7a('0x1f'),_0xfd3ad8+'-'+_0x4ce5a9+'/'+_0x4bc54e)[_0xec7a('0x19')](_0x25407e);}return null;};}function patchUpdates(_0x1683b9){return function(_0x2d44e0){try{jsonpatch[_0xec7a('0x20')](_0x2d44e0,_0x1683b9,!![]);}catch(_0x2e4d71){return BPromise[_0xec7a('0x21')](_0x2e4d71);}return _0x2d44e0[_0xec7a('0x22')]();};}function saveUpdates(_0x4d9e9a,_0x5736b5){return function(_0x31daeb){if(_0x31daeb){return _0x31daeb[_0xec7a('0x23')](_0x4d9e9a)[_0xec7a('0x24')](function(_0x59b441){return _0x59b441;});}return null;};}function removeEntity(_0x3be193,_0x4075fb){return function(_0x21bdbc){if(_0x21bdbc){return _0x21bdbc[_0xec7a('0x25')]()[_0xec7a('0x24')](function(){var _0x301018=_0x21bdbc[_0xec7a('0x26')]({'plain':!![]});var _0xab9ec7=_0xec7a('0x27');return db[_0xec7a('0x28')]['destroy']({'where':{'type':_0xab9ec7,'resourceId':_0x301018['id']}})[_0xec7a('0x24')](function(){return _0x21bdbc;});})[_0xec7a('0x24')](function(){_0x3be193[_0xec7a('0x18')](0xcc)[_0xec7a('0x17')]();});}};}function handleEntityNotFound(_0x22e983,_0x3f4ad4){return function(_0x362a61){if(!_0x362a61){_0x22e983[_0xec7a('0x29')](0x194);}return _0x362a61;};}function handleError(_0x227bef,_0x466340){_0x466340=_0x466340||0x1f4;return function(_0x384902){logger[_0xec7a('0x2a')](_0x384902[_0xec7a('0x2b')]);if(_0x384902[_0xec7a('0x2c')]){delete _0x384902[_0xec7a('0x2c')];}_0x227bef[_0xec7a('0x18')](_0x466340)[_0xec7a('0x2d')](_0x384902);};}exports[_0xec7a('0x2e')]=function(_0x656855,_0x246c6f){var _0x112e44={},_0x3979fa={},_0x3f6bca={'count':0x0,'rows':[]};var _0x55a5c2=_[_0xec7a('0x2f')](db[_0xec7a('0x30')][_0xec7a('0x31')],function(_0x11a57d){return{'name':_0x11a57d[_0xec7a('0x32')],'type':_0x11a57d[_0xec7a('0x33')][_0xec7a('0x34')]};});_0x3979fa['model']=_[_0xec7a('0x2f')](_0x55a5c2,_0xec7a('0x2c'));_0x3979fa[_0xec7a('0x35')]=_[_0xec7a('0x36')](_0x656855[_0xec7a('0x35')]);_0x3979fa[_0xec7a('0x37')]=_[_0xec7a('0x38')](_0x3979fa[_0xec7a('0x39')],_0x3979fa['query']);_0x112e44[_0xec7a('0x3a')]=_[_0xec7a('0x38')](_0x3979fa[_0xec7a('0x39')],qs[_0xec7a('0x3b')](_0x656855[_0xec7a('0x35')][_0xec7a('0x3b')]));_0x112e44['attributes']=_0x112e44[_0xec7a('0x3a')][_0xec7a('0x3c')]?_0x112e44[_0xec7a('0x3a')]:_0x3979fa[_0xec7a('0x39')];if(!_0x656855[_0xec7a('0x35')][_0xec7a('0x3d')](_0xec7a('0x3e'))){_0x112e44[_0xec7a('0x1b')]=qs[_0xec7a('0x1b')](_0x656855[_0xec7a('0x35')][_0xec7a('0x1b')]);_0x112e44[_0xec7a('0x1a')]=qs[_0xec7a('0x1a')](_0x656855[_0xec7a('0x35')]['offset']);}_0x112e44[_0xec7a('0x3f')]=qs[_0xec7a('0x40')](_0x656855['query'][_0xec7a('0x40')]);_0x112e44[_0xec7a('0x41')]=qs[_0xec7a('0x37')](_['pick'](_0x656855[_0xec7a('0x35')],_0x3979fa[_0xec7a('0x37')]),_0x55a5c2);if(_0x656855[_0xec7a('0x35')][_0xec7a('0x42')]){_0x112e44['where']=_[_0xec7a('0x43')](_0x112e44['where'],{'$or':_['map'](_0x55a5c2,function(_0x695bc2){if(_0x695bc2[_0xec7a('0x33')]!==_0xec7a('0x44')){var _0x597ac9={};_0x597ac9[_0x695bc2[_0xec7a('0x2c')]]={'$like':'%'+_0x656855[_0xec7a('0x35')][_0xec7a('0x42')]+'%'};return _0x597ac9;}})});}_0x112e44=_[_0xec7a('0x43')]({},_0x112e44,_0x656855[_0xec7a('0x45')]);var _0x42763a={'where':_0x112e44['where']};return db[_0xec7a('0x30')][_0xec7a('0x1d')](_0x42763a)[_0xec7a('0x24')](function(_0x576cda){_0x3f6bca[_0xec7a('0x1d')]=_0x576cda;if(_0x656855[_0xec7a('0x35')][_0xec7a('0x46')]){_0x112e44[_0xec7a('0x47')]=[{'all':!![]}];}return db[_0xec7a('0x30')][_0xec7a('0x48')](_0x112e44);})[_0xec7a('0x24')](function(_0x4f1f2e){_0x3f6bca[_0xec7a('0x49')]=_0x4f1f2e;return _0x3f6bca;})[_0xec7a('0x24')](respondWithFilteredResult(_0x246c6f,_0x112e44))[_0xec7a('0x4a')](handleError(_0x246c6f,null));};exports['show']=function(_0xbcf6e9,_0x7d293d){var _0x56beec={'raw':!![],'where':{'id':_0xbcf6e9[_0xec7a('0x4b')]['id']}},_0x1566da={};_0x1566da[_0xec7a('0x39')]=_[_0xec7a('0x36')](db[_0xec7a('0x30')]['rawAttributes']);_0x1566da[_0xec7a('0x35')]=_[_0xec7a('0x36')](_0xbcf6e9[_0xec7a('0x35')]);_0x1566da['filters']=_[_0xec7a('0x38')](_0x1566da['model'],_0x1566da['query']);_0x56beec[_0xec7a('0x3a')]=_[_0xec7a('0x38')](_0x1566da[_0xec7a('0x39')],qs['fields'](_0xbcf6e9[_0xec7a('0x35')]['fields']));_0x56beec[_0xec7a('0x3a')]=_0x56beec[_0xec7a('0x3a')]['length']?_0x56beec[_0xec7a('0x3a')]:_0x1566da['model'];if(_0xbcf6e9[_0xec7a('0x35')]['includeAll']){_0x56beec['include']=[{'all':!![]}];}_0x56beec=_[_0xec7a('0x43')]({},_0x56beec,_0xbcf6e9[_0xec7a('0x45')]);return db['AnalyticExtractedReport'][_0xec7a('0x4c')](_0x56beec)['then'](handleEntityNotFound(_0x7d293d,null))['then'](respondWithResult(_0x7d293d,null))[_0xec7a('0x4a')](handleError(_0x7d293d,null));};exports[_0xec7a('0x4d')]=function(_0x5510d8,_0x2fe136){return db[_0xec7a('0x30')][_0xec7a('0x4d')](_0x5510d8[_0xec7a('0x4e')],{})['then'](function(_0x181766){var _0x56e3b6=_0x5510d8[_0xec7a('0x4f')][_0xec7a('0x26')]({'plain':!![]});if(!_0x56e3b6)throw new Error(_0xec7a('0x50'));if(_0x56e3b6[_0xec7a('0x51')]===_0xec7a('0x4f')){var _0x53fcee=_0x181766[_0xec7a('0x26')]({'plain':!![]});var _0x5a6c01=_0xec7a('0x27');return db[_0xec7a('0x52')][_0xec7a('0x4c')]({'where':{'name':_0x5a6c01,'userProfileId':_0x56e3b6[_0xec7a('0x53')]},'raw':!![]})[_0xec7a('0x24')](function(_0x43eae2){if(_0x43eae2&&_0x43eae2[_0xec7a('0x54')]===0x0){return db[_0xec7a('0x28')]['create']({'name':_0x53fcee[_0xec7a('0x2c')],'resourceId':_0x53fcee['id'],'type':_0x43eae2['name'],'sectionId':_0x43eae2['id']},{})[_0xec7a('0x24')](function(){return _0x181766;});}else{return _0x181766;}})[_0xec7a('0x4a')](function(_0x4dd79d){logger[_0xec7a('0x2a')](_0xec7a('0x55'),_0x4dd79d);throw _0x4dd79d;});}return _0x181766;})['then'](respondWithResult(_0x2fe136,0xc9))[_0xec7a('0x4a')](handleError(_0x2fe136,null));};exports[_0xec7a('0x23')]=function(_0x30b559,_0x48c88a){if(_0x30b559[_0xec7a('0x4e')]['id']){delete _0x30b559['body']['id'];}return db[_0xec7a('0x30')][_0xec7a('0x4c')]({'where':{'id':_0x30b559[_0xec7a('0x4b')]['id']}})[_0xec7a('0x24')](handleEntityNotFound(_0x48c88a,null))[_0xec7a('0x24')](saveUpdates(_0x30b559[_0xec7a('0x4e')],null))[_0xec7a('0x24')](respondWithResult(_0x48c88a,null))['catch'](handleError(_0x48c88a,null));};exports[_0xec7a('0x25')]=function(_0x1deadb,_0x5c64ea){return db['AnalyticExtractedReport']['find']({'where':{'id':_0x1deadb[_0xec7a('0x4b')]['id']}})[_0xec7a('0x24')](handleEntityNotFound(_0x5c64ea,null))[_0xec7a('0x24')](removeEntity(_0x5c64ea,null))['catch'](handleError(_0x5c64ea,null));};exports['download']=function(_0x288872,_0x27022d,_0x229d3e){return db[_0xec7a('0x30')][_0xec7a('0x4c')]({'where':{'id':_0x288872['params']['id']},'attributes':[_0xec7a('0x2c'),_0xec7a('0x56'),_0xec7a('0x57'),_0xec7a('0x58')],'raw':!![]})[_0xec7a('0x24')](handleEntityNotFound(_0x27022d,null))[_0xec7a('0x24')](function(_0x5d6277){if(_0x5d6277){if(!fs[_0xec7a('0x59')](path[_0xec7a('0x5a')](config['root'],_0xec7a('0x5b'),_0x5d6277[_0xec7a('0x57')]))){throw new db[(_0xec7a('0x5c'))][(_0xec7a('0x5d'))](_0xec7a('0x5e'));}if(_0x288872[_0xec7a('0x35')][_0xec7a('0x5f')]){return _0x27022d['sendStatus'](0xc8);}return _0x27022d[_0xec7a('0x60')](path['join'](config['root'],_0xec7a('0x5b'),_0x5d6277[_0xec7a('0x57')]),util['format']('%s.%s',_0x5d6277[_0xec7a('0x56')]||_0x5d6277[_0xec7a('0x2c')],_0x5d6277[_0xec7a('0x58')][_0xec7a('0x61')]()));}})[_0xec7a('0x4a')](handleError(_0x27022d,null));};