Built motion from commit 19a84241.|2.5.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 _0x0a33=['sendStatus','status','undefined','limit','offset','count','set','Content-Range','json','apply','reject','update','then','destroy','UserProfileResource','error','name','index','map','AnalyticExtractedReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','catch','download','savename','output','existsSync','join','root','server/files/reports','Sequelize','Report\x20not\x20found\x20or\x20empty','exists','format','%s.%s','basename','toLowerCase','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util'];(function(_0x5f39f0,_0x38e524){var _0x102239=function(_0x5fec76){while(--_0x5fec76){_0x5f39f0['push'](_0x5f39f0['shift']());}};_0x102239(++_0x38e524);}(_0x0a33,0x109));var _0x30a3=function(_0x5dbcc5,_0x2a6363){_0x5dbcc5=_0x5dbcc5-0x0;var _0x18daae=_0x0a33[_0x5dbcc5];return _0x18daae;};'use strict';var emlformat=require(_0x30a3('0x0'));var rimraf=require(_0x30a3('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x30a3('0x2'));var rp=require(_0x30a3('0x3'));var moment=require(_0x30a3('0x4'));var BPromise=require(_0x30a3('0x5'));var Mustache=require(_0x30a3('0x6'));var util=require(_0x30a3('0x7'));var path=require(_0x30a3('0x8'));var sox=require('sox');var csv=require(_0x30a3('0x9'));var ejs=require(_0x30a3('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x30a3('0xb'));var squel=require(_0x30a3('0xc'));var crypto=require(_0x30a3('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x30a3('0xe'));var Papa=require(_0x30a3('0xf'));var Redis=require(_0x30a3('0x10'));var authService=require(_0x30a3('0x11'));var qs=require(_0x30a3('0x12'));var as=require(_0x30a3('0x13'));var hardwareService=require(_0x30a3('0x14'));var logger=require(_0x30a3('0x15'))(_0x30a3('0x16'));var utils=require(_0x30a3('0x17'));var config=require(_0x30a3('0x18'));var licenseUtil=require(_0x30a3('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x18f01a,_0x1adb10){_0x1adb10=_0x1adb10||0xcc;return function(_0x3c9770){if(_0x3c9770){return _0x18f01a[_0x30a3('0x1a')](_0x1adb10);}return _0x18f01a['status'](_0x1adb10)['end']();};}function respondWithResult(_0x4b562d,_0x422273){_0x422273=_0x422273||0xc8;return function(_0x2128fa){if(_0x2128fa){return _0x4b562d[_0x30a3('0x1b')](_0x422273)['json'](_0x2128fa);}};}function respondWithFilteredResult(_0x32c0f0,_0x188fa7){return function(_0x2a4486){if(_0x2a4486){var _0x83194d=typeof _0x188fa7['offset']===_0x30a3('0x1c')&&typeof _0x188fa7[_0x30a3('0x1d')]===_0x30a3('0x1c');var _0x34d054=_0x2a4486['count'];var _0x10754d=_0x83194d?0x0:_0x188fa7[_0x30a3('0x1e')];var _0x3aaef8=_0x83194d?_0x2a4486[_0x30a3('0x1f')]:_0x188fa7['offset']+_0x188fa7[_0x30a3('0x1d')];var _0x7d40e5;if(_0x3aaef8>=_0x34d054){_0x3aaef8=_0x34d054;_0x7d40e5=0xc8;}else{_0x7d40e5=0xce;}_0x32c0f0[_0x30a3('0x1b')](_0x7d40e5);return _0x32c0f0[_0x30a3('0x20')](_0x30a3('0x21'),_0x10754d+'-'+_0x3aaef8+'/'+_0x34d054)[_0x30a3('0x22')](_0x2a4486);}return null;};}function patchUpdates(_0x3cfa62){return function(_0x5485e7){try{jsonpatch[_0x30a3('0x23')](_0x5485e7,_0x3cfa62,!![]);}catch(_0x55bc94){return BPromise[_0x30a3('0x24')](_0x55bc94);}return _0x5485e7['save']();};}function saveUpdates(_0x197c03,_0x565b4a){return function(_0x745bae){if(_0x745bae){return _0x745bae[_0x30a3('0x25')](_0x197c03)[_0x30a3('0x26')](function(_0x108409){return _0x108409;});}return null;};}function removeEntity(_0xfbed51,_0x38a665){return function(_0x42d874){if(_0x42d874){return _0x42d874[_0x30a3('0x27')]()[_0x30a3('0x26')](function(){var _0x3fb7b1=_0x42d874['get']({'plain':!![]});var _0x37bd51='ExtractedReports';return db[_0x30a3('0x28')][_0x30a3('0x27')]({'where':{'type':_0x37bd51,'resourceId':_0x3fb7b1['id']}})['then'](function(){return _0x42d874;});})['then'](function(){_0xfbed51['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2effb8,_0x5d2715){return function(_0x22b89f){if(!_0x22b89f){_0x2effb8[_0x30a3('0x1a')](0x194);}return _0x22b89f;};}function handleError(_0x572731,_0xd467e){_0xd467e=_0xd467e||0x1f4;return function(_0x1c1f4f){logger[_0x30a3('0x29')](_0x1c1f4f['stack']);if(_0x1c1f4f[_0x30a3('0x2a')]){delete _0x1c1f4f[_0x30a3('0x2a')];}_0x572731['status'](_0xd467e)['send'](_0x1c1f4f);};}exports[_0x30a3('0x2b')]=function(_0x620f41,_0x74860e){var _0x9ec495={},_0x1f193d={},_0x22f44a={'count':0x0,'rows':[]};var _0x22aaa6=_[_0x30a3('0x2c')](db[_0x30a3('0x2d')][_0x30a3('0x2e')],function(_0x12e078){return{'name':_0x12e078[_0x30a3('0x2f')],'type':_0x12e078[_0x30a3('0x30')][_0x30a3('0x31')]};});_0x1f193d[_0x30a3('0x32')]=_[_0x30a3('0x2c')](_0x22aaa6,_0x30a3('0x2a'));_0x1f193d[_0x30a3('0x33')]=_[_0x30a3('0x34')](_0x620f41['query']);_0x1f193d[_0x30a3('0x35')]=_[_0x30a3('0x36')](_0x1f193d['model'],_0x1f193d[_0x30a3('0x33')]);_0x9ec495[_0x30a3('0x37')]=_[_0x30a3('0x36')](_0x1f193d['model'],qs[_0x30a3('0x38')](_0x620f41[_0x30a3('0x33')][_0x30a3('0x38')]));_0x9ec495[_0x30a3('0x37')]=_0x9ec495[_0x30a3('0x37')][_0x30a3('0x39')]?_0x9ec495[_0x30a3('0x37')]:_0x1f193d[_0x30a3('0x32')];if(!_0x620f41[_0x30a3('0x33')]['hasOwnProperty'](_0x30a3('0x3a'))){_0x9ec495[_0x30a3('0x1d')]=qs[_0x30a3('0x1d')](_0x620f41[_0x30a3('0x33')][_0x30a3('0x1d')]);_0x9ec495['offset']=qs[_0x30a3('0x1e')](_0x620f41[_0x30a3('0x33')][_0x30a3('0x1e')]);}_0x9ec495[_0x30a3('0x3b')]=qs[_0x30a3('0x3c')](_0x620f41[_0x30a3('0x33')][_0x30a3('0x3c')]);_0x9ec495[_0x30a3('0x3d')]=qs[_0x30a3('0x35')](_[_0x30a3('0x3e')](_0x620f41[_0x30a3('0x33')],_0x1f193d[_0x30a3('0x35')]),_0x22aaa6);if(_0x620f41[_0x30a3('0x33')]['filter']){_0x9ec495[_0x30a3('0x3d')]=_[_0x30a3('0x3f')](_0x9ec495[_0x30a3('0x3d')],{'$or':_[_0x30a3('0x2c')](_0x22aaa6,function(_0x1e84a9){if(_0x1e84a9[_0x30a3('0x30')]!==_0x30a3('0x40')){var _0x3b401d={};_0x3b401d[_0x1e84a9[_0x30a3('0x2a')]]={'$like':'%'+_0x620f41[_0x30a3('0x33')]['filter']+'%'};return _0x3b401d;}})});}_0x9ec495=_[_0x30a3('0x3f')]({},_0x9ec495,_0x620f41[_0x30a3('0x41')]);var _0x50a3a8={'where':_0x9ec495[_0x30a3('0x3d')]};return db[_0x30a3('0x2d')][_0x30a3('0x1f')](_0x50a3a8)['then'](function(_0x377f55){_0x22f44a[_0x30a3('0x1f')]=_0x377f55;if(_0x620f41[_0x30a3('0x33')][_0x30a3('0x42')]){_0x9ec495[_0x30a3('0x43')]=[{'all':!![]}];}return db[_0x30a3('0x2d')][_0x30a3('0x44')](_0x9ec495);})[_0x30a3('0x26')](function(_0x399a62){_0x22f44a[_0x30a3('0x45')]=_0x399a62;return _0x22f44a;})[_0x30a3('0x26')](respondWithFilteredResult(_0x74860e,_0x9ec495))['catch'](handleError(_0x74860e,null));};exports[_0x30a3('0x46')]=function(_0x3d11ea,_0x50add4){var _0x513e48={'raw':!![],'where':{'id':_0x3d11ea[_0x30a3('0x47')]['id']}},_0x3fa200={};_0x3fa200[_0x30a3('0x32')]=_[_0x30a3('0x34')](db[_0x30a3('0x2d')][_0x30a3('0x2e')]);_0x3fa200[_0x30a3('0x33')]=_[_0x30a3('0x34')](_0x3d11ea[_0x30a3('0x33')]);_0x3fa200['filters']=_['intersection'](_0x3fa200[_0x30a3('0x32')],_0x3fa200[_0x30a3('0x33')]);_0x513e48[_0x30a3('0x37')]=_[_0x30a3('0x36')](_0x3fa200[_0x30a3('0x32')],qs['fields'](_0x3d11ea[_0x30a3('0x33')][_0x30a3('0x38')]));_0x513e48[_0x30a3('0x37')]=_0x513e48['attributes']['length']?_0x513e48['attributes']:_0x3fa200['model'];if(_0x3d11ea['query'][_0x30a3('0x42')]){_0x513e48[_0x30a3('0x43')]=[{'all':!![]}];}_0x513e48=_[_0x30a3('0x3f')]({},_0x513e48,_0x3d11ea[_0x30a3('0x41')]);return db[_0x30a3('0x2d')]['find'](_0x513e48)[_0x30a3('0x26')](handleEntityNotFound(_0x50add4,null))['then'](respondWithResult(_0x50add4,null))['catch'](handleError(_0x50add4,null));};exports['create']=function(_0x1d6405,_0x4cd1ac){return db[_0x30a3('0x2d')][_0x30a3('0x48')](_0x1d6405['body'],{})[_0x30a3('0x26')](function(_0x21d023){var _0x22437c=_0x1d6405['user'][_0x30a3('0x49')]({'plain':!![]});if(!_0x22437c)throw new Error(_0x30a3('0x4a'));if(_0x22437c[_0x30a3('0x4b')]==='user'){var _0x10f6fe=_0x21d023[_0x30a3('0x49')]({'plain':!![]});var _0x39ec9c='ExtractedReports';return db[_0x30a3('0x4c')][_0x30a3('0x4d')]({'where':{'name':_0x39ec9c,'userProfileId':_0x22437c[_0x30a3('0x4e')]},'raw':!![]})[_0x30a3('0x26')](function(_0xfa0ae6){if(_0xfa0ae6&&_0xfa0ae6[_0x30a3('0x4f')]===0x0){return db['UserProfileResource'][_0x30a3('0x48')]({'name':_0x10f6fe[_0x30a3('0x2a')],'resourceId':_0x10f6fe['id'],'type':_0xfa0ae6[_0x30a3('0x2a')],'sectionId':_0xfa0ae6['id']},{})[_0x30a3('0x26')](function(){return _0x21d023;});}else{return _0x21d023;}})['catch'](function(_0xcecf22){logger['error'](_0x30a3('0x50'),_0xcecf22);throw _0xcecf22;});}return _0x21d023;})['then'](respondWithResult(_0x4cd1ac,0xc9))['catch'](handleError(_0x4cd1ac,null));};exports[_0x30a3('0x25')]=function(_0x33aad1,_0x37a225){if(_0x33aad1[_0x30a3('0x51')]['id']){delete _0x33aad1[_0x30a3('0x51')]['id'];}return db[_0x30a3('0x2d')][_0x30a3('0x4d')]({'where':{'id':_0x33aad1[_0x30a3('0x47')]['id']}})[_0x30a3('0x26')](handleEntityNotFound(_0x37a225,null))[_0x30a3('0x26')](saveUpdates(_0x33aad1[_0x30a3('0x51')],null))['then'](respondWithResult(_0x37a225,null))[_0x30a3('0x52')](handleError(_0x37a225,null));};exports[_0x30a3('0x27')]=function(_0x50bcce,_0x1befea){return db[_0x30a3('0x2d')]['find']({'where':{'id':_0x50bcce[_0x30a3('0x47')]['id']}})[_0x30a3('0x26')](handleEntityNotFound(_0x1befea,null))[_0x30a3('0x26')](removeEntity(_0x1befea,null))[_0x30a3('0x52')](handleError(_0x1befea,null));};exports[_0x30a3('0x53')]=function(_0x4dc25c,_0x106c1f,_0x237e6a){return db[_0x30a3('0x2d')][_0x30a3('0x4d')]({'where':{'id':_0x4dc25c['params']['id']},'attributes':[_0x30a3('0x2a'),'basename',_0x30a3('0x54'),_0x30a3('0x55')],'raw':!![]})[_0x30a3('0x26')](handleEntityNotFound(_0x106c1f,null))['then'](function(_0x13f8fd){if(_0x13f8fd){if(!fs[_0x30a3('0x56')](path[_0x30a3('0x57')](config[_0x30a3('0x58')],_0x30a3('0x59'),_0x13f8fd['savename']))){throw new db[(_0x30a3('0x5a'))]['ValidationError'](_0x30a3('0x5b'));}if(_0x4dc25c[_0x30a3('0x33')][_0x30a3('0x5c')]){return _0x106c1f[_0x30a3('0x1a')](0xc8);}return _0x106c1f['download'](path[_0x30a3('0x57')](config[_0x30a3('0x58')],_0x30a3('0x59'),_0x13f8fd[_0x30a3('0x54')]),util[_0x30a3('0x5d')](_0x30a3('0x5e'),_0x13f8fd[_0x30a3('0x5f')]||_0x13f8fd[_0x30a3('0x2a')],_0x13f8fd[_0x30a3('0x55')][_0x30a3('0x60')]()));}})[_0x30a3('0x52')](handleError(_0x106c1f,null));};