3c60d2163716f1f0366f749829bfa1c534a30986
[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 _0x90ed=['length','hasOwnProperty','nolimit','limit','sort','where','filter','merge','VIRTUAL','options','AnalyticExtractedReport','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','create','role','user','UserProfileSection','userProfileId','autoAssociation','body','savename','output','existsSync','root','Sequelize','ValidationError','exists','download','server/files/reports','format','%s.%s','basename','html-pdf','eml-format','rimraf','zip-dir','request-promise','util','sox','ejs','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','count','offset','set','Content-Range','json','apply','update','then','destroy','get','ExtractedReports','UserProfileResource','end','error','stack','name','send','index','map','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields'];(function(_0xe66090,_0x3a1cf0){var _0x510588=function(_0x56b419){while(--_0x56b419){_0xe66090['push'](_0xe66090['shift']());}};_0x510588(++_0x3a1cf0);}(_0x90ed,0xe1));var _0xd90e=function(_0x1a8627,_0x4d7f99){_0x1a8627=_0x1a8627-0x0;var _0xbab7bd=_0x90ed[_0x1a8627];return _0xbab7bd;};'use strict';var pdf=require(_0xd90e('0x0'));var emlformat=require(_0xd90e('0x1'));var rimraf=require(_0xd90e('0x2'));var zipdir=require(_0xd90e('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd90e('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xd90e('0x5'));var path=require('path');var sox=require(_0xd90e('0x6'));var csv=require('to-csv');var ejs=require(_0xd90e('0x7'));var fs=require('fs');var _=require('lodash');var squel=require(_0xd90e('0x8'));var crypto=require(_0xd90e('0x9'));var jsforce=require(_0xd90e('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xd90e('0xb'));var querystring=require(_0xd90e('0xc'));var Papa=require(_0xd90e('0xd'));var Redis=require(_0xd90e('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xd90e('0xf'));var as=require(_0xd90e('0x10'));var hardwareService=require(_0xd90e('0x11'));var logger=require('../../config/logger')(_0xd90e('0x12'));var utils=require(_0xd90e('0x13'));var config=require(_0xd90e('0x14'));var licenseUtil=require(_0xd90e('0x15'));var db=require(_0xd90e('0x16'))['db'];function respondWithStatusCode(_0x46b730,_0x16d964){_0x16d964=_0x16d964||0xcc;return function(_0x21fa62){if(_0x21fa62){return _0x46b730[_0xd90e('0x17')](_0x16d964);}return _0x46b730[_0xd90e('0x18')](_0x16d964)['end']();};}function respondWithResult(_0x3e9d90,_0xef67d5){_0xef67d5=_0xef67d5||0xc8;return function(_0x48dac4){if(_0x48dac4){return _0x3e9d90[_0xd90e('0x18')](_0xef67d5)['json'](_0x48dac4);}};}function respondWithFilteredResult(_0x4c9feb,_0x9074ea){return function(_0x2fd649){if(_0x2fd649){var _0x51d120=_0x2fd649[_0xd90e('0x19')],_0x47432d=_0x9074ea[_0xd90e('0x1a')],_0x2bcdc5=_0x9074ea['offset']+_0x9074ea['limit'],_0x535bff;if(_0x2bcdc5>=_0x51d120){_0x2bcdc5=_0x51d120;_0x535bff=0xc8;}else{_0x535bff=0xce;}_0x4c9feb[_0xd90e('0x18')](_0x535bff);return _0x4c9feb[_0xd90e('0x1b')](_0xd90e('0x1c'),_0x47432d+'-'+_0x2bcdc5+'/'+_0x51d120)[_0xd90e('0x1d')](_0x2fd649);}return null;};}function patchUpdates(_0x3f3b02){return function(_0x4e2f5f){try{jsonpatch[_0xd90e('0x1e')](_0x4e2f5f,_0x3f3b02,!![]);}catch(_0x2f0114){return BPromise['reject'](_0x2f0114);}return _0x4e2f5f['save']();};}function saveUpdates(_0xd9c952,_0x2b83b6){return function(_0x4d060b){if(_0x4d060b){return _0x4d060b[_0xd90e('0x1f')](_0xd9c952)[_0xd90e('0x20')](function(_0x181019){return _0x181019;});}return null;};}function removeEntity(_0x46c84e,_0x1fbef2){return function(_0x7c9841){if(_0x7c9841){return _0x7c9841[_0xd90e('0x21')]()[_0xd90e('0x20')](function(){var _0x3c2f3b=_0x7c9841[_0xd90e('0x22')]({'plain':!![]});var _0x5cdd5d=_0xd90e('0x23');return db[_0xd90e('0x24')][_0xd90e('0x21')]({'where':{'type':_0x5cdd5d,'resourceId':_0x3c2f3b['id']}})[_0xd90e('0x20')](function(){return _0x7c9841;});})[_0xd90e('0x20')](function(){_0x46c84e[_0xd90e('0x18')](0xcc)[_0xd90e('0x25')]();});}};}function handleEntityNotFound(_0x1082d7,_0x17cd75){return function(_0xab4dc9){if(!_0xab4dc9){_0x1082d7['sendStatus'](0x194);}return _0xab4dc9;};}function handleError(_0x2b5f38,_0x1a3556){_0x1a3556=_0x1a3556||0x1f4;return function(_0x40e876){logger[_0xd90e('0x26')](_0x40e876[_0xd90e('0x27')]);if(_0x40e876[_0xd90e('0x28')]){delete _0x40e876[_0xd90e('0x28')];}_0x2b5f38[_0xd90e('0x18')](_0x1a3556)[_0xd90e('0x29')](_0x40e876);};}exports[_0xd90e('0x2a')]=function(_0x229c16,_0x2fe39d){var _0x977910={},_0x3d7689={},_0x59591c={'count':0x0,'rows':[]};var _0x533ea0=_[_0xd90e('0x2b')](db['AnalyticExtractedReport']['rawAttributes'],function(_0x1d7b20){return{'name':_0x1d7b20[_0xd90e('0x2c')],'type':_0x1d7b20[_0xd90e('0x2d')][_0xd90e('0x2e')]};});_0x3d7689[_0xd90e('0x2f')]=_[_0xd90e('0x2b')](_0x533ea0,'name');_0x3d7689[_0xd90e('0x30')]=_[_0xd90e('0x31')](_0x229c16['query']);_0x3d7689[_0xd90e('0x32')]=_['intersection'](_0x3d7689[_0xd90e('0x2f')],_0x3d7689['query']);_0x977910[_0xd90e('0x33')]=_[_0xd90e('0x34')](_0x3d7689[_0xd90e('0x2f')],qs[_0xd90e('0x35')](_0x229c16[_0xd90e('0x30')]['fields']));_0x977910['attributes']=_0x977910[_0xd90e('0x33')][_0xd90e('0x36')]?_0x977910[_0xd90e('0x33')]:_0x3d7689[_0xd90e('0x2f')];if(!_0x229c16[_0xd90e('0x30')][_0xd90e('0x37')](_0xd90e('0x38'))){_0x977910['limit']=qs[_0xd90e('0x39')](_0x229c16[_0xd90e('0x30')][_0xd90e('0x39')]);_0x977910['offset']=qs['offset'](_0x229c16[_0xd90e('0x30')]['offset']);}_0x977910['order']=qs[_0xd90e('0x3a')](_0x229c16[_0xd90e('0x30')][_0xd90e('0x3a')]);_0x977910[_0xd90e('0x3b')]=qs['filters'](_['pick'](_0x229c16['query'],_0x3d7689[_0xd90e('0x32')]),_0x533ea0);if(_0x229c16[_0xd90e('0x30')][_0xd90e('0x3c')]){_0x977910[_0xd90e('0x3b')]=_[_0xd90e('0x3d')](_0x977910['where'],{'$or':_[_0xd90e('0x2b')](_0x533ea0,function(_0x539bc5){if(_0x539bc5[_0xd90e('0x2d')]!==_0xd90e('0x3e')){var _0x17edcb={};_0x17edcb[_0x539bc5['name']]={'$like':'%'+_0x229c16[_0xd90e('0x30')][_0xd90e('0x3c')]+'%'};return _0x17edcb;}})});}_0x977910=_['merge']({},_0x977910,_0x229c16[_0xd90e('0x3f')]);var _0x492e71={'where':_0x977910[_0xd90e('0x3b')]};return db[_0xd90e('0x40')][_0xd90e('0x19')](_0x492e71)[_0xd90e('0x20')](function(_0x5e1610){_0x59591c[_0xd90e('0x19')]=_0x5e1610;if(_0x229c16[_0xd90e('0x30')][_0xd90e('0x41')]){_0x977910[_0xd90e('0x42')]=[{'all':!![]}];}return db['AnalyticExtractedReport'][_0xd90e('0x43')](_0x977910);})[_0xd90e('0x20')](function(_0x204352){_0x59591c[_0xd90e('0x44')]=_0x204352;return _0x59591c;})[_0xd90e('0x20')](respondWithFilteredResult(_0x2fe39d,_0x977910))[_0xd90e('0x45')](handleError(_0x2fe39d,null));};exports[_0xd90e('0x46')]=function(_0x422765,_0x58c055){var _0x44e787={'raw':!![],'where':{'id':_0x422765[_0xd90e('0x47')]['id']}},_0xf324f5={};_0xf324f5[_0xd90e('0x2f')]=_[_0xd90e('0x31')](db[_0xd90e('0x40')][_0xd90e('0x48')]);_0xf324f5[_0xd90e('0x30')]=_[_0xd90e('0x31')](_0x422765[_0xd90e('0x30')]);_0xf324f5['filters']=_['intersection'](_0xf324f5['model'],_0xf324f5[_0xd90e('0x30')]);_0x44e787['attributes']=_[_0xd90e('0x34')](_0xf324f5[_0xd90e('0x2f')],qs[_0xd90e('0x35')](_0x422765[_0xd90e('0x30')][_0xd90e('0x35')]));_0x44e787['attributes']=_0x44e787[_0xd90e('0x33')][_0xd90e('0x36')]?_0x44e787[_0xd90e('0x33')]:_0xf324f5['model'];if(_0x422765[_0xd90e('0x30')]['includeAll']){_0x44e787[_0xd90e('0x42')]=[{'all':!![]}];}_0x44e787=_[_0xd90e('0x3d')]({},_0x44e787,_0x422765['options']);return db[_0xd90e('0x40')][_0xd90e('0x49')](_0x44e787)[_0xd90e('0x20')](handleEntityNotFound(_0x58c055,null))[_0xd90e('0x20')](respondWithResult(_0x58c055,null))['catch'](handleError(_0x58c055,null));};exports[_0xd90e('0x4a')]=function(_0x1a5fba,_0x271f75){return db['AnalyticExtractedReport'][_0xd90e('0x4a')](_0x1a5fba['body'],{})[_0xd90e('0x20')](function(_0x64f3c2){var _0x1745a6=_0x1a5fba['user']['get']({'plain':!![]});if(!_0x1745a6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1745a6[_0xd90e('0x4b')]===_0xd90e('0x4c')){var _0x2fd1e3=_0x64f3c2['get']({'plain':!![]});var _0x29fd8e=_0xd90e('0x23');return db[_0xd90e('0x4d')][_0xd90e('0x49')]({'where':{'name':_0x29fd8e,'userProfileId':_0x1745a6[_0xd90e('0x4e')]},'raw':!![]})[_0xd90e('0x20')](function(_0x4fae78){if(_0x4fae78&&_0x4fae78[_0xd90e('0x4f')]===0x0){return db[_0xd90e('0x24')]['create']({'name':_0x2fd1e3[_0xd90e('0x28')],'resourceId':_0x2fd1e3['id'],'type':_0x4fae78[_0xd90e('0x28')],'sectionId':_0x4fae78['id']},{})[_0xd90e('0x20')](function(){return _0x64f3c2;});}else{return _0x64f3c2;}})[_0xd90e('0x45')](function(_0x5b1ec7){logger[_0xd90e('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5b1ec7);throw _0x5b1ec7;});}return _0x64f3c2;})[_0xd90e('0x20')](respondWithResult(_0x271f75,0xc9))['catch'](handleError(_0x271f75,null));};exports[_0xd90e('0x1f')]=function(_0x44dcdc,_0x351b5d){if(_0x44dcdc[_0xd90e('0x50')]['id']){delete _0x44dcdc[_0xd90e('0x50')]['id'];}return db[_0xd90e('0x40')][_0xd90e('0x49')]({'where':{'id':_0x44dcdc['params']['id']}})[_0xd90e('0x20')](handleEntityNotFound(_0x351b5d,null))[_0xd90e('0x20')](saveUpdates(_0x44dcdc[_0xd90e('0x50')],null))[_0xd90e('0x20')](respondWithResult(_0x351b5d,null))[_0xd90e('0x45')](handleError(_0x351b5d,null));};exports[_0xd90e('0x21')]=function(_0x37f74b,_0x2fc7dc){return db['AnalyticExtractedReport'][_0xd90e('0x49')]({'where':{'id':_0x37f74b[_0xd90e('0x47')]['id']}})['then'](handleEntityNotFound(_0x2fc7dc,null))[_0xd90e('0x20')](removeEntity(_0x2fc7dc,null))[_0xd90e('0x45')](handleError(_0x2fc7dc,null));};exports['download']=function(_0x3e0dad,_0x5c1d7e,_0x2c5374){return db[_0xd90e('0x40')]['find']({'where':{'id':_0x3e0dad['params']['id']},'attributes':[_0xd90e('0x28'),'basename',_0xd90e('0x51'),_0xd90e('0x52')],'raw':!![]})[_0xd90e('0x20')](handleEntityNotFound(_0x5c1d7e,null))[_0xd90e('0x20')](function(_0xbddd7d){if(_0xbddd7d){if(!fs[_0xd90e('0x53')](path['join'](config[_0xd90e('0x54')],'server/files/reports',_0xbddd7d[_0xd90e('0x51')]))){throw new db[(_0xd90e('0x55'))][(_0xd90e('0x56'))]('Report\x20not\x20found\x20or\x20empty');}if(_0x3e0dad[_0xd90e('0x30')][_0xd90e('0x57')]){return _0x5c1d7e['sendStatus'](0xc8);}return _0x5c1d7e[_0xd90e('0x58')](path['join'](config[_0xd90e('0x54')],_0xd90e('0x59'),_0xbddd7d[_0xd90e('0x51')]),util[_0xd90e('0x5a')](_0xd90e('0x5b'),_0xbddd7d[_0xd90e('0x5c')]||_0xbddd7d[_0xd90e('0x28')],_0xbddd7d['output']['toLowerCase']()));}})[_0xd90e('0x45')](handleError(_0x5c1d7e,null));};