a8bdb99e8a5f4b3afe06e33d1c56128f8cbd2e7d
[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 _0x9bb9=['rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','sendStatus','status','end','json','count','offset','limit','Content-Range','reject','save','update','destroy','ExtractedReports','UserProfileResource','then','error','stack','name','send','index','map','AnalyticExtractedReport','rawAttributes','type','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','options','rows','catch','show','params','keys','include','find','create','body','user','get','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','basename','output','join','server/files/reports','savename','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','download','root','format','toLowerCase','html-pdf','eml-format'];(function(_0x2e833a,_0xf24472){var _0x5d4a20=function(_0x31e0b6){while(--_0x31e0b6){_0x2e833a['push'](_0x2e833a['shift']());}};_0x5d4a20(++_0xf24472);}(_0x9bb9,0xb2));var _0x99bb=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x9bb9[_0x20a584];return _0x4b41a8;};'use strict';var pdf=require(_0x99bb('0x0'));var emlformat=require(_0x99bb('0x1'));var rimraf=require(_0x99bb('0x2'));var zipdir=require(_0x99bb('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x99bb('0x4'));var moment=require(_0x99bb('0x5'));var BPromise=require(_0x99bb('0x6'));var Mustache=require(_0x99bb('0x7'));var util=require(_0x99bb('0x8'));var path=require(_0x99bb('0x9'));var sox=require(_0x99bb('0xa'));var csv=require('to-csv');var ejs=require(_0x99bb('0xb'));var fs=require('fs');var _=require(_0x99bb('0xc'));var squel=require('squel');var crypto=require(_0x99bb('0xd'));var jsforce=require(_0x99bb('0xe'));var deskjs=require(_0x99bb('0xf'));var toCsv=require(_0x99bb('0x10'));var querystring=require('querystring');var Papa=require(_0x99bb('0x11'));var Redis=require(_0x99bb('0x12'));var authService=require(_0x99bb('0x13'));var qs=require(_0x99bb('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x99bb('0x15'));var logger=require(_0x99bb('0x16'))(_0x99bb('0x17'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1cc78f,_0x355e1f){_0x355e1f=_0x355e1f||0xcc;return function(_0x438435){if(_0x438435){return _0x1cc78f[_0x99bb('0x18')](_0x355e1f);}return _0x1cc78f[_0x99bb('0x19')](_0x355e1f)[_0x99bb('0x1a')]();};}function respondWithResult(_0x4b1441,_0x3ab52d){_0x3ab52d=_0x3ab52d||0xc8;return function(_0x5c1d00){if(_0x5c1d00){return _0x4b1441[_0x99bb('0x19')](_0x3ab52d)[_0x99bb('0x1b')](_0x5c1d00);}};}function respondWithFilteredResult(_0x1c5e82,_0x10d4dd){return function(_0x3e04e6){if(_0x3e04e6){var _0x4aac71=_0x3e04e6[_0x99bb('0x1c')],_0x5a2f5a=_0x10d4dd[_0x99bb('0x1d')],_0x53d276=_0x10d4dd[_0x99bb('0x1d')]+_0x10d4dd[_0x99bb('0x1e')],_0x6b6033;if(_0x53d276>=_0x4aac71){_0x53d276=_0x4aac71;_0x6b6033=0xc8;}else{_0x6b6033=0xce;}_0x1c5e82[_0x99bb('0x19')](_0x6b6033);return _0x1c5e82['set'](_0x99bb('0x1f'),_0x5a2f5a+'-'+_0x53d276+'/'+_0x4aac71)[_0x99bb('0x1b')](_0x3e04e6);}return null;};}function patchUpdates(_0x28dddd){return function(_0x279183){try{jsonpatch['apply'](_0x279183,_0x28dddd,!![]);}catch(_0x3c1684){return BPromise[_0x99bb('0x20')](_0x3c1684);}return _0x279183[_0x99bb('0x21')]();};}function saveUpdates(_0x523673,_0x4e14ea){return function(_0x4d5dcb){if(_0x4d5dcb){return _0x4d5dcb[_0x99bb('0x22')](_0x523673)['then'](function(_0x4dd71f){return _0x4dd71f;});}return null;};}function removeEntity(_0x17c4be,_0x916c3){return function(_0x1e0e13){if(_0x1e0e13){return _0x1e0e13[_0x99bb('0x23')]()['then'](function(){var _0x1548dd=_0x1e0e13['get']({'plain':!![]});var _0x5f22c8=_0x99bb('0x24');return db[_0x99bb('0x25')][_0x99bb('0x23')]({'where':{'type':_0x5f22c8,'resourceId':_0x1548dd['id']}})[_0x99bb('0x26')](function(){return _0x1e0e13;});})[_0x99bb('0x26')](function(){_0x17c4be['status'](0xcc)[_0x99bb('0x1a')]();});}};}function handleEntityNotFound(_0x3abfb9,_0x360d96){return function(_0x20fb78){if(!_0x20fb78){_0x3abfb9['sendStatus'](0x194);}return _0x20fb78;};}function handleError(_0x6df335,_0x2307c4){_0x2307c4=_0x2307c4||0x1f4;return function(_0xe388a7){logger[_0x99bb('0x27')](_0xe388a7[_0x99bb('0x28')]);if(_0xe388a7[_0x99bb('0x29')]){delete _0xe388a7[_0x99bb('0x29')];}_0x6df335[_0x99bb('0x19')](_0x2307c4)[_0x99bb('0x2a')](_0xe388a7);};}exports[_0x99bb('0x2b')]=function(_0x3fbc27,_0x8761d3){var _0x1547b3={},_0x552f7b={},_0x4dd435={'count':0x0,'rows':[]};var _0x205ec6=_[_0x99bb('0x2c')](db[_0x99bb('0x2d')][_0x99bb('0x2e')],function(_0x13d3d2){return{'name':_0x13d3d2['fieldName'],'type':_0x13d3d2[_0x99bb('0x2f')][_0x99bb('0x30')]};});_0x552f7b[_0x99bb('0x31')]=_['map'](_0x205ec6,_0x99bb('0x29'));_0x552f7b[_0x99bb('0x32')]=_['keys'](_0x3fbc27['query']);_0x552f7b[_0x99bb('0x33')]=_['intersection'](_0x552f7b[_0x99bb('0x31')],_0x552f7b['query']);_0x1547b3[_0x99bb('0x34')]=_[_0x99bb('0x35')](_0x552f7b[_0x99bb('0x31')],qs['fields'](_0x3fbc27['query'][_0x99bb('0x36')]));_0x1547b3[_0x99bb('0x34')]=_0x1547b3[_0x99bb('0x34')][_0x99bb('0x37')]?_0x1547b3[_0x99bb('0x34')]:_0x552f7b[_0x99bb('0x31')];if(!_0x3fbc27[_0x99bb('0x32')][_0x99bb('0x38')](_0x99bb('0x39'))){_0x1547b3[_0x99bb('0x1e')]=qs[_0x99bb('0x1e')](_0x3fbc27[_0x99bb('0x32')][_0x99bb('0x1e')]);_0x1547b3['offset']=qs[_0x99bb('0x1d')](_0x3fbc27[_0x99bb('0x32')][_0x99bb('0x1d')]);}_0x1547b3[_0x99bb('0x3a')]=qs[_0x99bb('0x3b')](_0x3fbc27[_0x99bb('0x32')][_0x99bb('0x3b')]);_0x1547b3[_0x99bb('0x3c')]=qs[_0x99bb('0x33')](_['pick'](_0x3fbc27[_0x99bb('0x32')],_0x552f7b['filters']),_0x205ec6);if(_0x3fbc27['query'][_0x99bb('0x3d')]){_0x1547b3[_0x99bb('0x3c')]=_[_0x99bb('0x3e')](_0x1547b3['where'],{'$or':_[_0x99bb('0x2c')](_0x205ec6,function(_0x283007){if(_0x283007[_0x99bb('0x2f')]!=='VIRTUAL'){var _0x48245a={};_0x48245a[_0x283007['name']]={'$like':'%'+_0x3fbc27[_0x99bb('0x32')][_0x99bb('0x3d')]+'%'};return _0x48245a;}})});}_0x1547b3=_[_0x99bb('0x3e')]({},_0x1547b3,_0x3fbc27[_0x99bb('0x3f')]);var _0x2e6ab4={'where':_0x1547b3[_0x99bb('0x3c')]};return db[_0x99bb('0x2d')]['count'](_0x2e6ab4)[_0x99bb('0x26')](function(_0x1a9db7){_0x4dd435[_0x99bb('0x1c')]=_0x1a9db7;if(_0x3fbc27['query']['includeAll']){_0x1547b3['include']=[{'all':!![]}];}return db[_0x99bb('0x2d')]['findAll'](_0x1547b3);})[_0x99bb('0x26')](function(_0x4071d1){_0x4dd435[_0x99bb('0x40')]=_0x4071d1;return _0x4dd435;})[_0x99bb('0x26')](respondWithFilteredResult(_0x8761d3,_0x1547b3))[_0x99bb('0x41')](handleError(_0x8761d3,null));};exports[_0x99bb('0x42')]=function(_0x1ac7b7,_0x3ae288){var _0x4dc6cf={'raw':!![],'where':{'id':_0x1ac7b7[_0x99bb('0x43')]['id']}},_0x5ab881={};_0x5ab881[_0x99bb('0x31')]=_['keys'](db['AnalyticExtractedReport'][_0x99bb('0x2e')]);_0x5ab881[_0x99bb('0x32')]=_[_0x99bb('0x44')](_0x1ac7b7[_0x99bb('0x32')]);_0x5ab881[_0x99bb('0x33')]=_[_0x99bb('0x35')](_0x5ab881[_0x99bb('0x31')],_0x5ab881[_0x99bb('0x32')]);_0x4dc6cf['attributes']=_[_0x99bb('0x35')](_0x5ab881['model'],qs[_0x99bb('0x36')](_0x1ac7b7[_0x99bb('0x32')][_0x99bb('0x36')]));_0x4dc6cf[_0x99bb('0x34')]=_0x4dc6cf[_0x99bb('0x34')]['length']?_0x4dc6cf[_0x99bb('0x34')]:_0x5ab881[_0x99bb('0x31')];if(_0x1ac7b7[_0x99bb('0x32')]['includeAll']){_0x4dc6cf[_0x99bb('0x45')]=[{'all':!![]}];}_0x4dc6cf=_[_0x99bb('0x3e')]({},_0x4dc6cf,_0x1ac7b7[_0x99bb('0x3f')]);return db[_0x99bb('0x2d')][_0x99bb('0x46')](_0x4dc6cf)[_0x99bb('0x26')](handleEntityNotFound(_0x3ae288,null))[_0x99bb('0x26')](respondWithResult(_0x3ae288,null))[_0x99bb('0x41')](handleError(_0x3ae288,null));};exports[_0x99bb('0x47')]=function(_0x8293d1,_0x3beca4){return db[_0x99bb('0x2d')][_0x99bb('0x47')](_0x8293d1[_0x99bb('0x48')],{})[_0x99bb('0x26')](function(_0x1084eb){var _0x20e140=_0x8293d1[_0x99bb('0x49')][_0x99bb('0x4a')]({'plain':!![]});if(!_0x20e140)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x20e140[_0x99bb('0x4b')]===_0x99bb('0x49')){var _0xdbb648=_0x1084eb[_0x99bb('0x4a')]({'plain':!![]});var _0x1d045e='ExtractedReports';return db['UserProfileSection'][_0x99bb('0x46')]({'where':{'name':_0x1d045e,'userProfileId':_0x20e140[_0x99bb('0x4c')]},'raw':!![]})[_0x99bb('0x26')](function(_0x4793da){if(_0x4793da&&_0x4793da['autoAssociation']===0x0){return db['UserProfileResource'][_0x99bb('0x47')]({'name':_0xdbb648[_0x99bb('0x29')],'resourceId':_0xdbb648['id'],'type':_0x4793da[_0x99bb('0x29')],'sectionId':_0x4793da['id']},{})[_0x99bb('0x26')](function(){return _0x1084eb;});}else{return _0x1084eb;}})[_0x99bb('0x41')](function(_0x5bb8b7){logger[_0x99bb('0x27')](_0x99bb('0x4d'),_0x5bb8b7);throw _0x5bb8b7;});}return _0x1084eb;})[_0x99bb('0x26')](respondWithResult(_0x3beca4,0xc9))['catch'](handleError(_0x3beca4,null));};exports[_0x99bb('0x22')]=function(_0x1f232f,_0x40256d){if(_0x1f232f['body']['id']){delete _0x1f232f[_0x99bb('0x48')]['id'];}return db[_0x99bb('0x2d')][_0x99bb('0x46')]({'where':{'id':_0x1f232f[_0x99bb('0x43')]['id']}})['then'](handleEntityNotFound(_0x40256d,null))[_0x99bb('0x26')](saveUpdates(_0x1f232f[_0x99bb('0x48')],null))[_0x99bb('0x26')](respondWithResult(_0x40256d,null))[_0x99bb('0x41')](handleError(_0x40256d,null));};exports[_0x99bb('0x23')]=function(_0x546a9f,_0x534840){return db[_0x99bb('0x2d')]['find']({'where':{'id':_0x546a9f[_0x99bb('0x43')]['id']}})[_0x99bb('0x26')](handleEntityNotFound(_0x534840,null))[_0x99bb('0x26')](removeEntity(_0x534840,null))[_0x99bb('0x41')](handleError(_0x534840,null));};exports['download']=function(_0x475267,_0x268cb0,_0x36af0d){return db[_0x99bb('0x2d')]['find']({'where':{'id':_0x475267[_0x99bb('0x43')]['id']},'attributes':['name',_0x99bb('0x4e'),'savename',_0x99bb('0x4f')],'raw':!![]})[_0x99bb('0x26')](handleEntityNotFound(_0x268cb0,null))[_0x99bb('0x26')](function(_0x587bed){if(_0x587bed){if(!fs['existsSync'](path[_0x99bb('0x50')](config['root'],_0x99bb('0x51'),_0x587bed[_0x99bb('0x52')]))){throw new db['Sequelize'][(_0x99bb('0x53'))](_0x99bb('0x54'));}if(_0x475267[_0x99bb('0x32')][_0x99bb('0x55')]){return _0x268cb0[_0x99bb('0x18')](0xc8);}return _0x268cb0[_0x99bb('0x56')](path['join'](config[_0x99bb('0x57')],_0x99bb('0x51'),_0x587bed['savename']),util[_0x99bb('0x58')]('%s.%s',_0x587bed[_0x99bb('0x4e')]||_0x587bed[_0x99bb('0x29')],_0x587bed[_0x99bb('0x4f')][_0x99bb('0x59')]()));}})[_0x99bb('0x41')](handleError(_0x268cb0,null));};