37c61caf92e374ad5e661c79b0d0b57babda8002
[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 _0xa2ee=['count','offset','limit','set','Content-Range','apply','save','update','then','get','ExtractedReports','UserProfileResource','destroy','error','name','index','AnalyticExtractedReport','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','map','VIRTUAL','options','include','findAll','rows','catch','show','params','rawAttributes','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','download','basename','output','existsSync','join','server/files/reports','savename','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','root','%s.%s','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','sendStatus','status','end','json'];(function(_0xcfe8cc,_0xb83aeb){var _0x55ac53=function(_0x4067d4){while(--_0x4067d4){_0xcfe8cc['push'](_0xcfe8cc['shift']());}};_0x55ac53(++_0xb83aeb);}(_0xa2ee,0x108));var _0xea2e=function(_0x14d992,_0xa6ea84){_0x14d992=_0x14d992-0x0;var _0x10a29f=_0xa2ee[_0x14d992];return _0x10a29f;};'use strict';var pdf=require(_0xea2e('0x0'));var emlformat=require(_0xea2e('0x1'));var rimraf=require(_0xea2e('0x2'));var zipdir=require(_0xea2e('0x3'));var jsonpatch=require(_0xea2e('0x4'));var rp=require(_0xea2e('0x5'));var moment=require(_0xea2e('0x6'));var BPromise=require(_0xea2e('0x7'));var Mustache=require(_0xea2e('0x8'));var util=require(_0xea2e('0x9'));var path=require(_0xea2e('0xa'));var sox=require('sox');var csv=require(_0xea2e('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xea2e('0xc'));var deskjs=require(_0xea2e('0xd'));var toCsv=require(_0xea2e('0xb'));var querystring=require(_0xea2e('0xe'));var Papa=require(_0xea2e('0xf'));var Redis=require(_0xea2e('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xea2e('0x11'));var as=require(_0xea2e('0x12'));var hardwareService=require(_0xea2e('0x13'));var logger=require(_0xea2e('0x14'))('api');var utils=require('../../config/utils');var config=require(_0xea2e('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xea2e('0x16'))['db'];function respondWithStatusCode(_0x209738,_0x41768c){_0x41768c=_0x41768c||0xcc;return function(_0x4102ed){if(_0x4102ed){return _0x209738[_0xea2e('0x17')](_0x41768c);}return _0x209738[_0xea2e('0x18')](_0x41768c)[_0xea2e('0x19')]();};}function respondWithResult(_0x4d6de9,_0x3cbd1b){_0x3cbd1b=_0x3cbd1b||0xc8;return function(_0x3541db){if(_0x3541db){return _0x4d6de9[_0xea2e('0x18')](_0x3cbd1b)[_0xea2e('0x1a')](_0x3541db);}};}function respondWithFilteredResult(_0x11ccc8,_0x3d4556){return function(_0x5436c9){if(_0x5436c9){var _0x2a5e5c=_0x5436c9[_0xea2e('0x1b')],_0x53b9f9=_0x3d4556[_0xea2e('0x1c')],_0x33f587=_0x3d4556[_0xea2e('0x1c')]+_0x3d4556[_0xea2e('0x1d')],_0x1ba956;if(_0x33f587>=_0x2a5e5c){_0x33f587=_0x2a5e5c;_0x1ba956=0xc8;}else{_0x1ba956=0xce;}_0x11ccc8[_0xea2e('0x18')](_0x1ba956);return _0x11ccc8[_0xea2e('0x1e')](_0xea2e('0x1f'),_0x53b9f9+'-'+_0x33f587+'/'+_0x2a5e5c)[_0xea2e('0x1a')](_0x5436c9);}return null;};}function patchUpdates(_0x34d819){return function(_0x51400e){try{jsonpatch[_0xea2e('0x20')](_0x51400e,_0x34d819,!![]);}catch(_0x4f584b){return BPromise['reject'](_0x4f584b);}return _0x51400e[_0xea2e('0x21')]();};}function saveUpdates(_0x510107,_0x16a8ae){return function(_0x3bba91){if(_0x3bba91){return _0x3bba91[_0xea2e('0x22')](_0x510107)[_0xea2e('0x23')](function(_0xfb792b){return _0xfb792b;});}return null;};}function removeEntity(_0x370bf7,_0x8cd3de){return function(_0x350a9c){if(_0x350a9c){return _0x350a9c['destroy']()[_0xea2e('0x23')](function(){var _0x16f6b8=_0x350a9c[_0xea2e('0x24')]({'plain':!![]});var _0x5d376a=_0xea2e('0x25');return db[_0xea2e('0x26')][_0xea2e('0x27')]({'where':{'type':_0x5d376a,'resourceId':_0x16f6b8['id']}})[_0xea2e('0x23')](function(){return _0x350a9c;});})[_0xea2e('0x23')](function(){_0x370bf7[_0xea2e('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1df926,_0x13c66a){return function(_0x4f213c){if(!_0x4f213c){_0x1df926['sendStatus'](0x194);}return _0x4f213c;};}function handleError(_0x90762d,_0x4902f1){_0x4902f1=_0x4902f1||0x1f4;return function(_0x213bbc){logger[_0xea2e('0x28')](_0x213bbc['stack']);if(_0x213bbc['name']){delete _0x213bbc[_0xea2e('0x29')];}_0x90762d[_0xea2e('0x18')](_0x4902f1)['send'](_0x213bbc);};}exports[_0xea2e('0x2a')]=function(_0x35f13e,_0x1cba62){var _0x4948c5={},_0xc35d4={},_0x2a9b8b={'count':0x0,'rows':[]};var _0x20533c=_['map'](db[_0xea2e('0x2b')]['rawAttributes'],function(_0x36aa55){return{'name':_0x36aa55[_0xea2e('0x2c')],'type':_0x36aa55[_0xea2e('0x2d')][_0xea2e('0x2e')]};});_0xc35d4[_0xea2e('0x2f')]=_['map'](_0x20533c,_0xea2e('0x29'));_0xc35d4[_0xea2e('0x30')]=_[_0xea2e('0x31')](_0x35f13e[_0xea2e('0x30')]);_0xc35d4[_0xea2e('0x32')]=_[_0xea2e('0x33')](_0xc35d4[_0xea2e('0x2f')],_0xc35d4['query']);_0x4948c5[_0xea2e('0x34')]=_['intersection'](_0xc35d4[_0xea2e('0x2f')],qs[_0xea2e('0x35')](_0x35f13e[_0xea2e('0x30')][_0xea2e('0x35')]));_0x4948c5[_0xea2e('0x34')]=_0x4948c5['attributes'][_0xea2e('0x36')]?_0x4948c5[_0xea2e('0x34')]:_0xc35d4[_0xea2e('0x2f')];if(!_0x35f13e[_0xea2e('0x30')][_0xea2e('0x37')](_0xea2e('0x38'))){_0x4948c5[_0xea2e('0x1d')]=qs['limit'](_0x35f13e[_0xea2e('0x30')][_0xea2e('0x1d')]);_0x4948c5[_0xea2e('0x1c')]=qs[_0xea2e('0x1c')](_0x35f13e[_0xea2e('0x30')][_0xea2e('0x1c')]);}_0x4948c5[_0xea2e('0x39')]=qs['sort'](_0x35f13e[_0xea2e('0x30')][_0xea2e('0x3a')]);_0x4948c5['where']=qs[_0xea2e('0x32')](_[_0xea2e('0x3b')](_0x35f13e['query'],_0xc35d4['filters']),_0x20533c);if(_0x35f13e[_0xea2e('0x30')][_0xea2e('0x3c')]){_0x4948c5['where']=_[_0xea2e('0x3d')](_0x4948c5[_0xea2e('0x3e')],{'$or':_[_0xea2e('0x3f')](_0x20533c,function(_0x262e17){if(_0x262e17[_0xea2e('0x2d')]!==_0xea2e('0x40')){var _0x2f3c1a={};_0x2f3c1a[_0x262e17[_0xea2e('0x29')]]={'$like':'%'+_0x35f13e[_0xea2e('0x30')]['filter']+'%'};return _0x2f3c1a;}})});}_0x4948c5=_[_0xea2e('0x3d')]({},_0x4948c5,_0x35f13e[_0xea2e('0x41')]);var _0x3d1917={'where':_0x4948c5[_0xea2e('0x3e')]};return db['AnalyticExtractedReport'][_0xea2e('0x1b')](_0x3d1917)[_0xea2e('0x23')](function(_0x44c5a1){_0x2a9b8b[_0xea2e('0x1b')]=_0x44c5a1;if(_0x35f13e[_0xea2e('0x30')]['includeAll']){_0x4948c5[_0xea2e('0x42')]=[{'all':!![]}];}return db[_0xea2e('0x2b')][_0xea2e('0x43')](_0x4948c5);})['then'](function(_0x459cb9){_0x2a9b8b[_0xea2e('0x44')]=_0x459cb9;return _0x2a9b8b;})[_0xea2e('0x23')](respondWithFilteredResult(_0x1cba62,_0x4948c5))[_0xea2e('0x45')](handleError(_0x1cba62,null));};exports[_0xea2e('0x46')]=function(_0x3f0db7,_0x33bbff){var _0x1718e1={'raw':!![],'where':{'id':_0x3f0db7[_0xea2e('0x47')]['id']}},_0x31b090={};_0x31b090['model']=_[_0xea2e('0x31')](db[_0xea2e('0x2b')][_0xea2e('0x48')]);_0x31b090[_0xea2e('0x30')]=_[_0xea2e('0x31')](_0x3f0db7[_0xea2e('0x30')]);_0x31b090['filters']=_[_0xea2e('0x33')](_0x31b090[_0xea2e('0x2f')],_0x31b090['query']);_0x1718e1[_0xea2e('0x34')]=_['intersection'](_0x31b090[_0xea2e('0x2f')],qs[_0xea2e('0x35')](_0x3f0db7[_0xea2e('0x30')][_0xea2e('0x35')]));_0x1718e1[_0xea2e('0x34')]=_0x1718e1[_0xea2e('0x34')]['length']?_0x1718e1['attributes']:_0x31b090[_0xea2e('0x2f')];if(_0x3f0db7[_0xea2e('0x30')][_0xea2e('0x49')]){_0x1718e1[_0xea2e('0x42')]=[{'all':!![]}];}_0x1718e1=_['merge']({},_0x1718e1,_0x3f0db7['options']);return db[_0xea2e('0x2b')][_0xea2e('0x4a')](_0x1718e1)[_0xea2e('0x23')](handleEntityNotFound(_0x33bbff,null))[_0xea2e('0x23')](respondWithResult(_0x33bbff,null))[_0xea2e('0x45')](handleError(_0x33bbff,null));};exports[_0xea2e('0x4b')]=function(_0x2fddd1,_0x223767){return db[_0xea2e('0x2b')][_0xea2e('0x4b')](_0x2fddd1[_0xea2e('0x4c')],{})[_0xea2e('0x23')](function(_0x1a4ddd){var _0x41f4bb=_0x2fddd1[_0xea2e('0x4d')][_0xea2e('0x24')]({'plain':!![]});if(!_0x41f4bb)throw new Error(_0xea2e('0x4e'));if(_0x41f4bb[_0xea2e('0x4f')]===_0xea2e('0x4d')){var _0x5bde6b=_0x1a4ddd[_0xea2e('0x24')]({'plain':!![]});var _0x14980e=_0xea2e('0x25');return db[_0xea2e('0x50')][_0xea2e('0x4a')]({'where':{'name':_0x14980e,'userProfileId':_0x41f4bb[_0xea2e('0x51')]},'raw':!![]})[_0xea2e('0x23')](function(_0x3b4a8c){if(_0x3b4a8c&&_0x3b4a8c[_0xea2e('0x52')]===0x0){return db[_0xea2e('0x26')][_0xea2e('0x4b')]({'name':_0x5bde6b['name'],'resourceId':_0x5bde6b['id'],'type':_0x3b4a8c[_0xea2e('0x29')],'sectionId':_0x3b4a8c['id']},{})[_0xea2e('0x23')](function(){return _0x1a4ddd;});}else{return _0x1a4ddd;}})[_0xea2e('0x45')](function(_0x13035c){logger[_0xea2e('0x28')](_0xea2e('0x53'),_0x13035c);throw _0x13035c;});}return _0x1a4ddd;})['then'](respondWithResult(_0x223767,0xc9))[_0xea2e('0x45')](handleError(_0x223767,null));};exports[_0xea2e('0x22')]=function(_0x5a4b5f,_0x5e270d){if(_0x5a4b5f[_0xea2e('0x4c')]['id']){delete _0x5a4b5f[_0xea2e('0x4c')]['id'];}return db['AnalyticExtractedReport'][_0xea2e('0x4a')]({'where':{'id':_0x5a4b5f[_0xea2e('0x47')]['id']}})['then'](handleEntityNotFound(_0x5e270d,null))[_0xea2e('0x23')](saveUpdates(_0x5a4b5f[_0xea2e('0x4c')],null))[_0xea2e('0x23')](respondWithResult(_0x5e270d,null))['catch'](handleError(_0x5e270d,null));};exports[_0xea2e('0x27')]=function(_0x2705dc,_0x5f5df0){return db['AnalyticExtractedReport'][_0xea2e('0x4a')]({'where':{'id':_0x2705dc['params']['id']}})[_0xea2e('0x23')](handleEntityNotFound(_0x5f5df0,null))[_0xea2e('0x23')](removeEntity(_0x5f5df0,null))['catch'](handleError(_0x5f5df0,null));};exports[_0xea2e('0x54')]=function(_0xeb42bf,_0x1038a4,_0x4156e2){return db['AnalyticExtractedReport'][_0xea2e('0x4a')]({'where':{'id':_0xeb42bf[_0xea2e('0x47')]['id']},'attributes':[_0xea2e('0x29'),_0xea2e('0x55'),'savename',_0xea2e('0x56')],'raw':!![]})[_0xea2e('0x23')](handleEntityNotFound(_0x1038a4,null))[_0xea2e('0x23')](function(_0x37211d){if(_0x37211d){if(!fs[_0xea2e('0x57')](path[_0xea2e('0x58')](config['root'],_0xea2e('0x59'),_0x37211d[_0xea2e('0x5a')]))){throw new db[(_0xea2e('0x5b'))][(_0xea2e('0x5c'))](_0xea2e('0x5d'));}if(_0xeb42bf['query'][_0xea2e('0x5e')]){return _0x1038a4[_0xea2e('0x17')](0xc8);}return _0x1038a4[_0xea2e('0x54')](path['join'](config[_0xea2e('0x5f')],_0xea2e('0x59'),_0x37211d[_0xea2e('0x5a')]),util['format'](_0xea2e('0x60'),_0x37211d[_0xea2e('0x55')]||_0x37211d[_0xea2e('0x29')],_0x37211d[_0xea2e('0x56')]['toLowerCase']()));}})[_0xea2e('0x45')](handleError(_0x1038a4,null));};