Built motion from commit (unavailable).|2.5.29
[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 _0x86a2=['fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','offset','count','set','Content-Range','apply','save','update','then','destroy','get','UserProfileResource','end','error','name','send','index','rawAttributes','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','sort','pick','filter','where','map','type','VIRTUAL','options','AnalyticExtractedReport','includeAll','include','findAll','catch','show','params','merge','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','ExtractedReports','UserProfileSection','find','userProfileId','download','output','root','server/files/reports','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','join','savename','format','%s.%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs'];(function(_0x19ebad,_0x3e594e){var _0x4bc9d1=function(_0x12aaeb){while(--_0x12aaeb){_0x19ebad['push'](_0x19ebad['shift']());}};_0x4bc9d1(++_0x3e594e);}(_0x86a2,0x1c6));var _0x286a=function(_0x495b4f,_0xdb22f2){_0x495b4f=_0x495b4f-0x0;var _0x4a10cb=_0x86a2[_0x495b4f];return _0x4a10cb;};'use strict';var emlformat=require(_0x286a('0x0'));var rimraf=require(_0x286a('0x1'));var zipdir=require(_0x286a('0x2'));var jsonpatch=require(_0x286a('0x3'));var rp=require(_0x286a('0x4'));var moment=require(_0x286a('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x286a('0x6'));var util=require(_0x286a('0x7'));var path=require(_0x286a('0x8'));var sox=require('sox');var csv=require(_0x286a('0x9'));var ejs=require(_0x286a('0xa'));var fs=require('fs');var fs_extra=require(_0x286a('0xb'));var _=require(_0x286a('0xc'));var squel=require(_0x286a('0xd'));var crypto=require(_0x286a('0xe'));var jsforce=require(_0x286a('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x286a('0x9'));var querystring=require(_0x286a('0x10'));var Papa=require(_0x286a('0x11'));var Redis=require(_0x286a('0x12'));var authService=require(_0x286a('0x13'));var qs=require(_0x286a('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x286a('0x15'))(_0x286a('0x16'));var utils=require('../../config/utils');var config=require(_0x286a('0x17'));var licenseUtil=require(_0x286a('0x18'));var db=require(_0x286a('0x19'))['db'];function respondWithStatusCode(_0x3570b9,_0x1a3336){_0x1a3336=_0x1a3336||0xcc;return function(_0xde1f46){if(_0xde1f46){return _0x3570b9[_0x286a('0x1a')](_0x1a3336);}return _0x3570b9[_0x286a('0x1b')](_0x1a3336)['end']();};}function respondWithResult(_0x129735,_0x1df271){_0x1df271=_0x1df271||0xc8;return function(_0xb6a473){if(_0xb6a473){return _0x129735[_0x286a('0x1b')](_0x1df271)[_0x286a('0x1c')](_0xb6a473);}};}function respondWithFilteredResult(_0x434145,_0x134f15){return function(_0x15adc0){if(_0x15adc0){var _0x33461f=typeof _0x134f15['offset']===_0x286a('0x1d')&&typeof _0x134f15[_0x286a('0x1e')]===_0x286a('0x1d');var _0x1b378d=_0x15adc0['count'];var _0x56befb=_0x33461f?0x0:_0x134f15[_0x286a('0x1f')];var _0x44fe0a=_0x33461f?_0x15adc0[_0x286a('0x20')]:_0x134f15[_0x286a('0x1f')]+_0x134f15[_0x286a('0x1e')];var _0x2ed720;if(_0x44fe0a>=_0x1b378d){_0x44fe0a=_0x1b378d;_0x2ed720=0xc8;}else{_0x2ed720=0xce;}_0x434145[_0x286a('0x1b')](_0x2ed720);return _0x434145[_0x286a('0x21')](_0x286a('0x22'),_0x56befb+'-'+_0x44fe0a+'/'+_0x1b378d)[_0x286a('0x1c')](_0x15adc0);}return null;};}function patchUpdates(_0x2e34ad){return function(_0x3e5112){try{jsonpatch[_0x286a('0x23')](_0x3e5112,_0x2e34ad,!![]);}catch(_0x459cff){return BPromise['reject'](_0x459cff);}return _0x3e5112[_0x286a('0x24')]();};}function saveUpdates(_0x4030f8,_0x89aa09){return function(_0x448504){if(_0x448504){return _0x448504[_0x286a('0x25')](_0x4030f8)[_0x286a('0x26')](function(_0x39fa0c){return _0x39fa0c;});}return null;};}function removeEntity(_0x16f299,_0x4521da){return function(_0xf75b5c){if(_0xf75b5c){return _0xf75b5c[_0x286a('0x27')]()[_0x286a('0x26')](function(){var _0x5a470d=_0xf75b5c[_0x286a('0x28')]({'plain':!![]});var _0x282595='ExtractedReports';return db[_0x286a('0x29')][_0x286a('0x27')]({'where':{'type':_0x282595,'resourceId':_0x5a470d['id']}})['then'](function(){return _0xf75b5c;});})[_0x286a('0x26')](function(){_0x16f299[_0x286a('0x1b')](0xcc)[_0x286a('0x2a')]();});}};}function handleEntityNotFound(_0x360da4,_0x400e17){return function(_0x493a7d){if(!_0x493a7d){_0x360da4[_0x286a('0x1a')](0x194);}return _0x493a7d;};}function handleError(_0x3ff122,_0x155f56){_0x155f56=_0x155f56||0x1f4;return function(_0x2d1a45){logger[_0x286a('0x2b')](_0x2d1a45['stack']);if(_0x2d1a45[_0x286a('0x2c')]){delete _0x2d1a45[_0x286a('0x2c')];}_0x3ff122[_0x286a('0x1b')](_0x155f56)[_0x286a('0x2d')](_0x2d1a45);};}exports[_0x286a('0x2e')]=function(_0x12efb2,_0x24a1e7){var _0x5715ad={},_0x41fe62={},_0xdb6784={'count':0x0,'rows':[]};var _0xb0b358=_['map'](db['AnalyticExtractedReport'][_0x286a('0x2f')],function(_0x2d5d61){return{'name':_0x2d5d61['fieldName'],'type':_0x2d5d61['type']['key']};});_0x41fe62['model']=_['map'](_0xb0b358,_0x286a('0x2c'));_0x41fe62[_0x286a('0x30')]=_[_0x286a('0x31')](_0x12efb2['query']);_0x41fe62[_0x286a('0x32')]=_[_0x286a('0x33')](_0x41fe62[_0x286a('0x34')],_0x41fe62['query']);_0x5715ad[_0x286a('0x35')]=_[_0x286a('0x33')](_0x41fe62['model'],qs[_0x286a('0x36')](_0x12efb2[_0x286a('0x30')]['fields']));_0x5715ad[_0x286a('0x35')]=_0x5715ad[_0x286a('0x35')][_0x286a('0x37')]?_0x5715ad[_0x286a('0x35')]:_0x41fe62[_0x286a('0x34')];if(!_0x12efb2[_0x286a('0x30')][_0x286a('0x38')]('nolimit')){_0x5715ad[_0x286a('0x1e')]=qs[_0x286a('0x1e')](_0x12efb2[_0x286a('0x30')][_0x286a('0x1e')]);_0x5715ad['offset']=qs[_0x286a('0x1f')](_0x12efb2[_0x286a('0x30')][_0x286a('0x1f')]);}_0x5715ad['order']=qs['sort'](_0x12efb2[_0x286a('0x30')][_0x286a('0x39')]);_0x5715ad['where']=qs[_0x286a('0x32')](_[_0x286a('0x3a')](_0x12efb2[_0x286a('0x30')],_0x41fe62[_0x286a('0x32')]),_0xb0b358);if(_0x12efb2[_0x286a('0x30')][_0x286a('0x3b')]){_0x5715ad[_0x286a('0x3c')]=_['merge'](_0x5715ad[_0x286a('0x3c')],{'$or':_[_0x286a('0x3d')](_0xb0b358,function(_0x4b7c7b){if(_0x4b7c7b[_0x286a('0x3e')]!==_0x286a('0x3f')){var _0x8a1b3b={};_0x8a1b3b[_0x4b7c7b[_0x286a('0x2c')]]={'$like':'%'+_0x12efb2['query'][_0x286a('0x3b')]+'%'};return _0x8a1b3b;}})});}_0x5715ad=_['merge']({},_0x5715ad,_0x12efb2[_0x286a('0x40')]);var _0x4625e9={'where':_0x5715ad[_0x286a('0x3c')]};return db[_0x286a('0x41')][_0x286a('0x20')](_0x4625e9)[_0x286a('0x26')](function(_0x227504){_0xdb6784[_0x286a('0x20')]=_0x227504;if(_0x12efb2[_0x286a('0x30')][_0x286a('0x42')]){_0x5715ad[_0x286a('0x43')]=[{'all':!![]}];}return db[_0x286a('0x41')][_0x286a('0x44')](_0x5715ad);})[_0x286a('0x26')](function(_0x233de5){_0xdb6784['rows']=_0x233de5;return _0xdb6784;})[_0x286a('0x26')](respondWithFilteredResult(_0x24a1e7,_0x5715ad))[_0x286a('0x45')](handleError(_0x24a1e7,null));};exports[_0x286a('0x46')]=function(_0x5bbf83,_0x2a71dd){var _0x4c6fc8={'raw':!![],'where':{'id':_0x5bbf83[_0x286a('0x47')]['id']}},_0x3fa0fe={};_0x3fa0fe[_0x286a('0x34')]=_[_0x286a('0x31')](db['AnalyticExtractedReport'][_0x286a('0x2f')]);_0x3fa0fe[_0x286a('0x30')]=_[_0x286a('0x31')](_0x5bbf83[_0x286a('0x30')]);_0x3fa0fe[_0x286a('0x32')]=_[_0x286a('0x33')](_0x3fa0fe['model'],_0x3fa0fe[_0x286a('0x30')]);_0x4c6fc8['attributes']=_['intersection'](_0x3fa0fe[_0x286a('0x34')],qs['fields'](_0x5bbf83[_0x286a('0x30')][_0x286a('0x36')]));_0x4c6fc8['attributes']=_0x4c6fc8[_0x286a('0x35')][_0x286a('0x37')]?_0x4c6fc8[_0x286a('0x35')]:_0x3fa0fe['model'];if(_0x5bbf83[_0x286a('0x30')][_0x286a('0x42')]){_0x4c6fc8[_0x286a('0x43')]=[{'all':!![]}];}_0x4c6fc8=_[_0x286a('0x48')]({},_0x4c6fc8,_0x5bbf83[_0x286a('0x40')]);return db['AnalyticExtractedReport']['find'](_0x4c6fc8)['then'](handleEntityNotFound(_0x2a71dd,null))[_0x286a('0x26')](respondWithResult(_0x2a71dd,null))[_0x286a('0x45')](handleError(_0x2a71dd,null));};exports['create']=function(_0x28a90c,_0x1eb461){return db[_0x286a('0x41')][_0x286a('0x49')](_0x28a90c[_0x286a('0x4a')],{})[_0x286a('0x26')](function(_0x2a5fd0){var _0x148be0=_0x28a90c[_0x286a('0x4b')]['get']({'plain':!![]});if(!_0x148be0)throw new Error(_0x286a('0x4c'));if(_0x148be0[_0x286a('0x4d')]===_0x286a('0x4b')){var _0x22e006=_0x2a5fd0[_0x286a('0x28')]({'plain':!![]});var _0x117fbe=_0x286a('0x4e');return db[_0x286a('0x4f')][_0x286a('0x50')]({'where':{'name':_0x117fbe,'userProfileId':_0x148be0[_0x286a('0x51')]},'raw':!![]})[_0x286a('0x26')](function(_0x349fb1){if(_0x349fb1&&_0x349fb1['autoAssociation']===0x0){return db['UserProfileResource'][_0x286a('0x49')]({'name':_0x22e006[_0x286a('0x2c')],'resourceId':_0x22e006['id'],'type':_0x349fb1['name'],'sectionId':_0x349fb1['id']},{})[_0x286a('0x26')](function(){return _0x2a5fd0;});}else{return _0x2a5fd0;}})[_0x286a('0x45')](function(_0x1d469c){logger[_0x286a('0x2b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1d469c);throw _0x1d469c;});}return _0x2a5fd0;})[_0x286a('0x26')](respondWithResult(_0x1eb461,0xc9))[_0x286a('0x45')](handleError(_0x1eb461,null));};exports[_0x286a('0x25')]=function(_0x356391,_0x3dbcf6){if(_0x356391[_0x286a('0x4a')]['id']){delete _0x356391[_0x286a('0x4a')]['id'];}return db['AnalyticExtractedReport'][_0x286a('0x50')]({'where':{'id':_0x356391[_0x286a('0x47')]['id']}})[_0x286a('0x26')](handleEntityNotFound(_0x3dbcf6,null))['then'](saveUpdates(_0x356391[_0x286a('0x4a')],null))[_0x286a('0x26')](respondWithResult(_0x3dbcf6,null))[_0x286a('0x45')](handleError(_0x3dbcf6,null));};exports[_0x286a('0x27')]=function(_0x37f577,_0x1c7270){return db[_0x286a('0x41')][_0x286a('0x50')]({'where':{'id':_0x37f577[_0x286a('0x47')]['id']}})['then'](handleEntityNotFound(_0x1c7270,null))['then'](removeEntity(_0x1c7270,null))[_0x286a('0x45')](handleError(_0x1c7270,null));};exports[_0x286a('0x52')]=function(_0x33f32b,_0x394743,_0x3149c1){return db['AnalyticExtractedReport'][_0x286a('0x50')]({'where':{'id':_0x33f32b[_0x286a('0x47')]['id']},'attributes':['name','basename','savename',_0x286a('0x53')],'raw':!![]})['then'](handleEntityNotFound(_0x394743,null))[_0x286a('0x26')](function(_0x599567){if(_0x599567){if(!fs['existsSync'](path['join'](config[_0x286a('0x54')],_0x286a('0x55'),_0x599567['savename']))){throw new db['Sequelize'][(_0x286a('0x56'))](_0x286a('0x57'));}if(_0x33f32b['query'][_0x286a('0x58')]){return _0x394743[_0x286a('0x1a')](0xc8);}return _0x394743[_0x286a('0x52')](path[_0x286a('0x59')](config[_0x286a('0x54')],_0x286a('0x55'),_0x599567[_0x286a('0x5a')]),util[_0x286a('0x5b')](_0x286a('0x5c'),_0x599567['basename']||_0x599567[_0x286a('0x2c')],_0x599567[_0x286a('0x53')]['toLowerCase']()));}})[_0x286a('0x45')](handleError(_0x394743,null));};