0f1f2ecb61c751bcb06f06a9315e5bc613b7ddb4
[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 _0xcff6=['map','AnalyticExtractedReport','rawAttributes','type','key','query','keys','intersection','attributes','model','fields','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','count','includeAll','rows','show','params','length','find','catch','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','create','update','download','existsSync','join','root','server/files/reports','Sequelize','Report\x20not\x20found\x20or\x20empty','exists','format','%s.%s','basename','output','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','to-csv','ejs','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','offset','limit','status','set','Content-Range','json','apply','save','then','destroy','get','UserProfileResource','sendStatus','error','stack','name','send'];(function(_0xc74fbf,_0x59a3e6){var _0x2840cb=function(_0x2ba976){while(--_0x2ba976){_0xc74fbf['push'](_0xc74fbf['shift']());}};_0x2840cb(++_0x59a3e6);}(_0xcff6,0x1f3));var _0x6cff=function(_0xa3bdc7,_0x3c409a){_0xa3bdc7=_0xa3bdc7-0x0;var _0x27adfb=_0xcff6[_0xa3bdc7];return _0x27adfb;};'use strict';var pdf=require(_0x6cff('0x0'));var emlformat=require(_0x6cff('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x6cff('0x2'));var jsonpatch=require(_0x6cff('0x3'));var rp=require(_0x6cff('0x4'));var moment=require(_0x6cff('0x5'));var BPromise=require(_0x6cff('0x6'));var Mustache=require('mustache');var util=require(_0x6cff('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x6cff('0x8'));var ejs=require(_0x6cff('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x6cff('0xa'));var crypto=require('crypto');var jsforce=require(_0x6cff('0xb'));var deskjs=require(_0x6cff('0xc'));var toCsv=require(_0x6cff('0x8'));var querystring=require('querystring');var Papa=require(_0x6cff('0xd'));var Redis=require(_0x6cff('0xe'));var authService=require(_0x6cff('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x6cff('0x10'));var hardwareService=require(_0x6cff('0x11'));var logger=require(_0x6cff('0x12'))('api');var utils=require(_0x6cff('0x13'));var config=require(_0x6cff('0x14'));var licenseUtil=require(_0x6cff('0x15'));var db=require(_0x6cff('0x16'))['db'];function respondWithStatusCode(_0x9101ab,_0x4ba5ef){_0x4ba5ef=_0x4ba5ef||0xcc;return function(_0x3be06d){if(_0x3be06d){return _0x9101ab['sendStatus'](_0x4ba5ef);}return _0x9101ab['status'](_0x4ba5ef)[_0x6cff('0x17')]();};}function respondWithResult(_0x5a5cc9,_0x4b3b7a){_0x4b3b7a=_0x4b3b7a||0xc8;return function(_0x5e0ac3){if(_0x5e0ac3){return _0x5a5cc9['status'](_0x4b3b7a)['json'](_0x5e0ac3);}};}function respondWithFilteredResult(_0xa90ad3,_0x593120){return function(_0x351bd2){if(_0x351bd2){var _0x282e6c=_0x351bd2['count'],_0x466019=_0x593120[_0x6cff('0x18')],_0x536b8f=_0x593120[_0x6cff('0x18')]+_0x593120[_0x6cff('0x19')],_0x479c49;if(_0x536b8f>=_0x282e6c){_0x536b8f=_0x282e6c;_0x479c49=0xc8;}else{_0x479c49=0xce;}_0xa90ad3[_0x6cff('0x1a')](_0x479c49);return _0xa90ad3[_0x6cff('0x1b')](_0x6cff('0x1c'),_0x466019+'-'+_0x536b8f+'/'+_0x282e6c)[_0x6cff('0x1d')](_0x351bd2);}return null;};}function patchUpdates(_0x22ce18){return function(_0x30e004){try{jsonpatch[_0x6cff('0x1e')](_0x30e004,_0x22ce18,!![]);}catch(_0x1199da){return BPromise['reject'](_0x1199da);}return _0x30e004[_0x6cff('0x1f')]();};}function saveUpdates(_0x6648a9,_0x1ad003){return function(_0x242177){if(_0x242177){return _0x242177['update'](_0x6648a9)[_0x6cff('0x20')](function(_0x4e21c0){return _0x4e21c0;});}return null;};}function removeEntity(_0x11fd85,_0x5ce9ef){return function(_0x672702){if(_0x672702){return _0x672702[_0x6cff('0x21')]()['then'](function(){var _0x3d73ad=_0x672702[_0x6cff('0x22')]({'plain':!![]});var _0x232de6='ExtractedReports';return db[_0x6cff('0x23')][_0x6cff('0x21')]({'where':{'type':_0x232de6,'resourceId':_0x3d73ad['id']}})[_0x6cff('0x20')](function(){return _0x672702;});})[_0x6cff('0x20')](function(){_0x11fd85[_0x6cff('0x1a')](0xcc)[_0x6cff('0x17')]();});}};}function handleEntityNotFound(_0x5d50a9,_0x36a212){return function(_0x7a9b54){if(!_0x7a9b54){_0x5d50a9[_0x6cff('0x24')](0x194);}return _0x7a9b54;};}function handleError(_0x2b9a1a,_0x16ddd0){_0x16ddd0=_0x16ddd0||0x1f4;return function(_0x4845f9){logger[_0x6cff('0x25')](_0x4845f9[_0x6cff('0x26')]);if(_0x4845f9['name']){delete _0x4845f9[_0x6cff('0x27')];}_0x2b9a1a[_0x6cff('0x1a')](_0x16ddd0)[_0x6cff('0x28')](_0x4845f9);};}exports['index']=function(_0x1e3600,_0xcf8dab){var _0x36ee90={},_0x2fc0d4={},_0x1d4701={'count':0x0,'rows':[]};var _0x5d355f=_[_0x6cff('0x29')](db[_0x6cff('0x2a')][_0x6cff('0x2b')],function(_0x212f9a){return{'name':_0x212f9a['fieldName'],'type':_0x212f9a[_0x6cff('0x2c')][_0x6cff('0x2d')]};});_0x2fc0d4['model']=_[_0x6cff('0x29')](_0x5d355f,'name');_0x2fc0d4[_0x6cff('0x2e')]=_[_0x6cff('0x2f')](_0x1e3600[_0x6cff('0x2e')]);_0x2fc0d4['filters']=_[_0x6cff('0x30')](_0x2fc0d4['model'],_0x2fc0d4[_0x6cff('0x2e')]);_0x36ee90[_0x6cff('0x31')]=_['intersection'](_0x2fc0d4[_0x6cff('0x32')],qs[_0x6cff('0x33')](_0x1e3600[_0x6cff('0x2e')][_0x6cff('0x33')]));_0x36ee90[_0x6cff('0x31')]=_0x36ee90[_0x6cff('0x31')]['length']?_0x36ee90[_0x6cff('0x31')]:_0x2fc0d4['model'];if(!_0x1e3600['query']['hasOwnProperty']('nolimit')){_0x36ee90[_0x6cff('0x19')]=qs[_0x6cff('0x19')](_0x1e3600['query']['limit']);_0x36ee90['offset']=qs[_0x6cff('0x18')](_0x1e3600[_0x6cff('0x2e')][_0x6cff('0x18')]);}_0x36ee90[_0x6cff('0x34')]=qs[_0x6cff('0x35')](_0x1e3600[_0x6cff('0x2e')][_0x6cff('0x35')]);_0x36ee90[_0x6cff('0x36')]=qs[_0x6cff('0x37')](_[_0x6cff('0x38')](_0x1e3600['query'],_0x2fc0d4[_0x6cff('0x37')]),_0x5d355f);if(_0x1e3600[_0x6cff('0x2e')][_0x6cff('0x39')]){_0x36ee90[_0x6cff('0x36')]=_[_0x6cff('0x3a')](_0x36ee90['where'],{'$or':_['map'](_0x5d355f,function(_0x43c378){if(_0x43c378[_0x6cff('0x2c')]!==_0x6cff('0x3b')){var _0xf7ebea={};_0xf7ebea[_0x43c378[_0x6cff('0x27')]]={'$like':'%'+_0x1e3600[_0x6cff('0x2e')][_0x6cff('0x39')]+'%'};return _0xf7ebea;}})});}_0x36ee90=_[_0x6cff('0x3a')]({},_0x36ee90,_0x1e3600[_0x6cff('0x3c')]);var _0xbae262={'where':_0x36ee90[_0x6cff('0x36')]};return db[_0x6cff('0x2a')][_0x6cff('0x3d')](_0xbae262)[_0x6cff('0x20')](function(_0x56b8c8){_0x1d4701['count']=_0x56b8c8;if(_0x1e3600['query'][_0x6cff('0x3e')]){_0x36ee90['include']=[{'all':!![]}];}return db['AnalyticExtractedReport']['findAll'](_0x36ee90);})[_0x6cff('0x20')](function(_0x4910cf){_0x1d4701[_0x6cff('0x3f')]=_0x4910cf;return _0x1d4701;})[_0x6cff('0x20')](respondWithFilteredResult(_0xcf8dab,_0x36ee90))['catch'](handleError(_0xcf8dab,null));};exports[_0x6cff('0x40')]=function(_0xde34a1,_0x3a1a20){var _0x5f931e={'raw':!![],'where':{'id':_0xde34a1[_0x6cff('0x41')]['id']}},_0x352ec2={};_0x352ec2[_0x6cff('0x32')]=_[_0x6cff('0x2f')](db[_0x6cff('0x2a')][_0x6cff('0x2b')]);_0x352ec2['query']=_[_0x6cff('0x2f')](_0xde34a1[_0x6cff('0x2e')]);_0x352ec2[_0x6cff('0x37')]=_[_0x6cff('0x30')](_0x352ec2[_0x6cff('0x32')],_0x352ec2['query']);_0x5f931e['attributes']=_['intersection'](_0x352ec2[_0x6cff('0x32')],qs[_0x6cff('0x33')](_0xde34a1['query'][_0x6cff('0x33')]));_0x5f931e['attributes']=_0x5f931e[_0x6cff('0x31')][_0x6cff('0x42')]?_0x5f931e[_0x6cff('0x31')]:_0x352ec2[_0x6cff('0x32')];if(_0xde34a1['query'][_0x6cff('0x3e')]){_0x5f931e['include']=[{'all':!![]}];}_0x5f931e=_[_0x6cff('0x3a')]({},_0x5f931e,_0xde34a1['options']);return db[_0x6cff('0x2a')][_0x6cff('0x43')](_0x5f931e)['then'](handleEntityNotFound(_0x3a1a20,null))['then'](respondWithResult(_0x3a1a20,null))[_0x6cff('0x44')](handleError(_0x3a1a20,null));};exports['create']=function(_0x47fd8b,_0x3397bd){return db[_0x6cff('0x2a')]['create'](_0x47fd8b[_0x6cff('0x45')],{})[_0x6cff('0x20')](function(_0x52c546){var _0x4ed62d=_0x47fd8b[_0x6cff('0x46')][_0x6cff('0x22')]({'plain':!![]});if(!_0x4ed62d)throw new Error(_0x6cff('0x47'));if(_0x4ed62d[_0x6cff('0x48')]===_0x6cff('0x46')){var _0x3f2583=_0x52c546[_0x6cff('0x22')]({'plain':!![]});var _0x586fb0='ExtractedReports';return db[_0x6cff('0x49')][_0x6cff('0x43')]({'where':{'name':_0x586fb0,'userProfileId':_0x4ed62d[_0x6cff('0x4a')]},'raw':!![]})[_0x6cff('0x20')](function(_0x5f48e2){if(_0x5f48e2&&_0x5f48e2[_0x6cff('0x4b')]===0x0){return db[_0x6cff('0x23')][_0x6cff('0x4c')]({'name':_0x3f2583[_0x6cff('0x27')],'resourceId':_0x3f2583['id'],'type':_0x5f48e2[_0x6cff('0x27')],'sectionId':_0x5f48e2['id']},{})[_0x6cff('0x20')](function(){return _0x52c546;});}else{return _0x52c546;}})[_0x6cff('0x44')](function(_0x257df6){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x257df6);throw _0x257df6;});}return _0x52c546;})[_0x6cff('0x20')](respondWithResult(_0x3397bd,0xc9))['catch'](handleError(_0x3397bd,null));};exports[_0x6cff('0x4d')]=function(_0x45ef89,_0xd75e96){if(_0x45ef89[_0x6cff('0x45')]['id']){delete _0x45ef89[_0x6cff('0x45')]['id'];}return db[_0x6cff('0x2a')][_0x6cff('0x43')]({'where':{'id':_0x45ef89[_0x6cff('0x41')]['id']}})[_0x6cff('0x20')](handleEntityNotFound(_0xd75e96,null))['then'](saveUpdates(_0x45ef89[_0x6cff('0x45')],null))[_0x6cff('0x20')](respondWithResult(_0xd75e96,null))[_0x6cff('0x44')](handleError(_0xd75e96,null));};exports[_0x6cff('0x21')]=function(_0x1c1ebc,_0x39cae3){return db[_0x6cff('0x2a')][_0x6cff('0x43')]({'where':{'id':_0x1c1ebc[_0x6cff('0x41')]['id']}})[_0x6cff('0x20')](handleEntityNotFound(_0x39cae3,null))[_0x6cff('0x20')](removeEntity(_0x39cae3,null))[_0x6cff('0x44')](handleError(_0x39cae3,null));};exports[_0x6cff('0x4e')]=function(_0x5212c9,_0x6efc79,_0x382bc0){return db[_0x6cff('0x2a')]['find']({'where':{'id':_0x5212c9[_0x6cff('0x41')]['id']},'attributes':[_0x6cff('0x27'),'basename','savename','output'],'raw':!![]})['then'](handleEntityNotFound(_0x6efc79,null))[_0x6cff('0x20')](function(_0x586dd2){if(_0x586dd2){if(!fs[_0x6cff('0x4f')](path[_0x6cff('0x50')](config[_0x6cff('0x51')],_0x6cff('0x52'),_0x586dd2['savename']))){throw new db[(_0x6cff('0x53'))]['ValidationError'](_0x6cff('0x54'));}if(_0x5212c9[_0x6cff('0x2e')][_0x6cff('0x55')]){return _0x6efc79[_0x6cff('0x24')](0xc8);}return _0x6efc79[_0x6cff('0x4e')](path[_0x6cff('0x50')](config[_0x6cff('0x51')],_0x6cff('0x52'),_0x586dd2['savename']),util[_0x6cff('0x56')](_0x6cff('0x57'),_0x586dd2[_0x6cff('0x58')]||_0x586dd2['name'],_0x586dd2[_0x6cff('0x59')]['toLowerCase']()));}})[_0x6cff('0x44')](handleError(_0x6efc79,null));};