c0a88223a5197bf6680a57bfdad84bd4373c757a
[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 _0xbe6b=['mustache','util','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','get','ExtractedReports','UserProfileResource','error','name','send','index','AnalyticExtractedReport','type','key','model','query','intersection','fields','attributes','length','limit','order','sort','where','filters','pick','filter','merge','map','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','keys','rawAttributes','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','download','basename','savename','existsSync','join','root','server/files/reports','Sequelize','Report\x20not\x20found\x20or\x20empty','exists','format','%s.%s','output','toLowerCase','rimraf','zip-dir','fast-json-patch','request-promise','bluebird'];(function(_0x2d7ff9,_0x57c025){var _0x3d7f85=function(_0x934aab){while(--_0x934aab){_0x2d7ff9['push'](_0x2d7ff9['shift']());}};_0x3d7f85(++_0x57c025);}(_0xbe6b,0x124));var _0xbbe6=function(_0x54f945,_0xdf3da8){_0x54f945=_0x54f945-0x0;var _0xe011ca=_0xbe6b[_0x54f945];return _0xe011ca;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xbbe6('0x0'));var zipdir=require(_0xbbe6('0x1'));var jsonpatch=require(_0xbbe6('0x2'));var rp=require(_0xbbe6('0x3'));var moment=require('moment');var BPromise=require(_0xbbe6('0x4'));var Mustache=require(_0xbbe6('0x5'));var util=require(_0xbbe6('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xbbe6('0x7'));var ejs=require(_0xbbe6('0x8'));var fs=require('fs');var fs_extra=require(_0xbbe6('0x9'));var _=require('lodash');var squel=require(_0xbbe6('0xa'));var crypto=require(_0xbbe6('0xb'));var jsforce=require(_0xbbe6('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xbbe6('0x7'));var querystring=require(_0xbbe6('0xd'));var Papa=require('papaparse');var Redis=require(_0xbbe6('0xe'));var authService=require(_0xbbe6('0xf'));var qs=require(_0xbbe6('0x10'));var as=require(_0xbbe6('0x11'));var hardwareService=require(_0xbbe6('0x12'));var logger=require(_0xbbe6('0x13'))(_0xbbe6('0x14'));var utils=require(_0xbbe6('0x15'));var config=require(_0xbbe6('0x16'));var licenseUtil=require(_0xbbe6('0x17'));var db=require(_0xbbe6('0x18'))['db'];function respondWithStatusCode(_0x51aa86,_0x52016d){_0x52016d=_0x52016d||0xcc;return function(_0x1ccf00){if(_0x1ccf00){return _0x51aa86[_0xbbe6('0x19')](_0x52016d);}return _0x51aa86[_0xbbe6('0x1a')](_0x52016d)[_0xbbe6('0x1b')]();};}function respondWithResult(_0x33b8f8,_0x4deff9){_0x4deff9=_0x4deff9||0xc8;return function(_0x4db2f3){if(_0x4db2f3){return _0x33b8f8[_0xbbe6('0x1a')](_0x4deff9)[_0xbbe6('0x1c')](_0x4db2f3);}};}function respondWithFilteredResult(_0x20c24c,_0x5ede0e){return function(_0x1f0f25){if(_0x1f0f25){var _0x1ffd3d=typeof _0x5ede0e[_0xbbe6('0x1d')]===_0xbbe6('0x1e')&&typeof _0x5ede0e['limit']==='undefined';var _0x2293b8=_0x1f0f25[_0xbbe6('0x1f')];var _0x40fe17=_0x1ffd3d?0x0:_0x5ede0e[_0xbbe6('0x1d')];var _0x505d12=_0x1ffd3d?_0x1f0f25[_0xbbe6('0x1f')]:_0x5ede0e[_0xbbe6('0x1d')]+_0x5ede0e['limit'];var _0x1e6de7;if(_0x505d12>=_0x2293b8){_0x505d12=_0x2293b8;_0x1e6de7=0xc8;}else{_0x1e6de7=0xce;}_0x20c24c['status'](_0x1e6de7);return _0x20c24c[_0xbbe6('0x20')](_0xbbe6('0x21'),_0x40fe17+'-'+_0x505d12+'/'+_0x2293b8)['json'](_0x1f0f25);}return null;};}function patchUpdates(_0x17f56c){return function(_0x465896){try{jsonpatch[_0xbbe6('0x22')](_0x465896,_0x17f56c,!![]);}catch(_0x361e68){return BPromise[_0xbbe6('0x23')](_0x361e68);}return _0x465896[_0xbbe6('0x24')]();};}function saveUpdates(_0x235e7d,_0x111a5c){return function(_0x3e2f33){if(_0x3e2f33){return _0x3e2f33[_0xbbe6('0x25')](_0x235e7d)[_0xbbe6('0x26')](function(_0x251a08){return _0x251a08;});}return null;};}function removeEntity(_0x43dfa4,_0x865bfa){return function(_0x109de8){if(_0x109de8){return _0x109de8[_0xbbe6('0x27')]()[_0xbbe6('0x26')](function(){var _0x366b0b=_0x109de8[_0xbbe6('0x28')]({'plain':!![]});var _0x1e5076=_0xbbe6('0x29');return db[_0xbbe6('0x2a')][_0xbbe6('0x27')]({'where':{'type':_0x1e5076,'resourceId':_0x366b0b['id']}})['then'](function(){return _0x109de8;});})[_0xbbe6('0x26')](function(){_0x43dfa4['status'](0xcc)[_0xbbe6('0x1b')]();});}};}function handleEntityNotFound(_0x304f5e,_0xd570cc){return function(_0xb1fe11){if(!_0xb1fe11){_0x304f5e['sendStatus'](0x194);}return _0xb1fe11;};}function handleError(_0x2292a1,_0x4c6bfa){_0x4c6bfa=_0x4c6bfa||0x1f4;return function(_0x392450){logger[_0xbbe6('0x2b')](_0x392450['stack']);if(_0x392450[_0xbbe6('0x2c')]){delete _0x392450['name'];}_0x2292a1[_0xbbe6('0x1a')](_0x4c6bfa)[_0xbbe6('0x2d')](_0x392450);};}exports[_0xbbe6('0x2e')]=function(_0x11d595,_0x276ac6){var _0x20ab1b={},_0x5d19a1={},_0x43b5d6={'count':0x0,'rows':[]};var _0x5f3916=_['map'](db[_0xbbe6('0x2f')]['rawAttributes'],function(_0x516328){return{'name':_0x516328['fieldName'],'type':_0x516328[_0xbbe6('0x30')][_0xbbe6('0x31')]};});_0x5d19a1[_0xbbe6('0x32')]=_['map'](_0x5f3916,_0xbbe6('0x2c'));_0x5d19a1[_0xbbe6('0x33')]=_['keys'](_0x11d595[_0xbbe6('0x33')]);_0x5d19a1['filters']=_[_0xbbe6('0x34')](_0x5d19a1[_0xbbe6('0x32')],_0x5d19a1['query']);_0x20ab1b['attributes']=_[_0xbbe6('0x34')](_0x5d19a1[_0xbbe6('0x32')],qs[_0xbbe6('0x35')](_0x11d595[_0xbbe6('0x33')][_0xbbe6('0x35')]));_0x20ab1b[_0xbbe6('0x36')]=_0x20ab1b[_0xbbe6('0x36')][_0xbbe6('0x37')]?_0x20ab1b[_0xbbe6('0x36')]:_0x5d19a1[_0xbbe6('0x32')];if(!_0x11d595[_0xbbe6('0x33')]['hasOwnProperty']('nolimit')){_0x20ab1b[_0xbbe6('0x38')]=qs[_0xbbe6('0x38')](_0x11d595['query']['limit']);_0x20ab1b[_0xbbe6('0x1d')]=qs[_0xbbe6('0x1d')](_0x11d595[_0xbbe6('0x33')][_0xbbe6('0x1d')]);}_0x20ab1b[_0xbbe6('0x39')]=qs[_0xbbe6('0x3a')](_0x11d595['query'][_0xbbe6('0x3a')]);_0x20ab1b[_0xbbe6('0x3b')]=qs[_0xbbe6('0x3c')](_[_0xbbe6('0x3d')](_0x11d595[_0xbbe6('0x33')],_0x5d19a1[_0xbbe6('0x3c')]),_0x5f3916);if(_0x11d595[_0xbbe6('0x33')][_0xbbe6('0x3e')]){_0x20ab1b['where']=_[_0xbbe6('0x3f')](_0x20ab1b['where'],{'$or':_[_0xbbe6('0x40')](_0x5f3916,function(_0x2c021a){if(_0x2c021a['type']!==_0xbbe6('0x41')){var _0x4008e3={};_0x4008e3[_0x2c021a[_0xbbe6('0x2c')]]={'$like':'%'+_0x11d595['query']['filter']+'%'};return _0x4008e3;}})});}_0x20ab1b=_[_0xbbe6('0x3f')]({},_0x20ab1b,_0x11d595['options']);var _0x130387={'where':_0x20ab1b[_0xbbe6('0x3b')]};return db[_0xbbe6('0x2f')]['count'](_0x130387)[_0xbbe6('0x26')](function(_0x51eaef){_0x43b5d6[_0xbbe6('0x1f')]=_0x51eaef;if(_0x11d595[_0xbbe6('0x33')][_0xbbe6('0x42')]){_0x20ab1b[_0xbbe6('0x43')]=[{'all':!![]}];}return db['AnalyticExtractedReport'][_0xbbe6('0x44')](_0x20ab1b);})[_0xbbe6('0x26')](function(_0x304df3){_0x43b5d6[_0xbbe6('0x45')]=_0x304df3;return _0x43b5d6;})[_0xbbe6('0x26')](respondWithFilteredResult(_0x276ac6,_0x20ab1b))[_0xbbe6('0x46')](handleError(_0x276ac6,null));};exports[_0xbbe6('0x47')]=function(_0x3dffd2,_0x280b0f){var _0x2599f3={'raw':!![],'where':{'id':_0x3dffd2[_0xbbe6('0x48')]['id']}},_0x331b51={};_0x331b51[_0xbbe6('0x32')]=_[_0xbbe6('0x49')](db[_0xbbe6('0x2f')][_0xbbe6('0x4a')]);_0x331b51[_0xbbe6('0x33')]=_[_0xbbe6('0x49')](_0x3dffd2[_0xbbe6('0x33')]);_0x331b51[_0xbbe6('0x3c')]=_[_0xbbe6('0x34')](_0x331b51[_0xbbe6('0x32')],_0x331b51[_0xbbe6('0x33')]);_0x2599f3['attributes']=_[_0xbbe6('0x34')](_0x331b51['model'],qs['fields'](_0x3dffd2['query'][_0xbbe6('0x35')]));_0x2599f3['attributes']=_0x2599f3['attributes']['length']?_0x2599f3['attributes']:_0x331b51[_0xbbe6('0x32')];if(_0x3dffd2[_0xbbe6('0x33')][_0xbbe6('0x42')]){_0x2599f3['include']=[{'all':!![]}];}_0x2599f3=_['merge']({},_0x2599f3,_0x3dffd2[_0xbbe6('0x4b')]);return db[_0xbbe6('0x2f')]['find'](_0x2599f3)[_0xbbe6('0x26')](handleEntityNotFound(_0x280b0f,null))[_0xbbe6('0x26')](respondWithResult(_0x280b0f,null))[_0xbbe6('0x46')](handleError(_0x280b0f,null));};exports[_0xbbe6('0x4c')]=function(_0x493f80,_0x32c980){return db['AnalyticExtractedReport']['create'](_0x493f80[_0xbbe6('0x4d')],{})[_0xbbe6('0x26')](function(_0x4f9634){var _0x28d3aa=_0x493f80[_0xbbe6('0x4e')][_0xbbe6('0x28')]({'plain':!![]});if(!_0x28d3aa)throw new Error(_0xbbe6('0x4f'));if(_0x28d3aa[_0xbbe6('0x50')]===_0xbbe6('0x4e')){var _0x45daad=_0x4f9634[_0xbbe6('0x28')]({'plain':!![]});var _0x1bcb29=_0xbbe6('0x29');return db[_0xbbe6('0x51')]['find']({'where':{'name':_0x1bcb29,'userProfileId':_0x28d3aa[_0xbbe6('0x52')]},'raw':!![]})[_0xbbe6('0x26')](function(_0x1a5b15){if(_0x1a5b15&&_0x1a5b15['autoAssociation']===0x0){return db[_0xbbe6('0x2a')][_0xbbe6('0x4c')]({'name':_0x45daad['name'],'resourceId':_0x45daad['id'],'type':_0x1a5b15[_0xbbe6('0x2c')],'sectionId':_0x1a5b15['id']},{})[_0xbbe6('0x26')](function(){return _0x4f9634;});}else{return _0x4f9634;}})[_0xbbe6('0x46')](function(_0xdd1465){logger[_0xbbe6('0x2b')](_0xbbe6('0x53'),_0xdd1465);throw _0xdd1465;});}return _0x4f9634;})[_0xbbe6('0x26')](respondWithResult(_0x32c980,0xc9))[_0xbbe6('0x46')](handleError(_0x32c980,null));};exports['update']=function(_0x1baf70,_0x4cdddd){if(_0x1baf70[_0xbbe6('0x4d')]['id']){delete _0x1baf70['body']['id'];}return db[_0xbbe6('0x2f')]['find']({'where':{'id':_0x1baf70[_0xbbe6('0x48')]['id']}})[_0xbbe6('0x26')](handleEntityNotFound(_0x4cdddd,null))[_0xbbe6('0x26')](saveUpdates(_0x1baf70[_0xbbe6('0x4d')],null))['then'](respondWithResult(_0x4cdddd,null))[_0xbbe6('0x46')](handleError(_0x4cdddd,null));};exports[_0xbbe6('0x27')]=function(_0x46f165,_0x3afb09){return db[_0xbbe6('0x2f')][_0xbbe6('0x54')]({'where':{'id':_0x46f165[_0xbbe6('0x48')]['id']}})[_0xbbe6('0x26')](handleEntityNotFound(_0x3afb09,null))[_0xbbe6('0x26')](removeEntity(_0x3afb09,null))[_0xbbe6('0x46')](handleError(_0x3afb09,null));};exports[_0xbbe6('0x55')]=function(_0x43717e,_0x528ca4,_0x3a18ee){return db[_0xbbe6('0x2f')]['find']({'where':{'id':_0x43717e[_0xbbe6('0x48')]['id']},'attributes':[_0xbbe6('0x2c'),_0xbbe6('0x56'),_0xbbe6('0x57'),'output'],'raw':!![]})[_0xbbe6('0x26')](handleEntityNotFound(_0x528ca4,null))[_0xbbe6('0x26')](function(_0xbce471){if(_0xbce471){if(!fs[_0xbbe6('0x58')](path[_0xbbe6('0x59')](config[_0xbbe6('0x5a')],_0xbbe6('0x5b'),_0xbce471[_0xbbe6('0x57')]))){throw new db[(_0xbbe6('0x5c'))]['ValidationError'](_0xbbe6('0x5d'));}if(_0x43717e['query'][_0xbbe6('0x5e')]){return _0x528ca4[_0xbbe6('0x19')](0xc8);}return _0x528ca4[_0xbbe6('0x55')](path[_0xbbe6('0x59')](config['root'],'server/files/reports',_0xbce471[_0xbbe6('0x57')]),util[_0xbbe6('0x5f')](_0xbbe6('0x60'),_0xbce471[_0xbbe6('0x56')]||_0xbce471[_0xbbe6('0x2c')],_0xbce471[_0xbbe6('0x61')][_0xbbe6('0x62')]()));}})['catch'](handleError(_0x528ca4,null));};