Built motion from commit ffdca78c.|2.6.24
[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 _0x26a1=['../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','json','offset','limit','undefined','count','reject','save','update','then','destroy','get','ExtractedReports','UserProfileResource','end','send','index','map','AnalyticExtractedReport','rawAttributes','fieldName','type','key','model','name','query','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','keys','intersection','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','download','basename','savename','existsSync','join','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','root','server/files/reports','format','output','toLowerCase','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','ejs','lodash','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x189d00,_0x538155){var _0x43e222=function(_0x43603e){while(--_0x43603e){_0x189d00['push'](_0x189d00['shift']());}};_0x43e222(++_0x538155);}(_0x26a1,0x10a));var _0x126a=function(_0x56482c,_0x16118d){_0x56482c=_0x56482c-0x0;var _0x5aae7a=_0x26a1[_0x56482c];return _0x5aae7a;};'use strict';var emlformat=require(_0x126a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x126a('0x1'));var jsonpatch=require(_0x126a('0x2'));var rp=require(_0x126a('0x3'));var moment=require(_0x126a('0x4'));var BPromise=require(_0x126a('0x5'));var Mustache=require('mustache');var util=require(_0x126a('0x6'));var path=require(_0x126a('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x126a('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x126a('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x126a('0xa'));var deskjs=require(_0x126a('0xb'));var toCsv=require(_0x126a('0xc'));var querystring=require('querystring');var Papa=require(_0x126a('0xd'));var Redis=require(_0x126a('0xe'));var authService=require(_0x126a('0xf'));var qs=require(_0x126a('0x10'));var as=require(_0x126a('0x11'));var hardwareService=require(_0x126a('0x12'));var logger=require(_0x126a('0x13'))(_0x126a('0x14'));var utils=require(_0x126a('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x126a('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x506c6a,_0x395ac9){_0x395ac9=_0x395ac9||0xcc;return function(_0x354b7f){if(_0x354b7f){return _0x506c6a[_0x126a('0x17')](_0x395ac9);}return _0x506c6a['status'](_0x395ac9)['end']();};}function respondWithResult(_0x22673e,_0x25b172){_0x25b172=_0x25b172||0xc8;return function(_0x30bc92){if(_0x30bc92){return _0x22673e[_0x126a('0x18')](_0x25b172)[_0x126a('0x19')](_0x30bc92);}};}function respondWithFilteredResult(_0x3b7438,_0x28d9c2){return function(_0x51e621){if(_0x51e621){var _0x20e1d2=typeof _0x28d9c2[_0x126a('0x1a')]==='undefined'&&typeof _0x28d9c2[_0x126a('0x1b')]===_0x126a('0x1c');var _0x5d19e4=_0x51e621['count'];var _0x229668=_0x20e1d2?0x0:_0x28d9c2[_0x126a('0x1a')];var _0x5180bd=_0x20e1d2?_0x51e621[_0x126a('0x1d')]:_0x28d9c2[_0x126a('0x1a')]+_0x28d9c2[_0x126a('0x1b')];var _0x3831a7;if(_0x5180bd>=_0x5d19e4){_0x5180bd=_0x5d19e4;_0x3831a7=0xc8;}else{_0x3831a7=0xce;}_0x3b7438[_0x126a('0x18')](_0x3831a7);return _0x3b7438['set']('Content-Range',_0x229668+'-'+_0x5180bd+'/'+_0x5d19e4)['json'](_0x51e621);}return null;};}function patchUpdates(_0x47b225){return function(_0x20f695){try{jsonpatch['apply'](_0x20f695,_0x47b225,!![]);}catch(_0x530098){return BPromise[_0x126a('0x1e')](_0x530098);}return _0x20f695[_0x126a('0x1f')]();};}function saveUpdates(_0x32921c,_0x23deb0){return function(_0x4cdc6a){if(_0x4cdc6a){return _0x4cdc6a[_0x126a('0x20')](_0x32921c)[_0x126a('0x21')](function(_0x8b6a0d){return _0x8b6a0d;});}return null;};}function removeEntity(_0x31ea14,_0x3e18cc){return function(_0xef9d1e){if(_0xef9d1e){return _0xef9d1e[_0x126a('0x22')]()[_0x126a('0x21')](function(){var _0x48a1e3=_0xef9d1e[_0x126a('0x23')]({'plain':!![]});var _0x33f8a9=_0x126a('0x24');return db[_0x126a('0x25')]['destroy']({'where':{'type':_0x33f8a9,'resourceId':_0x48a1e3['id']}})[_0x126a('0x21')](function(){return _0xef9d1e;});})[_0x126a('0x21')](function(){_0x31ea14[_0x126a('0x18')](0xcc)[_0x126a('0x26')]();});}};}function handleEntityNotFound(_0x45d145,_0x4936ca){return function(_0x2489b5){if(!_0x2489b5){_0x45d145[_0x126a('0x17')](0x194);}return _0x2489b5;};}function handleError(_0x79af08,_0x48fefa){_0x48fefa=_0x48fefa||0x1f4;return function(_0x5d4dd9){logger['error'](_0x5d4dd9['stack']);if(_0x5d4dd9['name']){delete _0x5d4dd9['name'];}_0x79af08[_0x126a('0x18')](_0x48fefa)[_0x126a('0x27')](_0x5d4dd9);};}exports[_0x126a('0x28')]=function(_0x2af0ca,_0xadeb82){var _0x2ef60c={},_0x3a2794={},_0x4ef37f={'count':0x0,'rows':[]};var _0x41c28e=_[_0x126a('0x29')](db[_0x126a('0x2a')][_0x126a('0x2b')],function(_0x640aae){return{'name':_0x640aae[_0x126a('0x2c')],'type':_0x640aae[_0x126a('0x2d')][_0x126a('0x2e')]};});_0x3a2794[_0x126a('0x2f')]=_[_0x126a('0x29')](_0x41c28e,_0x126a('0x30'));_0x3a2794[_0x126a('0x31')]=_['keys'](_0x2af0ca[_0x126a('0x31')]);_0x3a2794[_0x126a('0x32')]=_['intersection'](_0x3a2794[_0x126a('0x2f')],_0x3a2794[_0x126a('0x31')]);_0x2ef60c[_0x126a('0x33')]=_['intersection'](_0x3a2794[_0x126a('0x2f')],qs[_0x126a('0x34')](_0x2af0ca[_0x126a('0x31')]['fields']));_0x2ef60c['attributes']=_0x2ef60c['attributes'][_0x126a('0x35')]?_0x2ef60c['attributes']:_0x3a2794[_0x126a('0x2f')];if(!_0x2af0ca['query'][_0x126a('0x36')](_0x126a('0x37'))){_0x2ef60c['limit']=qs[_0x126a('0x1b')](_0x2af0ca[_0x126a('0x31')][_0x126a('0x1b')]);_0x2ef60c[_0x126a('0x1a')]=qs[_0x126a('0x1a')](_0x2af0ca[_0x126a('0x31')][_0x126a('0x1a')]);}_0x2ef60c[_0x126a('0x38')]=qs['sort'](_0x2af0ca[_0x126a('0x31')][_0x126a('0x39')]);_0x2ef60c['where']=qs[_0x126a('0x32')](_[_0x126a('0x3a')](_0x2af0ca[_0x126a('0x31')],_0x3a2794['filters']),_0x41c28e);if(_0x2af0ca[_0x126a('0x31')][_0x126a('0x3b')]){_0x2ef60c[_0x126a('0x3c')]=_[_0x126a('0x3d')](_0x2ef60c[_0x126a('0x3c')],{'$or':_[_0x126a('0x29')](_0x41c28e,function(_0x579093){if(_0x579093[_0x126a('0x2d')]!==_0x126a('0x3e')){var _0xdb8ed8={};_0xdb8ed8[_0x579093['name']]={'$like':'%'+_0x2af0ca[_0x126a('0x31')][_0x126a('0x3b')]+'%'};return _0xdb8ed8;}})});}_0x2ef60c=_[_0x126a('0x3d')]({},_0x2ef60c,_0x2af0ca[_0x126a('0x3f')]);var _0x3d5aa2={'where':_0x2ef60c['where']};return db[_0x126a('0x2a')][_0x126a('0x1d')](_0x3d5aa2)[_0x126a('0x21')](function(_0x34664e){_0x4ef37f[_0x126a('0x1d')]=_0x34664e;if(_0x2af0ca['query'][_0x126a('0x40')]){_0x2ef60c[_0x126a('0x41')]=[{'all':!![]}];}return db[_0x126a('0x2a')]['findAll'](_0x2ef60c);})[_0x126a('0x21')](function(_0x13433f){_0x4ef37f[_0x126a('0x42')]=_0x13433f;return _0x4ef37f;})[_0x126a('0x21')](respondWithFilteredResult(_0xadeb82,_0x2ef60c))[_0x126a('0x43')](handleError(_0xadeb82,null));};exports[_0x126a('0x44')]=function(_0xc57ada,_0x496a9c){var _0x1a69a2={'raw':!![],'where':{'id':_0xc57ada[_0x126a('0x45')]['id']}},_0x2538f6={};_0x2538f6[_0x126a('0x2f')]=_['keys'](db[_0x126a('0x2a')][_0x126a('0x2b')]);_0x2538f6[_0x126a('0x31')]=_[_0x126a('0x46')](_0xc57ada[_0x126a('0x31')]);_0x2538f6[_0x126a('0x32')]=_[_0x126a('0x47')](_0x2538f6[_0x126a('0x2f')],_0x2538f6[_0x126a('0x31')]);_0x1a69a2[_0x126a('0x33')]=_[_0x126a('0x47')](_0x2538f6[_0x126a('0x2f')],qs[_0x126a('0x34')](_0xc57ada['query'][_0x126a('0x34')]));_0x1a69a2[_0x126a('0x33')]=_0x1a69a2[_0x126a('0x33')][_0x126a('0x35')]?_0x1a69a2[_0x126a('0x33')]:_0x2538f6[_0x126a('0x2f')];if(_0xc57ada['query']['includeAll']){_0x1a69a2[_0x126a('0x41')]=[{'all':!![]}];}_0x1a69a2=_[_0x126a('0x3d')]({},_0x1a69a2,_0xc57ada[_0x126a('0x3f')]);return db[_0x126a('0x2a')][_0x126a('0x48')](_0x1a69a2)[_0x126a('0x21')](handleEntityNotFound(_0x496a9c,null))['then'](respondWithResult(_0x496a9c,null))[_0x126a('0x43')](handleError(_0x496a9c,null));};exports[_0x126a('0x49')]=function(_0x59b43a,_0x5e8f00){return db[_0x126a('0x2a')][_0x126a('0x49')](_0x59b43a[_0x126a('0x4a')],{})[_0x126a('0x21')](function(_0x5e9d8d){var _0x323621=_0x59b43a[_0x126a('0x4b')]['get']({'plain':!![]});if(!_0x323621)throw new Error(_0x126a('0x4c'));if(_0x323621[_0x126a('0x4d')]==='user'){var _0x21ee4a=_0x5e9d8d[_0x126a('0x23')]({'plain':!![]});var _0x3d6ee9=_0x126a('0x24');return db[_0x126a('0x4e')]['find']({'where':{'name':_0x3d6ee9,'userProfileId':_0x323621[_0x126a('0x4f')]},'raw':!![]})[_0x126a('0x21')](function(_0x1ff2cf){if(_0x1ff2cf&&_0x1ff2cf[_0x126a('0x50')]===0x0){return db[_0x126a('0x25')][_0x126a('0x49')]({'name':_0x21ee4a[_0x126a('0x30')],'resourceId':_0x21ee4a['id'],'type':_0x1ff2cf[_0x126a('0x30')],'sectionId':_0x1ff2cf['id']},{})['then'](function(){return _0x5e9d8d;});}else{return _0x5e9d8d;}})[_0x126a('0x43')](function(_0x526dd6){logger[_0x126a('0x51')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x526dd6);throw _0x526dd6;});}return _0x5e9d8d;})[_0x126a('0x21')](respondWithResult(_0x5e8f00,0xc9))[_0x126a('0x43')](handleError(_0x5e8f00,null));};exports['update']=function(_0x5a201a,_0x242806){if(_0x5a201a[_0x126a('0x4a')]['id']){delete _0x5a201a['body']['id'];}return db['AnalyticExtractedReport'][_0x126a('0x48')]({'where':{'id':_0x5a201a['params']['id']}})['then'](handleEntityNotFound(_0x242806,null))[_0x126a('0x21')](saveUpdates(_0x5a201a[_0x126a('0x4a')],null))['then'](respondWithResult(_0x242806,null))[_0x126a('0x43')](handleError(_0x242806,null));};exports[_0x126a('0x22')]=function(_0x45cd67,_0x421ff6){return db[_0x126a('0x2a')][_0x126a('0x48')]({'where':{'id':_0x45cd67[_0x126a('0x45')]['id']}})[_0x126a('0x21')](handleEntityNotFound(_0x421ff6,null))[_0x126a('0x21')](removeEntity(_0x421ff6,null))[_0x126a('0x43')](handleError(_0x421ff6,null));};exports[_0x126a('0x52')]=function(_0x1e78b7,_0x1067b1,_0x4a1eb8){return db['AnalyticExtractedReport']['find']({'where':{'id':_0x1e78b7[_0x126a('0x45')]['id']},'attributes':[_0x126a('0x30'),_0x126a('0x53'),_0x126a('0x54'),'output'],'raw':!![]})[_0x126a('0x21')](handleEntityNotFound(_0x1067b1,null))[_0x126a('0x21')](function(_0x4fef67){if(_0x4fef67){if(!fs[_0x126a('0x55')](path[_0x126a('0x56')](config['root'],'server/files/reports',_0x4fef67[_0x126a('0x54')]))){throw new db['Sequelize'][(_0x126a('0x57'))](_0x126a('0x58'));}if(_0x1e78b7[_0x126a('0x31')][_0x126a('0x59')]){return _0x1067b1[_0x126a('0x17')](0xc8);}return _0x1067b1[_0x126a('0x52')](path[_0x126a('0x56')](config[_0x126a('0x5a')],_0x126a('0x5b'),_0x4fef67[_0x126a('0x54')]),util[_0x126a('0x5c')]('%s.%s',_0x4fef67[_0x126a('0x53')]||_0x4fef67[_0x126a('0x30')],_0x4fef67[_0x126a('0x5d')][_0x126a('0x5e')]()));}})['catch'](handleError(_0x1067b1,null));};