Built motion from commit (unavailable).|2.5.14
[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 _0x8e6c=['body','user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','params','download','basename','savename','existsSync','root','Sequelize','ValidationError','join','server/files/reports','%s.%s','output','toLowerCase','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','then','destroy','get','ExtractedReports','error','stack','name','send','index','map','AnalyticExtractedReport','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','options','find','create'];(function(_0x879e31,_0x139d02){var _0x3467e8=function(_0x544fc6){while(--_0x544fc6){_0x879e31['push'](_0x879e31['shift']());}};_0x3467e8(++_0x139d02);}(_0x8e6c,0xda));var _0xc8e6=function(_0x517d0e,_0x12f6f4){_0x517d0e=_0x517d0e-0x0;var _0xa78035=_0x8e6c[_0x517d0e];return _0xa78035;};'use strict';var pdf=require(_0xc8e6('0x0'));var emlformat=require(_0xc8e6('0x1'));var rimraf=require(_0xc8e6('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc8e6('0x3'));var rp=require(_0xc8e6('0x4'));var moment=require('moment');var BPromise=require(_0xc8e6('0x5'));var Mustache=require(_0xc8e6('0x6'));var util=require(_0xc8e6('0x7'));var path=require(_0xc8e6('0x8'));var sox=require(_0xc8e6('0x9'));var csv=require(_0xc8e6('0xa'));var ejs=require(_0xc8e6('0xb'));var fs=require('fs');var _=require(_0xc8e6('0xc'));var squel=require(_0xc8e6('0xd'));var crypto=require(_0xc8e6('0xe'));var jsforce=require(_0xc8e6('0xf'));var deskjs=require(_0xc8e6('0x10'));var toCsv=require(_0xc8e6('0xa'));var querystring=require(_0xc8e6('0x11'));var Papa=require(_0xc8e6('0x12'));var Redis=require('ioredis');var authService=require(_0xc8e6('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xc8e6('0x14'));var hardwareService=require(_0xc8e6('0x15'));var logger=require('../../config/logger')(_0xc8e6('0x16'));var utils=require(_0xc8e6('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xc8e6('0x18'));var db=require(_0xc8e6('0x19'))['db'];function respondWithStatusCode(_0x222ced,_0xb13273){_0xb13273=_0xb13273||0xcc;return function(_0x5dbdbb){if(_0x5dbdbb){return _0x222ced[_0xc8e6('0x1a')](_0xb13273);}return _0x222ced[_0xc8e6('0x1b')](_0xb13273)[_0xc8e6('0x1c')]();};}function respondWithResult(_0x4c5ddd,_0x312528){_0x312528=_0x312528||0xc8;return function(_0x21d6a7){if(_0x21d6a7){return _0x4c5ddd[_0xc8e6('0x1b')](_0x312528)[_0xc8e6('0x1d')](_0x21d6a7);}};}function respondWithFilteredResult(_0x25e3d8,_0x3e369c){return function(_0x23c2b2){if(_0x23c2b2){var _0x49ac66=_0x23c2b2[_0xc8e6('0x1e')],_0x300bc3=_0x3e369c[_0xc8e6('0x1f')],_0x59fd43=_0x3e369c['offset']+_0x3e369c[_0xc8e6('0x20')],_0x200932;if(_0x59fd43>=_0x49ac66){_0x59fd43=_0x49ac66;_0x200932=0xc8;}else{_0x200932=0xce;}_0x25e3d8[_0xc8e6('0x1b')](_0x200932);return _0x25e3d8[_0xc8e6('0x21')]('Content-Range',_0x300bc3+'-'+_0x59fd43+'/'+_0x49ac66)[_0xc8e6('0x1d')](_0x23c2b2);}return null;};}function patchUpdates(_0x4e8e58){return function(_0x48bc7d){try{jsonpatch[_0xc8e6('0x22')](_0x48bc7d,_0x4e8e58,!![]);}catch(_0x406487){return BPromise[_0xc8e6('0x23')](_0x406487);}return _0x48bc7d[_0xc8e6('0x24')]();};}function saveUpdates(_0x426d80,_0x597d57){return function(_0x235b51){if(_0x235b51){return _0x235b51[_0xc8e6('0x25')](_0x426d80)[_0xc8e6('0x26')](function(_0x17b556){return _0x17b556;});}return null;};}function removeEntity(_0x4388fa,_0x43206a){return function(_0xe14d3a){if(_0xe14d3a){return _0xe14d3a[_0xc8e6('0x27')]()[_0xc8e6('0x26')](function(){var _0x2d0b4a=_0xe14d3a[_0xc8e6('0x28')]({'plain':!![]});var _0x5f47b2=_0xc8e6('0x29');return db['UserProfileResource']['destroy']({'where':{'type':_0x5f47b2,'resourceId':_0x2d0b4a['id']}})[_0xc8e6('0x26')](function(){return _0xe14d3a;});})[_0xc8e6('0x26')](function(){_0x4388fa['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x559e0d,_0x24c3fe){return function(_0x30b9dc){if(!_0x30b9dc){_0x559e0d[_0xc8e6('0x1a')](0x194);}return _0x30b9dc;};}function handleError(_0x537f44,_0x1c2ae5){_0x1c2ae5=_0x1c2ae5||0x1f4;return function(_0x170e31){logger[_0xc8e6('0x2a')](_0x170e31[_0xc8e6('0x2b')]);if(_0x170e31[_0xc8e6('0x2c')]){delete _0x170e31[_0xc8e6('0x2c')];}_0x537f44['status'](_0x1c2ae5)[_0xc8e6('0x2d')](_0x170e31);};}exports[_0xc8e6('0x2e')]=function(_0x5d942f,_0x25210c){var _0x44e865={},_0x1db626={},_0x3c47a8={'count':0x0,'rows':[]};var _0x3d3b2d=_[_0xc8e6('0x2f')](db[_0xc8e6('0x30')][_0xc8e6('0x31')],function(_0x56ca16){return{'name':_0x56ca16[_0xc8e6('0x32')],'type':_0x56ca16[_0xc8e6('0x33')][_0xc8e6('0x34')]};});_0x1db626[_0xc8e6('0x35')]=_[_0xc8e6('0x2f')](_0x3d3b2d,_0xc8e6('0x2c'));_0x1db626['query']=_[_0xc8e6('0x36')](_0x5d942f[_0xc8e6('0x37')]);_0x1db626[_0xc8e6('0x38')]=_[_0xc8e6('0x39')](_0x1db626[_0xc8e6('0x35')],_0x1db626['query']);_0x44e865[_0xc8e6('0x3a')]=_[_0xc8e6('0x39')](_0x1db626['model'],qs[_0xc8e6('0x3b')](_0x5d942f[_0xc8e6('0x37')][_0xc8e6('0x3b')]));_0x44e865[_0xc8e6('0x3a')]=_0x44e865[_0xc8e6('0x3a')][_0xc8e6('0x3c')]?_0x44e865[_0xc8e6('0x3a')]:_0x1db626[_0xc8e6('0x35')];if(!_0x5d942f[_0xc8e6('0x37')][_0xc8e6('0x3d')](_0xc8e6('0x3e'))){_0x44e865[_0xc8e6('0x20')]=qs[_0xc8e6('0x20')](_0x5d942f[_0xc8e6('0x37')][_0xc8e6('0x20')]);_0x44e865['offset']=qs[_0xc8e6('0x1f')](_0x5d942f[_0xc8e6('0x37')][_0xc8e6('0x1f')]);}_0x44e865[_0xc8e6('0x3f')]=qs[_0xc8e6('0x40')](_0x5d942f[_0xc8e6('0x37')]['sort']);_0x44e865[_0xc8e6('0x41')]=qs[_0xc8e6('0x38')](_[_0xc8e6('0x42')](_0x5d942f[_0xc8e6('0x37')],_0x1db626[_0xc8e6('0x38')]),_0x3d3b2d);if(_0x5d942f['query'][_0xc8e6('0x43')]){_0x44e865[_0xc8e6('0x41')]=_[_0xc8e6('0x44')](_0x44e865[_0xc8e6('0x41')],{'$or':_[_0xc8e6('0x2f')](_0x3d3b2d,function(_0xfc723b){if(_0xfc723b['type']!==_0xc8e6('0x45')){var _0x23b1ed={};_0x23b1ed[_0xfc723b[_0xc8e6('0x2c')]]={'$like':'%'+_0x5d942f[_0xc8e6('0x37')][_0xc8e6('0x43')]+'%'};return _0x23b1ed;}})});}_0x44e865=_[_0xc8e6('0x44')]({},_0x44e865,_0x5d942f['options']);var _0x35cd5d={'where':_0x44e865[_0xc8e6('0x41')]};return db[_0xc8e6('0x30')][_0xc8e6('0x1e')](_0x35cd5d)[_0xc8e6('0x26')](function(_0x57fe34){_0x3c47a8[_0xc8e6('0x1e')]=_0x57fe34;if(_0x5d942f['query'][_0xc8e6('0x46')]){_0x44e865[_0xc8e6('0x47')]=[{'all':!![]}];}return db[_0xc8e6('0x30')][_0xc8e6('0x48')](_0x44e865);})['then'](function(_0x4aed2f){_0x3c47a8[_0xc8e6('0x49')]=_0x4aed2f;return _0x3c47a8;})[_0xc8e6('0x26')](respondWithFilteredResult(_0x25210c,_0x44e865))[_0xc8e6('0x4a')](handleError(_0x25210c,null));};exports[_0xc8e6('0x4b')]=function(_0xc84103,_0x2b10d0){var _0x108395={'raw':!![],'where':{'id':_0xc84103['params']['id']}},_0x5b1e64={};_0x5b1e64['model']=_[_0xc8e6('0x36')](db[_0xc8e6('0x30')][_0xc8e6('0x31')]);_0x5b1e64[_0xc8e6('0x37')]=_[_0xc8e6('0x36')](_0xc84103['query']);_0x5b1e64[_0xc8e6('0x38')]=_[_0xc8e6('0x39')](_0x5b1e64[_0xc8e6('0x35')],_0x5b1e64[_0xc8e6('0x37')]);_0x108395[_0xc8e6('0x3a')]=_[_0xc8e6('0x39')](_0x5b1e64[_0xc8e6('0x35')],qs['fields'](_0xc84103[_0xc8e6('0x37')][_0xc8e6('0x3b')]));_0x108395['attributes']=_0x108395[_0xc8e6('0x3a')]['length']?_0x108395['attributes']:_0x5b1e64[_0xc8e6('0x35')];if(_0xc84103[_0xc8e6('0x37')]['includeAll']){_0x108395[_0xc8e6('0x47')]=[{'all':!![]}];}_0x108395=_[_0xc8e6('0x44')]({},_0x108395,_0xc84103[_0xc8e6('0x4c')]);return db[_0xc8e6('0x30')][_0xc8e6('0x4d')](_0x108395)[_0xc8e6('0x26')](handleEntityNotFound(_0x2b10d0,null))[_0xc8e6('0x26')](respondWithResult(_0x2b10d0,null))[_0xc8e6('0x4a')](handleError(_0x2b10d0,null));};exports[_0xc8e6('0x4e')]=function(_0xb03f38,_0x377d93){return db['AnalyticExtractedReport'][_0xc8e6('0x4e')](_0xb03f38[_0xc8e6('0x4f')],{})[_0xc8e6('0x26')](function(_0x2251f0){var _0x17429c=_0xb03f38[_0xc8e6('0x50')][_0xc8e6('0x28')]({'plain':!![]});if(!_0x17429c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x17429c[_0xc8e6('0x51')]==='user'){var _0x428f51=_0x2251f0['get']({'plain':!![]});var _0x3fbce5='ExtractedReports';return db[_0xc8e6('0x52')][_0xc8e6('0x4d')]({'where':{'name':_0x3fbce5,'userProfileId':_0x17429c[_0xc8e6('0x53')]},'raw':!![]})[_0xc8e6('0x26')](function(_0x4b86a5){if(_0x4b86a5&&_0x4b86a5[_0xc8e6('0x54')]===0x0){return db[_0xc8e6('0x55')][_0xc8e6('0x4e')]({'name':_0x428f51[_0xc8e6('0x2c')],'resourceId':_0x428f51['id'],'type':_0x4b86a5[_0xc8e6('0x2c')],'sectionId':_0x4b86a5['id']},{})[_0xc8e6('0x26')](function(){return _0x2251f0;});}else{return _0x2251f0;}})[_0xc8e6('0x4a')](function(_0x3f30ea){logger[_0xc8e6('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3f30ea);throw _0x3f30ea;});}return _0x2251f0;})[_0xc8e6('0x26')](respondWithResult(_0x377d93,0xc9))['catch'](handleError(_0x377d93,null));};exports[_0xc8e6('0x25')]=function(_0x5c0ba2,_0x12c572){if(_0x5c0ba2[_0xc8e6('0x4f')]['id']){delete _0x5c0ba2['body']['id'];}return db[_0xc8e6('0x30')][_0xc8e6('0x4d')]({'where':{'id':_0x5c0ba2['params']['id']}})['then'](handleEntityNotFound(_0x12c572,null))[_0xc8e6('0x26')](saveUpdates(_0x5c0ba2[_0xc8e6('0x4f')],null))[_0xc8e6('0x26')](respondWithResult(_0x12c572,null))[_0xc8e6('0x4a')](handleError(_0x12c572,null));};exports['destroy']=function(_0x4ed9bd,_0x2bc77b){return db[_0xc8e6('0x30')][_0xc8e6('0x4d')]({'where':{'id':_0x4ed9bd[_0xc8e6('0x56')]['id']}})[_0xc8e6('0x26')](handleEntityNotFound(_0x2bc77b,null))['then'](removeEntity(_0x2bc77b,null))[_0xc8e6('0x4a')](handleError(_0x2bc77b,null));};exports[_0xc8e6('0x57')]=function(_0x31db9a,_0x4b85a4,_0x1df851){return db[_0xc8e6('0x30')]['find']({'where':{'id':_0x31db9a['params']['id']},'attributes':['name',_0xc8e6('0x58'),_0xc8e6('0x59'),'output'],'raw':!![]})[_0xc8e6('0x26')](handleEntityNotFound(_0x4b85a4,null))['then'](function(_0x1f6362){if(_0x1f6362){if(!fs[_0xc8e6('0x5a')](path['join'](config[_0xc8e6('0x5b')],'server/files/reports',_0x1f6362[_0xc8e6('0x59')]))){throw new db[(_0xc8e6('0x5c'))][(_0xc8e6('0x5d'))]('Report\x20not\x20found\x20or\x20empty');}if(_0x31db9a[_0xc8e6('0x37')]['exists']){return _0x4b85a4[_0xc8e6('0x1a')](0xc8);}return _0x4b85a4[_0xc8e6('0x57')](path[_0xc8e6('0x5e')](config[_0xc8e6('0x5b')],_0xc8e6('0x5f'),_0x1f6362[_0xc8e6('0x59')]),util['format'](_0xc8e6('0x60'),_0x1f6362['basename']||_0x1f6362[_0xc8e6('0x2c')],_0x1f6362[_0xc8e6('0x61')][_0xc8e6('0x62')]()));}})[_0xc8e6('0x4a')](handleError(_0x4b85a4,null));};