Built motion from commit f0a64034.|2.6.11
[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 _0x6d7c=['length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','AnalyticExtractedReport','includeAll','findAll','catch','params','rawAttributes','keys','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','basename','existsSync','join','savename','ValidationError','exists','download','root','format','%s.%s','eml-format','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','get','ExtractedReports','UserProfileResource','error','stack','index','map','fieldName','type','key','model','name','query','filters','intersection','attributes','fields'];(function(_0x4521e3,_0x10a8a4){var _0x46a272=function(_0x2f4c64){while(--_0x2f4c64){_0x4521e3['push'](_0x4521e3['shift']());}};_0x46a272(++_0x10a8a4);}(_0x6d7c,0x195));var _0xc6d7=function(_0x53b0ec,_0x125d81){_0x53b0ec=_0x53b0ec-0x0;var _0x1f7ff4=_0x6d7c[_0x53b0ec];return _0x1f7ff4;};'use strict';var emlformat=require(_0xc6d7('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc6d7('0x1'));var jsonpatch=require(_0xc6d7('0x2'));var rp=require('request-promise');var moment=require(_0xc6d7('0x3'));var BPromise=require(_0xc6d7('0x4'));var Mustache=require('mustache');var util=require(_0xc6d7('0x5'));var path=require(_0xc6d7('0x6'));var sox=require(_0xc6d7('0x7'));var csv=require(_0xc6d7('0x8'));var ejs=require(_0xc6d7('0x9'));var fs=require('fs');var fs_extra=require(_0xc6d7('0xa'));var _=require(_0xc6d7('0xb'));var squel=require(_0xc6d7('0xc'));var crypto=require('crypto');var jsforce=require(_0xc6d7('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xc6d7('0x8'));var querystring=require(_0xc6d7('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xc6d7('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc6d7('0x10'));var logger=require(_0xc6d7('0x11'))(_0xc6d7('0x12'));var utils=require(_0xc6d7('0x13'));var config=require(_0xc6d7('0x14'));var licenseUtil=require(_0xc6d7('0x15'));var db=require(_0xc6d7('0x16'))['db'];function respondWithStatusCode(_0x39b89d,_0xe21443){_0xe21443=_0xe21443||0xcc;return function(_0x4b6a0d){if(_0x4b6a0d){return _0x39b89d[_0xc6d7('0x17')](_0xe21443);}return _0x39b89d[_0xc6d7('0x18')](_0xe21443)[_0xc6d7('0x19')]();};}function respondWithResult(_0x344397,_0x171baa){_0x171baa=_0x171baa||0xc8;return function(_0x3a2f41){if(_0x3a2f41){return _0x344397[_0xc6d7('0x18')](_0x171baa)[_0xc6d7('0x1a')](_0x3a2f41);}};}function respondWithFilteredResult(_0x42ce58,_0x594162){return function(_0x300168){if(_0x300168){var _0x12c2bf=typeof _0x594162[_0xc6d7('0x1b')]===_0xc6d7('0x1c')&&typeof _0x594162[_0xc6d7('0x1d')]===_0xc6d7('0x1c');var _0x4c00f5=_0x300168[_0xc6d7('0x1e')];var _0x221beb=_0x12c2bf?0x0:_0x594162[_0xc6d7('0x1b')];var _0x479d81=_0x12c2bf?_0x300168[_0xc6d7('0x1e')]:_0x594162[_0xc6d7('0x1b')]+_0x594162[_0xc6d7('0x1d')];var _0x26c6fe;if(_0x479d81>=_0x4c00f5){_0x479d81=_0x4c00f5;_0x26c6fe=0xc8;}else{_0x26c6fe=0xce;}_0x42ce58['status'](_0x26c6fe);return _0x42ce58['set'](_0xc6d7('0x1f'),_0x221beb+'-'+_0x479d81+'/'+_0x4c00f5)[_0xc6d7('0x1a')](_0x300168);}return null;};}function patchUpdates(_0x3a6e48){return function(_0x3d15e8){try{jsonpatch[_0xc6d7('0x20')](_0x3d15e8,_0x3a6e48,!![]);}catch(_0x495b63){return BPromise[_0xc6d7('0x21')](_0x495b63);}return _0x3d15e8[_0xc6d7('0x22')]();};}function saveUpdates(_0x1f2610,_0x48d8c3){return function(_0x2fec19){if(_0x2fec19){return _0x2fec19[_0xc6d7('0x23')](_0x1f2610)[_0xc6d7('0x24')](function(_0x5b0550){return _0x5b0550;});}return null;};}function removeEntity(_0x5458bd,_0x4b6c56){return function(_0x501719){if(_0x501719){return _0x501719[_0xc6d7('0x25')]()[_0xc6d7('0x24')](function(){var _0x2e40ba=_0x501719[_0xc6d7('0x26')]({'plain':!![]});var _0x405cc3=_0xc6d7('0x27');return db[_0xc6d7('0x28')][_0xc6d7('0x25')]({'where':{'type':_0x405cc3,'resourceId':_0x2e40ba['id']}})['then'](function(){return _0x501719;});})[_0xc6d7('0x24')](function(){_0x5458bd[_0xc6d7('0x18')](0xcc)[_0xc6d7('0x19')]();});}};}function handleEntityNotFound(_0x351845,_0x1679c2){return function(_0x46ffb2){if(!_0x46ffb2){_0x351845[_0xc6d7('0x17')](0x194);}return _0x46ffb2;};}function handleError(_0x46f6fe,_0x94ebc1){_0x94ebc1=_0x94ebc1||0x1f4;return function(_0x5e2756){logger[_0xc6d7('0x29')](_0x5e2756[_0xc6d7('0x2a')]);if(_0x5e2756['name']){delete _0x5e2756['name'];}_0x46f6fe[_0xc6d7('0x18')](_0x94ebc1)['send'](_0x5e2756);};}exports[_0xc6d7('0x2b')]=function(_0x3d9146,_0x322c9b){var _0x1fad1f={},_0x58f13c={},_0x56e8e3={'count':0x0,'rows':[]};var _0x4b2ae5=_[_0xc6d7('0x2c')](db['AnalyticExtractedReport']['rawAttributes'],function(_0x5ef28b){return{'name':_0x5ef28b[_0xc6d7('0x2d')],'type':_0x5ef28b[_0xc6d7('0x2e')][_0xc6d7('0x2f')]};});_0x58f13c[_0xc6d7('0x30')]=_[_0xc6d7('0x2c')](_0x4b2ae5,_0xc6d7('0x31'));_0x58f13c['query']=_['keys'](_0x3d9146[_0xc6d7('0x32')]);_0x58f13c[_0xc6d7('0x33')]=_[_0xc6d7('0x34')](_0x58f13c[_0xc6d7('0x30')],_0x58f13c['query']);_0x1fad1f[_0xc6d7('0x35')]=_['intersection'](_0x58f13c[_0xc6d7('0x30')],qs[_0xc6d7('0x36')](_0x3d9146['query'][_0xc6d7('0x36')]));_0x1fad1f['attributes']=_0x1fad1f['attributes'][_0xc6d7('0x37')]?_0x1fad1f[_0xc6d7('0x35')]:_0x58f13c[_0xc6d7('0x30')];if(!_0x3d9146[_0xc6d7('0x32')][_0xc6d7('0x38')](_0xc6d7('0x39'))){_0x1fad1f['limit']=qs[_0xc6d7('0x1d')](_0x3d9146['query'][_0xc6d7('0x1d')]);_0x1fad1f[_0xc6d7('0x1b')]=qs[_0xc6d7('0x1b')](_0x3d9146[_0xc6d7('0x32')][_0xc6d7('0x1b')]);}_0x1fad1f['order']=qs[_0xc6d7('0x3a')](_0x3d9146['query'][_0xc6d7('0x3a')]);_0x1fad1f[_0xc6d7('0x3b')]=qs[_0xc6d7('0x33')](_[_0xc6d7('0x3c')](_0x3d9146[_0xc6d7('0x32')],_0x58f13c[_0xc6d7('0x33')]),_0x4b2ae5);if(_0x3d9146['query']['filter']){_0x1fad1f[_0xc6d7('0x3b')]=_[_0xc6d7('0x3d')](_0x1fad1f[_0xc6d7('0x3b')],{'$or':_[_0xc6d7('0x2c')](_0x4b2ae5,function(_0x4bf714){if(_0x4bf714[_0xc6d7('0x2e')]!==_0xc6d7('0x3e')){var _0x36c4fc={};_0x36c4fc[_0x4bf714[_0xc6d7('0x31')]]={'$like':'%'+_0x3d9146[_0xc6d7('0x32')][_0xc6d7('0x3f')]+'%'};return _0x36c4fc;}})});}_0x1fad1f=_[_0xc6d7('0x3d')]({},_0x1fad1f,_0x3d9146[_0xc6d7('0x40')]);var _0x3562f5={'where':_0x1fad1f[_0xc6d7('0x3b')]};return db[_0xc6d7('0x41')]['count'](_0x3562f5)[_0xc6d7('0x24')](function(_0x27768a){_0x56e8e3['count']=_0x27768a;if(_0x3d9146[_0xc6d7('0x32')][_0xc6d7('0x42')]){_0x1fad1f['include']=[{'all':!![]}];}return db[_0xc6d7('0x41')][_0xc6d7('0x43')](_0x1fad1f);})[_0xc6d7('0x24')](function(_0x57ab64){_0x56e8e3['rows']=_0x57ab64;return _0x56e8e3;})[_0xc6d7('0x24')](respondWithFilteredResult(_0x322c9b,_0x1fad1f))[_0xc6d7('0x44')](handleError(_0x322c9b,null));};exports['show']=function(_0x475c53,_0x470c3e){var _0x5d7dbf={'raw':!![],'where':{'id':_0x475c53[_0xc6d7('0x45')]['id']}},_0x5d6da4={};_0x5d6da4[_0xc6d7('0x30')]=_['keys'](db['AnalyticExtractedReport'][_0xc6d7('0x46')]);_0x5d6da4['query']=_[_0xc6d7('0x47')](_0x475c53[_0xc6d7('0x32')]);_0x5d6da4['filters']=_[_0xc6d7('0x34')](_0x5d6da4[_0xc6d7('0x30')],_0x5d6da4[_0xc6d7('0x32')]);_0x5d7dbf['attributes']=_[_0xc6d7('0x34')](_0x5d6da4[_0xc6d7('0x30')],qs[_0xc6d7('0x36')](_0x475c53[_0xc6d7('0x32')][_0xc6d7('0x36')]));_0x5d7dbf[_0xc6d7('0x35')]=_0x5d7dbf[_0xc6d7('0x35')][_0xc6d7('0x37')]?_0x5d7dbf[_0xc6d7('0x35')]:_0x5d6da4[_0xc6d7('0x30')];if(_0x475c53['query'][_0xc6d7('0x42')]){_0x5d7dbf[_0xc6d7('0x48')]=[{'all':!![]}];}_0x5d7dbf=_[_0xc6d7('0x3d')]({},_0x5d7dbf,_0x475c53[_0xc6d7('0x40')]);return db[_0xc6d7('0x41')][_0xc6d7('0x49')](_0x5d7dbf)['then'](handleEntityNotFound(_0x470c3e,null))[_0xc6d7('0x24')](respondWithResult(_0x470c3e,null))[_0xc6d7('0x44')](handleError(_0x470c3e,null));};exports[_0xc6d7('0x4a')]=function(_0x5e0c76,_0x52f65d){return db[_0xc6d7('0x41')][_0xc6d7('0x4a')](_0x5e0c76[_0xc6d7('0x4b')],{})[_0xc6d7('0x24')](function(_0x3a435b){var _0x19bb49=_0x5e0c76[_0xc6d7('0x4c')][_0xc6d7('0x26')]({'plain':!![]});if(!_0x19bb49)throw new Error(_0xc6d7('0x4d'));if(_0x19bb49[_0xc6d7('0x4e')]===_0xc6d7('0x4c')){var _0x328e71=_0x3a435b[_0xc6d7('0x26')]({'plain':!![]});var _0x5ba031='ExtractedReports';return db[_0xc6d7('0x4f')][_0xc6d7('0x49')]({'where':{'name':_0x5ba031,'userProfileId':_0x19bb49[_0xc6d7('0x50')]},'raw':!![]})[_0xc6d7('0x24')](function(_0x5cc4f3){if(_0x5cc4f3&&_0x5cc4f3['autoAssociation']===0x0){return db['UserProfileResource'][_0xc6d7('0x4a')]({'name':_0x328e71[_0xc6d7('0x31')],'resourceId':_0x328e71['id'],'type':_0x5cc4f3[_0xc6d7('0x31')],'sectionId':_0x5cc4f3['id']},{})[_0xc6d7('0x24')](function(){return _0x3a435b;});}else{return _0x3a435b;}})['catch'](function(_0x155bff){logger[_0xc6d7('0x29')](_0xc6d7('0x51'),_0x155bff);throw _0x155bff;});}return _0x3a435b;})[_0xc6d7('0x24')](respondWithResult(_0x52f65d,0xc9))['catch'](handleError(_0x52f65d,null));};exports[_0xc6d7('0x23')]=function(_0x47a957,_0x1f23e3){if(_0x47a957[_0xc6d7('0x4b')]['id']){delete _0x47a957[_0xc6d7('0x4b')]['id'];}return db[_0xc6d7('0x41')][_0xc6d7('0x49')]({'where':{'id':_0x47a957[_0xc6d7('0x45')]['id']}})[_0xc6d7('0x24')](handleEntityNotFound(_0x1f23e3,null))[_0xc6d7('0x24')](saveUpdates(_0x47a957['body'],null))[_0xc6d7('0x24')](respondWithResult(_0x1f23e3,null))[_0xc6d7('0x44')](handleError(_0x1f23e3,null));};exports[_0xc6d7('0x25')]=function(_0x1a8e95,_0x39a9ae){return db[_0xc6d7('0x41')][_0xc6d7('0x49')]({'where':{'id':_0x1a8e95[_0xc6d7('0x45')]['id']}})[_0xc6d7('0x24')](handleEntityNotFound(_0x39a9ae,null))[_0xc6d7('0x24')](removeEntity(_0x39a9ae,null))['catch'](handleError(_0x39a9ae,null));};exports['download']=function(_0x4bc8f8,_0x306099,_0x23f353){return db[_0xc6d7('0x41')][_0xc6d7('0x49')]({'where':{'id':_0x4bc8f8[_0xc6d7('0x45')]['id']},'attributes':[_0xc6d7('0x31'),_0xc6d7('0x52'),'savename','output'],'raw':!![]})[_0xc6d7('0x24')](handleEntityNotFound(_0x306099,null))['then'](function(_0x963f07){if(_0x963f07){if(!fs[_0xc6d7('0x53')](path[_0xc6d7('0x54')](config['root'],'server/files/reports',_0x963f07[_0xc6d7('0x55')]))){throw new db['Sequelize'][(_0xc6d7('0x56'))]('Report\x20not\x20found\x20or\x20empty');}if(_0x4bc8f8['query'][_0xc6d7('0x57')]){return _0x306099[_0xc6d7('0x17')](0xc8);}return _0x306099[_0xc6d7('0x58')](path[_0xc6d7('0x54')](config[_0xc6d7('0x59')],'server/files/reports',_0x963f07[_0xc6d7('0x55')]),util[_0xc6d7('0x5a')](_0xc6d7('0x5b'),_0x963f07[_0xc6d7('0x52')]||_0x963f07['name'],_0x963f07['output']['toLowerCase']()));}})[_0xc6d7('0x44')](handleError(_0x306099,null));};