Built motion from commit 10af8726.|2.6.34
[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 _0x34e1=['find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','download','savename','existsSync','join','root','server/files/reports','Sequelize','ValidationError','exists','%s.%s','output','toLowerCase','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','jsforce','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','update','then','destroy','get','ExtractedReports','UserProfileResource','name','send','AnalyticExtractedReport','rawAttributes','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','where','type','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','params'];(function(_0x531069,_0x314fb5){var _0x180111=function(_0x2fc2f2){while(--_0x2fc2f2){_0x531069['push'](_0x531069['shift']());}};_0x180111(++_0x314fb5);}(_0x34e1,0xc9));var _0x134e=function(_0x578600,_0x147750){_0x578600=_0x578600-0x0;var _0x496b44=_0x34e1[_0x578600];return _0x496b44;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x134e('0x0'));var zipdir=require(_0x134e('0x1'));var jsonpatch=require(_0x134e('0x2'));var rp=require(_0x134e('0x3'));var moment=require('moment');var BPromise=require(_0x134e('0x4'));var Mustache=require(_0x134e('0x5'));var util=require(_0x134e('0x6'));var path=require(_0x134e('0x7'));var sox=require(_0x134e('0x8'));var csv=require('to-csv');var ejs=require(_0x134e('0x9'));var fs=require('fs');var fs_extra=require(_0x134e('0xa'));var _=require('lodash');var squel=require(_0x134e('0xb'));var crypto=require('crypto');var jsforce=require(_0x134e('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x134e('0xd'));var querystring=require('querystring');var Papa=require(_0x134e('0xe'));var Redis=require(_0x134e('0xf'));var authService=require(_0x134e('0x10'));var qs=require(_0x134e('0x11'));var as=require(_0x134e('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x134e('0x13'));var utils=require('../../config/utils');var config=require(_0x134e('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x134e('0x15'))['db'];function respondWithStatusCode(_0x183f55,_0x8b2641){_0x8b2641=_0x8b2641||0xcc;return function(_0x1d7774){if(_0x1d7774){return _0x183f55[_0x134e('0x16')](_0x8b2641);}return _0x183f55[_0x134e('0x17')](_0x8b2641)[_0x134e('0x18')]();};}function respondWithResult(_0xe29061,_0x3a0db4){_0x3a0db4=_0x3a0db4||0xc8;return function(_0x1f210c){if(_0x1f210c){return _0xe29061[_0x134e('0x17')](_0x3a0db4)[_0x134e('0x19')](_0x1f210c);}};}function respondWithFilteredResult(_0x549ca6,_0x3983a3){return function(_0x20ad82){if(_0x20ad82){var _0x19d5e2=typeof _0x3983a3[_0x134e('0x1a')]===_0x134e('0x1b')&&typeof _0x3983a3[_0x134e('0x1c')]==='undefined';var _0x40d7b0=_0x20ad82[_0x134e('0x1d')];var _0x53300d=_0x19d5e2?0x0:_0x3983a3[_0x134e('0x1a')];var _0x1a1525=_0x19d5e2?_0x20ad82[_0x134e('0x1d')]:_0x3983a3['offset']+_0x3983a3[_0x134e('0x1c')];var _0x42d510;if(_0x1a1525>=_0x40d7b0){_0x1a1525=_0x40d7b0;_0x42d510=0xc8;}else{_0x42d510=0xce;}_0x549ca6[_0x134e('0x17')](_0x42d510);return _0x549ca6[_0x134e('0x1e')](_0x134e('0x1f'),_0x53300d+'-'+_0x1a1525+'/'+_0x40d7b0)['json'](_0x20ad82);}return null;};}function patchUpdates(_0x578bfe){return function(_0x50421c){try{jsonpatch['apply'](_0x50421c,_0x578bfe,!![]);}catch(_0x3df7b8){return BPromise[_0x134e('0x20')](_0x3df7b8);}return _0x50421c['save']();};}function saveUpdates(_0x26f2ab,_0x228de1){return function(_0x14121c){if(_0x14121c){return _0x14121c[_0x134e('0x21')](_0x26f2ab)[_0x134e('0x22')](function(_0x1c4b8c){return _0x1c4b8c;});}return null;};}function removeEntity(_0x5778ca,_0x4c6448){return function(_0x56b0fe){if(_0x56b0fe){return _0x56b0fe[_0x134e('0x23')]()['then'](function(){var _0x5aeaee=_0x56b0fe[_0x134e('0x24')]({'plain':!![]});var _0x230e5d=_0x134e('0x25');return db[_0x134e('0x26')][_0x134e('0x23')]({'where':{'type':_0x230e5d,'resourceId':_0x5aeaee['id']}})[_0x134e('0x22')](function(){return _0x56b0fe;});})['then'](function(){_0x5778ca[_0x134e('0x17')](0xcc)[_0x134e('0x18')]();});}};}function handleEntityNotFound(_0x4b6abb,_0x38fa54){return function(_0x4d9f4d){if(!_0x4d9f4d){_0x4b6abb[_0x134e('0x16')](0x194);}return _0x4d9f4d;};}function handleError(_0x468810,_0x50fb1d){_0x50fb1d=_0x50fb1d||0x1f4;return function(_0x42b3b6){logger['error'](_0x42b3b6['stack']);if(_0x42b3b6[_0x134e('0x27')]){delete _0x42b3b6[_0x134e('0x27')];}_0x468810['status'](_0x50fb1d)[_0x134e('0x28')](_0x42b3b6);};}exports['index']=function(_0x2347f1,_0x2d5ec3){var _0x2177de={},_0x5d1a52={},_0x1da662={'count':0x0,'rows':[]};var _0x179b2e=_['map'](db[_0x134e('0x29')][_0x134e('0x2a')],function(_0x1e43d4){return{'name':_0x1e43d4['fieldName'],'type':_0x1e43d4['type'][_0x134e('0x2b')]};});_0x5d1a52[_0x134e('0x2c')]=_[_0x134e('0x2d')](_0x179b2e,_0x134e('0x27'));_0x5d1a52[_0x134e('0x2e')]=_[_0x134e('0x2f')](_0x2347f1['query']);_0x5d1a52[_0x134e('0x30')]=_[_0x134e('0x31')](_0x5d1a52[_0x134e('0x2c')],_0x5d1a52[_0x134e('0x2e')]);_0x2177de[_0x134e('0x32')]=_[_0x134e('0x31')](_0x5d1a52[_0x134e('0x2c')],qs[_0x134e('0x33')](_0x2347f1[_0x134e('0x2e')][_0x134e('0x33')]));_0x2177de[_0x134e('0x32')]=_0x2177de[_0x134e('0x32')][_0x134e('0x34')]?_0x2177de['attributes']:_0x5d1a52['model'];if(!_0x2347f1['query'][_0x134e('0x35')](_0x134e('0x36'))){_0x2177de['limit']=qs[_0x134e('0x1c')](_0x2347f1[_0x134e('0x2e')][_0x134e('0x1c')]);_0x2177de['offset']=qs['offset'](_0x2347f1[_0x134e('0x2e')][_0x134e('0x1a')]);}_0x2177de['order']=qs[_0x134e('0x37')](_0x2347f1[_0x134e('0x2e')]['sort']);_0x2177de['where']=qs[_0x134e('0x30')](_[_0x134e('0x38')](_0x2347f1[_0x134e('0x2e')],_0x5d1a52[_0x134e('0x30')]),_0x179b2e);if(_0x2347f1['query'][_0x134e('0x39')]){_0x2177de[_0x134e('0x3a')]=_['merge'](_0x2177de[_0x134e('0x3a')],{'$or':_[_0x134e('0x2d')](_0x179b2e,function(_0x559612){if(_0x559612[_0x134e('0x3b')]!==_0x134e('0x3c')){var _0x32fc2a={};_0x32fc2a[_0x559612[_0x134e('0x27')]]={'$like':'%'+_0x2347f1[_0x134e('0x2e')][_0x134e('0x39')]+'%'};return _0x32fc2a;}})});}_0x2177de=_[_0x134e('0x3d')]({},_0x2177de,_0x2347f1[_0x134e('0x3e')]);var _0x2e3fc5={'where':_0x2177de['where']};return db['AnalyticExtractedReport'][_0x134e('0x1d')](_0x2e3fc5)[_0x134e('0x22')](function(_0x5caf71){_0x1da662[_0x134e('0x1d')]=_0x5caf71;if(_0x2347f1[_0x134e('0x2e')][_0x134e('0x3f')]){_0x2177de[_0x134e('0x40')]=[{'all':!![]}];}return db[_0x134e('0x29')][_0x134e('0x41')](_0x2177de);})['then'](function(_0x1f8606){_0x1da662[_0x134e('0x42')]=_0x1f8606;return _0x1da662;})[_0x134e('0x22')](respondWithFilteredResult(_0x2d5ec3,_0x2177de))[_0x134e('0x43')](handleError(_0x2d5ec3,null));};exports['show']=function(_0x3212f9,_0x5a6417){var _0x26e2f6={'raw':!![],'where':{'id':_0x3212f9[_0x134e('0x44')]['id']}},_0x51edc8={};_0x51edc8[_0x134e('0x2c')]=_[_0x134e('0x2f')](db['AnalyticExtractedReport'][_0x134e('0x2a')]);_0x51edc8['query']=_[_0x134e('0x2f')](_0x3212f9[_0x134e('0x2e')]);_0x51edc8[_0x134e('0x30')]=_[_0x134e('0x31')](_0x51edc8[_0x134e('0x2c')],_0x51edc8[_0x134e('0x2e')]);_0x26e2f6[_0x134e('0x32')]=_['intersection'](_0x51edc8[_0x134e('0x2c')],qs[_0x134e('0x33')](_0x3212f9[_0x134e('0x2e')][_0x134e('0x33')]));_0x26e2f6['attributes']=_0x26e2f6[_0x134e('0x32')]['length']?_0x26e2f6[_0x134e('0x32')]:_0x51edc8['model'];if(_0x3212f9[_0x134e('0x2e')]['includeAll']){_0x26e2f6[_0x134e('0x40')]=[{'all':!![]}];}_0x26e2f6=_[_0x134e('0x3d')]({},_0x26e2f6,_0x3212f9[_0x134e('0x3e')]);return db[_0x134e('0x29')][_0x134e('0x45')](_0x26e2f6)[_0x134e('0x22')](handleEntityNotFound(_0x5a6417,null))[_0x134e('0x22')](respondWithResult(_0x5a6417,null))[_0x134e('0x43')](handleError(_0x5a6417,null));};exports[_0x134e('0x46')]=function(_0xf8afba,_0x4b9f79){return db[_0x134e('0x29')][_0x134e('0x46')](_0xf8afba[_0x134e('0x47')],{})['then'](function(_0x154e9d){var _0x430c04=_0xf8afba[_0x134e('0x48')][_0x134e('0x24')]({'plain':!![]});if(!_0x430c04)throw new Error(_0x134e('0x49'));if(_0x430c04[_0x134e('0x4a')]===_0x134e('0x48')){var _0x1fe7a9=_0x154e9d[_0x134e('0x24')]({'plain':!![]});var _0x440e27='ExtractedReports';return db[_0x134e('0x4b')][_0x134e('0x45')]({'where':{'name':_0x440e27,'userProfileId':_0x430c04[_0x134e('0x4c')]},'raw':!![]})[_0x134e('0x22')](function(_0x531b2c){if(_0x531b2c&&_0x531b2c['autoAssociation']===0x0){return db[_0x134e('0x26')][_0x134e('0x46')]({'name':_0x1fe7a9[_0x134e('0x27')],'resourceId':_0x1fe7a9['id'],'type':_0x531b2c[_0x134e('0x27')],'sectionId':_0x531b2c['id']},{})[_0x134e('0x22')](function(){return _0x154e9d;});}else{return _0x154e9d;}})[_0x134e('0x43')](function(_0x865738){logger['error'](_0x134e('0x4d'),_0x865738);throw _0x865738;});}return _0x154e9d;})[_0x134e('0x22')](respondWithResult(_0x4b9f79,0xc9))[_0x134e('0x43')](handleError(_0x4b9f79,null));};exports['update']=function(_0x485d97,_0x435119){if(_0x485d97[_0x134e('0x47')]['id']){delete _0x485d97[_0x134e('0x47')]['id'];}return db[_0x134e('0x29')]['find']({'where':{'id':_0x485d97['params']['id']}})['then'](handleEntityNotFound(_0x435119,null))[_0x134e('0x22')](saveUpdates(_0x485d97[_0x134e('0x47')],null))[_0x134e('0x22')](respondWithResult(_0x435119,null))['catch'](handleError(_0x435119,null));};exports['destroy']=function(_0x233f1f,_0x59f991){return db[_0x134e('0x29')][_0x134e('0x45')]({'where':{'id':_0x233f1f[_0x134e('0x44')]['id']}})['then'](handleEntityNotFound(_0x59f991,null))[_0x134e('0x22')](removeEntity(_0x59f991,null))[_0x134e('0x43')](handleError(_0x59f991,null));};exports[_0x134e('0x4e')]=function(_0x47e297,_0x5bc1c7,_0x297aca){return db[_0x134e('0x29')][_0x134e('0x45')]({'where':{'id':_0x47e297['params']['id']},'attributes':[_0x134e('0x27'),'basename',_0x134e('0x4f'),'output'],'raw':!![]})['then'](handleEntityNotFound(_0x5bc1c7,null))[_0x134e('0x22')](function(_0x5a9690){if(_0x5a9690){if(!fs[_0x134e('0x50')](path[_0x134e('0x51')](config[_0x134e('0x52')],_0x134e('0x53'),_0x5a9690['savename']))){throw new db[(_0x134e('0x54'))][(_0x134e('0x55'))]('Report\x20not\x20found\x20or\x20empty');}if(_0x47e297[_0x134e('0x2e')][_0x134e('0x56')]){return _0x5bc1c7[_0x134e('0x16')](0xc8);}return _0x5bc1c7[_0x134e('0x4e')](path[_0x134e('0x51')](config[_0x134e('0x52')],_0x134e('0x53'),_0x5a9690['savename']),util['format'](_0x134e('0x57'),_0x5a9690['basename']||_0x5a9690[_0x134e('0x27')],_0x5a9690[_0x134e('0x58')][_0x134e('0x59')]()));}})[_0x134e('0x43')](handleError(_0x5bc1c7,null));};