Built motion from commit f25620e4.|2.6.30
[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 _0xbadb=['merge','options','AnalyticExtractedReport','include','findAll','rows','catch','keys','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','params','download','basename','savename','output','existsSync','join','root','server/files/reports','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','format','%s.%s','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','offset','undefined','limit','count','status','Content-Range','json','apply','reject','save','update','then','get','ExtractedReports','UserProfileResource','end','error','stack','name','index','map','rawAttributes','fieldName','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','filter','type','VIRTUAL'];(function(_0x261caf,_0x28a159){var _0x54d8d0=function(_0x3534b2){while(--_0x3534b2){_0x261caf['push'](_0x261caf['shift']());}};_0x54d8d0(++_0x28a159);}(_0xbadb,0x7a));var _0xbbad=function(_0x159d72,_0x2f17b5){_0x159d72=_0x159d72-0x0;var _0x499d86=_0xbadb[_0x159d72];return _0x499d86;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xbbad('0x0'));var jsonpatch=require(_0xbbad('0x1'));var rp=require('request-promise');var moment=require(_0xbbad('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xbbad('0x3'));var util=require(_0xbbad('0x4'));var path=require(_0xbbad('0x5'));var sox=require(_0xbbad('0x6'));var csv=require(_0xbbad('0x7'));var ejs=require(_0xbbad('0x8'));var fs=require('fs');var fs_extra=require(_0xbbad('0x9'));var _=require('lodash');var squel=require(_0xbbad('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xbbad('0xb'));var toCsv=require('to-csv');var querystring=require(_0xbbad('0xc'));var Papa=require(_0xbbad('0xd'));var Redis=require(_0xbbad('0xe'));var authService=require(_0xbbad('0xf'));var qs=require(_0xbbad('0x10'));var as=require(_0xbbad('0x11'));var hardwareService=require(_0xbbad('0x12'));var logger=require('../../config/logger')(_0xbbad('0x13'));var utils=require('../../config/utils');var config=require(_0xbbad('0x14'));var licenseUtil=require(_0xbbad('0x15'));var db=require(_0xbbad('0x16'))['db'];function respondWithStatusCode(_0x1ac846,_0x2a65ed){_0x2a65ed=_0x2a65ed||0xcc;return function(_0x180821){if(_0x180821){return _0x1ac846[_0xbbad('0x17')](_0x2a65ed);}return _0x1ac846['status'](_0x2a65ed)['end']();};}function respondWithResult(_0x4ce1a2,_0x3efc20){_0x3efc20=_0x3efc20||0xc8;return function(_0x465f30){if(_0x465f30){return _0x4ce1a2['status'](_0x3efc20)['json'](_0x465f30);}};}function respondWithFilteredResult(_0xe920d5,_0x1f7759){return function(_0x1536fa){if(_0x1536fa){var _0x5a099d=typeof _0x1f7759[_0xbbad('0x18')]===_0xbbad('0x19')&&typeof _0x1f7759[_0xbbad('0x1a')]===_0xbbad('0x19');var _0x51fd3c=_0x1536fa[_0xbbad('0x1b')];var _0x35ee0b=_0x5a099d?0x0:_0x1f7759[_0xbbad('0x18')];var _0x1a6f94=_0x5a099d?_0x1536fa[_0xbbad('0x1b')]:_0x1f7759[_0xbbad('0x18')]+_0x1f7759['limit'];var _0x30978c;if(_0x1a6f94>=_0x51fd3c){_0x1a6f94=_0x51fd3c;_0x30978c=0xc8;}else{_0x30978c=0xce;}_0xe920d5[_0xbbad('0x1c')](_0x30978c);return _0xe920d5['set'](_0xbbad('0x1d'),_0x35ee0b+'-'+_0x1a6f94+'/'+_0x51fd3c)[_0xbbad('0x1e')](_0x1536fa);}return null;};}function patchUpdates(_0x30ccd6){return function(_0x14d4a0){try{jsonpatch[_0xbbad('0x1f')](_0x14d4a0,_0x30ccd6,!![]);}catch(_0x37bfcf){return BPromise[_0xbbad('0x20')](_0x37bfcf);}return _0x14d4a0[_0xbbad('0x21')]();};}function saveUpdates(_0x2c436f,_0x13adbb){return function(_0x4056c7){if(_0x4056c7){return _0x4056c7[_0xbbad('0x22')](_0x2c436f)[_0xbbad('0x23')](function(_0x30576f){return _0x30576f;});}return null;};}function removeEntity(_0x3a8bbc,_0x29eb21){return function(_0x40716f){if(_0x40716f){return _0x40716f['destroy']()[_0xbbad('0x23')](function(){var _0x1a3717=_0x40716f[_0xbbad('0x24')]({'plain':!![]});var _0x5cd3f9=_0xbbad('0x25');return db[_0xbbad('0x26')]['destroy']({'where':{'type':_0x5cd3f9,'resourceId':_0x1a3717['id']}})[_0xbbad('0x23')](function(){return _0x40716f;});})[_0xbbad('0x23')](function(){_0x3a8bbc[_0xbbad('0x1c')](0xcc)[_0xbbad('0x27')]();});}};}function handleEntityNotFound(_0x431aba,_0x1e6e6b){return function(_0x1958e4){if(!_0x1958e4){_0x431aba[_0xbbad('0x17')](0x194);}return _0x1958e4;};}function handleError(_0xf4ad71,_0xd7a501){_0xd7a501=_0xd7a501||0x1f4;return function(_0x132def){logger[_0xbbad('0x28')](_0x132def[_0xbbad('0x29')]);if(_0x132def[_0xbbad('0x2a')]){delete _0x132def[_0xbbad('0x2a')];}_0xf4ad71[_0xbbad('0x1c')](_0xd7a501)['send'](_0x132def);};}exports[_0xbbad('0x2b')]=function(_0x27db72,_0x37d187){var _0x11cbe7={},_0x1597a0={},_0x541c9f={'count':0x0,'rows':[]};var _0x2c2956=_[_0xbbad('0x2c')](db['AnalyticExtractedReport'][_0xbbad('0x2d')],function(_0x48fb00){return{'name':_0x48fb00[_0xbbad('0x2e')],'type':_0x48fb00['type'][_0xbbad('0x2f')]};});_0x1597a0['model']=_[_0xbbad('0x2c')](_0x2c2956,'name');_0x1597a0[_0xbbad('0x30')]=_['keys'](_0x27db72[_0xbbad('0x30')]);_0x1597a0[_0xbbad('0x31')]=_[_0xbbad('0x32')](_0x1597a0[_0xbbad('0x33')],_0x1597a0[_0xbbad('0x30')]);_0x11cbe7[_0xbbad('0x34')]=_['intersection'](_0x1597a0[_0xbbad('0x33')],qs['fields'](_0x27db72['query'][_0xbbad('0x35')]));_0x11cbe7[_0xbbad('0x34')]=_0x11cbe7['attributes'][_0xbbad('0x36')]?_0x11cbe7[_0xbbad('0x34')]:_0x1597a0['model'];if(!_0x27db72[_0xbbad('0x30')][_0xbbad('0x37')]('nolimit')){_0x11cbe7[_0xbbad('0x1a')]=qs['limit'](_0x27db72[_0xbbad('0x30')][_0xbbad('0x1a')]);_0x11cbe7[_0xbbad('0x18')]=qs[_0xbbad('0x18')](_0x27db72['query']['offset']);}_0x11cbe7[_0xbbad('0x38')]=qs[_0xbbad('0x39')](_0x27db72[_0xbbad('0x30')][_0xbbad('0x39')]);_0x11cbe7[_0xbbad('0x3a')]=qs['filters'](_['pick'](_0x27db72[_0xbbad('0x30')],_0x1597a0['filters']),_0x2c2956);if(_0x27db72[_0xbbad('0x30')][_0xbbad('0x3b')]){_0x11cbe7[_0xbbad('0x3a')]=_['merge'](_0x11cbe7['where'],{'$or':_['map'](_0x2c2956,function(_0x46de10){if(_0x46de10[_0xbbad('0x3c')]!==_0xbbad('0x3d')){var _0x120d39={};_0x120d39[_0x46de10[_0xbbad('0x2a')]]={'$like':'%'+_0x27db72[_0xbbad('0x30')][_0xbbad('0x3b')]+'%'};return _0x120d39;}})});}_0x11cbe7=_[_0xbbad('0x3e')]({},_0x11cbe7,_0x27db72[_0xbbad('0x3f')]);var _0x3c6670={'where':_0x11cbe7['where']};return db[_0xbbad('0x40')]['count'](_0x3c6670)[_0xbbad('0x23')](function(_0x2964aa){_0x541c9f[_0xbbad('0x1b')]=_0x2964aa;if(_0x27db72[_0xbbad('0x30')]['includeAll']){_0x11cbe7[_0xbbad('0x41')]=[{'all':!![]}];}return db['AnalyticExtractedReport'][_0xbbad('0x42')](_0x11cbe7);})[_0xbbad('0x23')](function(_0x521619){_0x541c9f[_0xbbad('0x43')]=_0x521619;return _0x541c9f;})[_0xbbad('0x23')](respondWithFilteredResult(_0x37d187,_0x11cbe7))[_0xbbad('0x44')](handleError(_0x37d187,null));};exports['show']=function(_0x54a8c4,_0x1a6249){var _0x185bf9={'raw':!![],'where':{'id':_0x54a8c4['params']['id']}},_0x5dfb72={};_0x5dfb72[_0xbbad('0x33')]=_[_0xbbad('0x45')](db[_0xbbad('0x40')][_0xbbad('0x2d')]);_0x5dfb72[_0xbbad('0x30')]=_['keys'](_0x54a8c4['query']);_0x5dfb72['filters']=_[_0xbbad('0x32')](_0x5dfb72[_0xbbad('0x33')],_0x5dfb72['query']);_0x185bf9[_0xbbad('0x34')]=_['intersection'](_0x5dfb72[_0xbbad('0x33')],qs[_0xbbad('0x35')](_0x54a8c4[_0xbbad('0x30')][_0xbbad('0x35')]));_0x185bf9[_0xbbad('0x34')]=_0x185bf9[_0xbbad('0x34')][_0xbbad('0x36')]?_0x185bf9[_0xbbad('0x34')]:_0x5dfb72[_0xbbad('0x33')];if(_0x54a8c4[_0xbbad('0x30')]['includeAll']){_0x185bf9[_0xbbad('0x41')]=[{'all':!![]}];}_0x185bf9=_[_0xbbad('0x3e')]({},_0x185bf9,_0x54a8c4[_0xbbad('0x3f')]);return db['AnalyticExtractedReport'][_0xbbad('0x46')](_0x185bf9)[_0xbbad('0x23')](handleEntityNotFound(_0x1a6249,null))['then'](respondWithResult(_0x1a6249,null))['catch'](handleError(_0x1a6249,null));};exports[_0xbbad('0x47')]=function(_0x2da1dc,_0x5252bc){return db[_0xbbad('0x40')]['create'](_0x2da1dc[_0xbbad('0x48')],{})[_0xbbad('0x23')](function(_0x36bf25){var _0xf7c0a1=_0x2da1dc[_0xbbad('0x49')][_0xbbad('0x24')]({'plain':!![]});if(!_0xf7c0a1)throw new Error(_0xbbad('0x4a'));if(_0xf7c0a1[_0xbbad('0x4b')]===_0xbbad('0x49')){var _0x110301=_0x36bf25[_0xbbad('0x24')]({'plain':!![]});var _0x59f015='ExtractedReports';return db['UserProfileSection']['find']({'where':{'name':_0x59f015,'userProfileId':_0xf7c0a1[_0xbbad('0x4c')]},'raw':!![]})[_0xbbad('0x23')](function(_0x7ec275){if(_0x7ec275&&_0x7ec275[_0xbbad('0x4d')]===0x0){return db[_0xbbad('0x26')][_0xbbad('0x47')]({'name':_0x110301[_0xbbad('0x2a')],'resourceId':_0x110301['id'],'type':_0x7ec275[_0xbbad('0x2a')],'sectionId':_0x7ec275['id']},{})[_0xbbad('0x23')](function(){return _0x36bf25;});}else{return _0x36bf25;}})[_0xbbad('0x44')](function(_0x37d151){logger[_0xbbad('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x37d151);throw _0x37d151;});}return _0x36bf25;})[_0xbbad('0x23')](respondWithResult(_0x5252bc,0xc9))[_0xbbad('0x44')](handleError(_0x5252bc,null));};exports[_0xbbad('0x22')]=function(_0x308542,_0x39c7f9){if(_0x308542[_0xbbad('0x48')]['id']){delete _0x308542[_0xbbad('0x48')]['id'];}return db[_0xbbad('0x40')]['find']({'where':{'id':_0x308542[_0xbbad('0x4e')]['id']}})['then'](handleEntityNotFound(_0x39c7f9,null))[_0xbbad('0x23')](saveUpdates(_0x308542['body'],null))[_0xbbad('0x23')](respondWithResult(_0x39c7f9,null))[_0xbbad('0x44')](handleError(_0x39c7f9,null));};exports['destroy']=function(_0x540922,_0x55825a){return db[_0xbbad('0x40')]['find']({'where':{'id':_0x540922[_0xbbad('0x4e')]['id']}})[_0xbbad('0x23')](handleEntityNotFound(_0x55825a,null))[_0xbbad('0x23')](removeEntity(_0x55825a,null))[_0xbbad('0x44')](handleError(_0x55825a,null));};exports[_0xbbad('0x4f')]=function(_0x43c667,_0x280340,_0x293123){return db[_0xbbad('0x40')][_0xbbad('0x46')]({'where':{'id':_0x43c667[_0xbbad('0x4e')]['id']},'attributes':[_0xbbad('0x2a'),_0xbbad('0x50'),_0xbbad('0x51'),_0xbbad('0x52')],'raw':!![]})[_0xbbad('0x23')](handleEntityNotFound(_0x280340,null))[_0xbbad('0x23')](function(_0x5c8b28){if(_0x5c8b28){if(!fs[_0xbbad('0x53')](path[_0xbbad('0x54')](config[_0xbbad('0x55')],_0xbbad('0x56'),_0x5c8b28[_0xbbad('0x51')]))){throw new db['Sequelize'][(_0xbbad('0x57'))](_0xbbad('0x58'));}if(_0x43c667[_0xbbad('0x30')][_0xbbad('0x59')]){return _0x280340['sendStatus'](0xc8);}return _0x280340[_0xbbad('0x4f')](path['join'](config[_0xbbad('0x55')],_0xbbad('0x56'),_0x5c8b28[_0xbbad('0x51')]),util[_0xbbad('0x5a')](_0xbbad('0x5b'),_0x5c8b28[_0xbbad('0x50')]||_0x5c8b28[_0xbbad('0x2a')],_0x5c8b28[_0xbbad('0x52')]['toLowerCase']()));}})[_0xbbad('0x44')](handleError(_0x280340,null));};