0a492908bcbfd6f173a7ac52feb6272f671d3b07
[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 _0x4a9b=['includeAll','include','findAll','params','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','name','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','download','basename','savename','output','existsSync','join','server/files/reports','Sequelize','ValidationError','exists','root','format','%s.%s','toLowerCase','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','status','offset','limit','set','Content-Range','json','apply','update','then','get','end','sendStatus','stack','send','map','rawAttributes','type','key','query','keys','intersection','model','fields','attributes','length','nolimit','order','sort','where','filters','merge','VIRTUAL','filter','options','AnalyticExtractedReport','count'];(function(_0x3c1981,_0xf6016c){var _0x199617=function(_0x46eca2){while(--_0x46eca2){_0x3c1981['push'](_0x3c1981['shift']());}};_0x199617(++_0xf6016c);}(_0x4a9b,0x137));var _0xb4a9=function(_0x37a042,_0x2c307a){_0x37a042=_0x37a042-0x0;var _0x19a727=_0x4a9b[_0x37a042];return _0x19a727;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xb4a9('0x0'));var rimraf=require(_0xb4a9('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb4a9('0x2'));var rp=require(_0xb4a9('0x3'));var moment=require('moment');var BPromise=require(_0xb4a9('0x4'));var Mustache=require(_0xb4a9('0x5'));var util=require(_0xb4a9('0x6'));var path=require(_0xb4a9('0x7'));var sox=require(_0xb4a9('0x8'));var csv=require(_0xb4a9('0x9'));var ejs=require(_0xb4a9('0xa'));var fs=require('fs');var _=require(_0xb4a9('0xb'));var squel=require(_0xb4a9('0xc'));var crypto=require(_0xb4a9('0xd'));var jsforce=require(_0xb4a9('0xe'));var deskjs=require(_0xb4a9('0xf'));var toCsv=require(_0xb4a9('0x9'));var querystring=require(_0xb4a9('0x10'));var Papa=require('papaparse');var Redis=require(_0xb4a9('0x11'));var authService=require(_0xb4a9('0x12'));var qs=require(_0xb4a9('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb4a9('0x14'));var logger=require(_0xb4a9('0x15'))('api');var utils=require(_0xb4a9('0x16'));var config=require(_0xb4a9('0x17'));var db=require(_0xb4a9('0x18'))['db'];function respondWithStatusCode(_0x3d1739,_0x5aceba){_0x5aceba=_0x5aceba||0xcc;return function(_0x50d066){if(_0x50d066){return _0x3d1739['sendStatus'](_0x5aceba);}return _0x3d1739['status'](_0x5aceba)['end']();};}function respondWithResult(_0x3eade2,_0x4ab95a){_0x4ab95a=_0x4ab95a||0xc8;return function(_0xd8d9a0){if(_0xd8d9a0){return _0x3eade2[_0xb4a9('0x19')](_0x4ab95a)['json'](_0xd8d9a0);}};}function respondWithFilteredResult(_0x10c4d5,_0x575355){return function(_0x1a0d62){if(_0x1a0d62){var _0x161041=_0x1a0d62['count'],_0x24cddc=_0x575355[_0xb4a9('0x1a')],_0x315b4d=_0x575355[_0xb4a9('0x1a')]+_0x575355[_0xb4a9('0x1b')],_0x57be41;if(_0x315b4d>=_0x161041){_0x315b4d=_0x161041;_0x57be41=0xc8;}else{_0x57be41=0xce;}_0x10c4d5[_0xb4a9('0x19')](_0x57be41);return _0x10c4d5[_0xb4a9('0x1c')](_0xb4a9('0x1d'),_0x24cddc+'-'+_0x315b4d+'/'+_0x161041)[_0xb4a9('0x1e')](_0x1a0d62);}return null;};}function patchUpdates(_0x5c1749){return function(_0x267be4){try{jsonpatch[_0xb4a9('0x1f')](_0x267be4,_0x5c1749,!![]);}catch(_0x557d61){return BPromise['reject'](_0x557d61);}return _0x267be4['save']();};}function saveUpdates(_0x455ea0,_0x36f66b){return function(_0x528a06){if(_0x528a06){return _0x528a06[_0xb4a9('0x20')](_0x455ea0)[_0xb4a9('0x21')](function(_0x479a66){return _0x479a66;});}return null;};}function removeEntity(_0x3686a6,_0x2c13c7){return function(_0x49b87f){if(_0x49b87f){return _0x49b87f['destroy']()[_0xb4a9('0x21')](function(){var _0x312c7a=_0x49b87f[_0xb4a9('0x22')]({'plain':!![]});var _0x3284bc='ExtractedReports';return db['UserProfileResource']['destroy']({'where':{'type':_0x3284bc,'resourceId':_0x312c7a['id']}})[_0xb4a9('0x21')](function(){return _0x49b87f;});})[_0xb4a9('0x21')](function(){_0x3686a6[_0xb4a9('0x19')](0xcc)[_0xb4a9('0x23')]();});}};}function handleEntityNotFound(_0x1a1dcf,_0x34b15b){return function(_0x460f5f){if(!_0x460f5f){_0x1a1dcf[_0xb4a9('0x24')](0x194);}return _0x460f5f;};}function handleError(_0x521e00,_0xd016e2){_0xd016e2=_0xd016e2||0x1f4;return function(_0x23e2b4){logger['error'](_0x23e2b4[_0xb4a9('0x25')]);if(_0x23e2b4['name']){delete _0x23e2b4['name'];}_0x521e00[_0xb4a9('0x19')](_0xd016e2)[_0xb4a9('0x26')](_0x23e2b4);};}exports['index']=function(_0x4a1b6c,_0x2f7403){var _0x246e99={},_0x5812e2={},_0x1673a1={'count':0x0,'rows':[]};var _0x345deb=_[_0xb4a9('0x27')](db['AnalyticExtractedReport'][_0xb4a9('0x28')],function(_0x15543d){return{'name':_0x15543d['fieldName'],'type':_0x15543d[_0xb4a9('0x29')][_0xb4a9('0x2a')]};});_0x5812e2['model']=_[_0xb4a9('0x27')](_0x345deb,'name');_0x5812e2[_0xb4a9('0x2b')]=_[_0xb4a9('0x2c')](_0x4a1b6c['query']);_0x5812e2['filters']=_[_0xb4a9('0x2d')](_0x5812e2[_0xb4a9('0x2e')],_0x5812e2['query']);_0x246e99['attributes']=_[_0xb4a9('0x2d')](_0x5812e2[_0xb4a9('0x2e')],qs[_0xb4a9('0x2f')](_0x4a1b6c['query'][_0xb4a9('0x2f')]));_0x246e99[_0xb4a9('0x30')]=_0x246e99[_0xb4a9('0x30')][_0xb4a9('0x31')]?_0x246e99[_0xb4a9('0x30')]:_0x5812e2[_0xb4a9('0x2e')];if(!_0x4a1b6c[_0xb4a9('0x2b')]['hasOwnProperty'](_0xb4a9('0x32'))){_0x246e99[_0xb4a9('0x1b')]=qs[_0xb4a9('0x1b')](_0x4a1b6c['query'][_0xb4a9('0x1b')]);_0x246e99[_0xb4a9('0x1a')]=qs[_0xb4a9('0x1a')](_0x4a1b6c[_0xb4a9('0x2b')][_0xb4a9('0x1a')]);}_0x246e99[_0xb4a9('0x33')]=qs[_0xb4a9('0x34')](_0x4a1b6c[_0xb4a9('0x2b')][_0xb4a9('0x34')]);_0x246e99[_0xb4a9('0x35')]=qs['filters'](_['pick'](_0x4a1b6c[_0xb4a9('0x2b')],_0x5812e2[_0xb4a9('0x36')]),_0x345deb);if(_0x4a1b6c[_0xb4a9('0x2b')]['filter']){_0x246e99[_0xb4a9('0x35')]=_[_0xb4a9('0x37')](_0x246e99[_0xb4a9('0x35')],{'$or':_[_0xb4a9('0x27')](_0x345deb,function(_0x3a75c8){if(_0x3a75c8[_0xb4a9('0x29')]!==_0xb4a9('0x38')){var _0x1e76fc={};_0x1e76fc[_0x3a75c8['name']]={'$like':'%'+_0x4a1b6c[_0xb4a9('0x2b')][_0xb4a9('0x39')]+'%'};return _0x1e76fc;}})});}_0x246e99=_['merge']({},_0x246e99,_0x4a1b6c[_0xb4a9('0x3a')]);var _0x249897={'where':_0x246e99[_0xb4a9('0x35')]};return db[_0xb4a9('0x3b')]['count'](_0x249897)[_0xb4a9('0x21')](function(_0x2d7f7e){_0x1673a1[_0xb4a9('0x3c')]=_0x2d7f7e;if(_0x4a1b6c[_0xb4a9('0x2b')][_0xb4a9('0x3d')]){_0x246e99[_0xb4a9('0x3e')]=[{'all':!![]}];}return db[_0xb4a9('0x3b')][_0xb4a9('0x3f')](_0x246e99);})[_0xb4a9('0x21')](function(_0xebac1a){_0x1673a1['rows']=_0xebac1a;return _0x1673a1;})['then'](respondWithFilteredResult(_0x2f7403,_0x246e99))['catch'](handleError(_0x2f7403,null));};exports['show']=function(_0x56ff7b,_0x40d8a5){var _0x2752c4={'raw':!![],'where':{'id':_0x56ff7b[_0xb4a9('0x40')]['id']}},_0x31354a={};_0x31354a[_0xb4a9('0x2e')]=_[_0xb4a9('0x2c')](db[_0xb4a9('0x3b')][_0xb4a9('0x28')]);_0x31354a[_0xb4a9('0x2b')]=_[_0xb4a9('0x2c')](_0x56ff7b[_0xb4a9('0x2b')]);_0x31354a[_0xb4a9('0x36')]=_[_0xb4a9('0x2d')](_0x31354a[_0xb4a9('0x2e')],_0x31354a[_0xb4a9('0x2b')]);_0x2752c4[_0xb4a9('0x30')]=_[_0xb4a9('0x2d')](_0x31354a[_0xb4a9('0x2e')],qs[_0xb4a9('0x2f')](_0x56ff7b[_0xb4a9('0x2b')][_0xb4a9('0x2f')]));_0x2752c4[_0xb4a9('0x30')]=_0x2752c4[_0xb4a9('0x30')][_0xb4a9('0x31')]?_0x2752c4[_0xb4a9('0x30')]:_0x31354a[_0xb4a9('0x2e')];if(_0x56ff7b[_0xb4a9('0x2b')][_0xb4a9('0x3d')]){_0x2752c4[_0xb4a9('0x3e')]=[{'all':!![]}];}_0x2752c4=_['merge']({},_0x2752c4,_0x56ff7b['options']);return db['AnalyticExtractedReport'][_0xb4a9('0x41')](_0x2752c4)[_0xb4a9('0x21')](handleEntityNotFound(_0x40d8a5,null))[_0xb4a9('0x21')](respondWithResult(_0x40d8a5,null))[_0xb4a9('0x42')](handleError(_0x40d8a5,null));};exports['create']=function(_0x55aae9,_0x1d69fb){return db[_0xb4a9('0x3b')][_0xb4a9('0x43')](_0x55aae9[_0xb4a9('0x44')],{})[_0xb4a9('0x21')](function(_0x857f7e){var _0x33dab5=_0x55aae9[_0xb4a9('0x45')][_0xb4a9('0x22')]({'plain':!![]});if(!_0x33dab5)throw new Error(_0xb4a9('0x46'));if(_0x33dab5['role']===_0xb4a9('0x45')){var _0x65d8ed=_0x857f7e['get']({'plain':!![]});var _0x1c3dc7='ExtractedReports';return db[_0xb4a9('0x47')][_0xb4a9('0x41')]({'where':{'name':_0x1c3dc7,'userProfileId':_0x33dab5[_0xb4a9('0x48')]},'raw':!![]})[_0xb4a9('0x21')](function(_0x1699bd){if(_0x1699bd&&_0x1699bd[_0xb4a9('0x49')]===0x0){return db[_0xb4a9('0x4a')][_0xb4a9('0x43')]({'name':_0x65d8ed['name'],'resourceId':_0x65d8ed['id'],'type':_0x1699bd[_0xb4a9('0x4b')],'sectionId':_0x1699bd['id']},{})[_0xb4a9('0x21')](function(){return _0x857f7e;});}else{return _0x857f7e;}})[_0xb4a9('0x42')](function(_0x543144){logger[_0xb4a9('0x4c')](_0xb4a9('0x4d'),_0x543144);throw _0x543144;});}return _0x857f7e;})['then'](respondWithResult(_0x1d69fb,0xc9))[_0xb4a9('0x42')](handleError(_0x1d69fb,null));};exports[_0xb4a9('0x20')]=function(_0x1a6cdf,_0x142772){if(_0x1a6cdf[_0xb4a9('0x44')]['id']){delete _0x1a6cdf[_0xb4a9('0x44')]['id'];}return db[_0xb4a9('0x3b')]['find']({'where':{'id':_0x1a6cdf['params']['id']}})[_0xb4a9('0x21')](handleEntityNotFound(_0x142772,null))['then'](saveUpdates(_0x1a6cdf[_0xb4a9('0x44')],null))['then'](respondWithResult(_0x142772,null))[_0xb4a9('0x42')](handleError(_0x142772,null));};exports[_0xb4a9('0x4e')]=function(_0x131e4d,_0x2722a6){return db[_0xb4a9('0x3b')][_0xb4a9('0x41')]({'where':{'id':_0x131e4d[_0xb4a9('0x40')]['id']}})[_0xb4a9('0x21')](handleEntityNotFound(_0x2722a6,null))[_0xb4a9('0x21')](removeEntity(_0x2722a6,null))['catch'](handleError(_0x2722a6,null));};exports[_0xb4a9('0x4f')]=function(_0x29057e,_0xf5f30,_0x2110c1){return db[_0xb4a9('0x3b')]['find']({'where':{'id':_0x29057e[_0xb4a9('0x40')]['id']},'attributes':['name',_0xb4a9('0x50'),_0xb4a9('0x51'),_0xb4a9('0x52')],'raw':!![]})[_0xb4a9('0x21')](handleEntityNotFound(_0xf5f30,null))[_0xb4a9('0x21')](function(_0x1ca007){if(_0x1ca007){if(!fs[_0xb4a9('0x53')](path[_0xb4a9('0x54')](config['root'],_0xb4a9('0x55'),_0x1ca007[_0xb4a9('0x51')]))){throw new db[(_0xb4a9('0x56'))][(_0xb4a9('0x57'))]('Report\x20not\x20found\x20or\x20empty');}if(_0x29057e[_0xb4a9('0x2b')][_0xb4a9('0x58')]){return _0xf5f30['sendStatus'](0xc8);}return _0xf5f30[_0xb4a9('0x4f')](path[_0xb4a9('0x54')](config[_0xb4a9('0x59')],_0xb4a9('0x55'),_0x1ca007[_0xb4a9('0x51')]),util[_0xb4a9('0x5a')](_0xb4a9('0x5b'),_0x1ca007[_0xb4a9('0x50')]||_0x1ca007['name'],_0x1ca007['output'][_0xb4a9('0x5c')]()));}})[_0xb4a9('0x42')](handleError(_0xf5f30,null));};