1d1cdb0b989eeef2c5b346550f315c6320a1dccd
[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 _0xe34e=['nolimit','order','sort','pick','filter','where','merge','VIRTUAL','findAll','rows','catch','params','includeAll','include','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','basename','output','existsSync','join','root','server/files/reports','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','savename','format','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','end','json','offset','count','limit','set','Content-Range','reject','save','then','get','ExtractedReports','UserProfileResource','destroy','stack','name','send','index','map','AnalyticExtractedReport','rawAttributes','type','model','keys','filters','intersection','fields','query','attributes','length','hasOwnProperty'];(function(_0x2adcab,_0x473cb6){var _0x5731e8=function(_0x8b96c1){while(--_0x8b96c1){_0x2adcab['push'](_0x2adcab['shift']());}};_0x5731e8(++_0x473cb6);}(_0xe34e,0x82));var _0xee34=function(_0xab73a9,_0x2fb83f){_0xab73a9=_0xab73a9-0x0;var _0x48c80e=_0xe34e[_0xab73a9];return _0x48c80e;};'use strict';var emlformat=require(_0xee34('0x0'));var rimraf=require(_0xee34('0x1'));var zipdir=require(_0xee34('0x2'));var jsonpatch=require(_0xee34('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xee34('0x4'));var Mustache=require(_0xee34('0x5'));var util=require(_0xee34('0x6'));var path=require(_0xee34('0x7'));var sox=require(_0xee34('0x8'));var csv=require(_0xee34('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xee34('0xa'));var _=require(_0xee34('0xb'));var squel=require(_0xee34('0xc'));var crypto=require('crypto');var jsforce=require(_0xee34('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xee34('0x9'));var querystring=require(_0xee34('0xe'));var Papa=require(_0xee34('0xf'));var Redis=require(_0xee34('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xee34('0x11'));var as=require(_0xee34('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xee34('0x13'))(_0xee34('0x14'));var utils=require(_0xee34('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xee34('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2f3200,_0x5a193c){_0x5a193c=_0x5a193c||0xcc;return function(_0x1ff4fd){if(_0x1ff4fd){return _0x2f3200[_0xee34('0x17')](_0x5a193c);}return _0x2f3200[_0xee34('0x18')](_0x5a193c)[_0xee34('0x19')]();};}function respondWithResult(_0x2351f1,_0x40a23c){_0x40a23c=_0x40a23c||0xc8;return function(_0x5b84a0){if(_0x5b84a0){return _0x2351f1[_0xee34('0x18')](_0x40a23c)[_0xee34('0x1a')](_0x5b84a0);}};}function respondWithFilteredResult(_0x406727,_0x313102){return function(_0x37e15d){if(_0x37e15d){var _0xcbc420=typeof _0x313102[_0xee34('0x1b')]==='undefined'&&typeof _0x313102['limit']==='undefined';var _0x38b9dc=_0x37e15d[_0xee34('0x1c')];var _0x5db919=_0xcbc420?0x0:_0x313102['offset'];var _0xdbca13=_0xcbc420?_0x37e15d[_0xee34('0x1c')]:_0x313102[_0xee34('0x1b')]+_0x313102[_0xee34('0x1d')];var _0x1698f1;if(_0xdbca13>=_0x38b9dc){_0xdbca13=_0x38b9dc;_0x1698f1=0xc8;}else{_0x1698f1=0xce;}_0x406727['status'](_0x1698f1);return _0x406727[_0xee34('0x1e')](_0xee34('0x1f'),_0x5db919+'-'+_0xdbca13+'/'+_0x38b9dc)[_0xee34('0x1a')](_0x37e15d);}return null;};}function patchUpdates(_0x39d05f){return function(_0x541d69){try{jsonpatch['apply'](_0x541d69,_0x39d05f,!![]);}catch(_0x23453a){return BPromise[_0xee34('0x20')](_0x23453a);}return _0x541d69[_0xee34('0x21')]();};}function saveUpdates(_0x1d69c7,_0x4d522d){return function(_0x4e0d22){if(_0x4e0d22){return _0x4e0d22['update'](_0x1d69c7)[_0xee34('0x22')](function(_0x424f86){return _0x424f86;});}return null;};}function removeEntity(_0x202ceb,_0x53449b){return function(_0x11ba0f){if(_0x11ba0f){return _0x11ba0f['destroy']()[_0xee34('0x22')](function(){var _0x31291e=_0x11ba0f[_0xee34('0x23')]({'plain':!![]});var _0x17bb20=_0xee34('0x24');return db[_0xee34('0x25')][_0xee34('0x26')]({'where':{'type':_0x17bb20,'resourceId':_0x31291e['id']}})[_0xee34('0x22')](function(){return _0x11ba0f;});})[_0xee34('0x22')](function(){_0x202ceb[_0xee34('0x18')](0xcc)[_0xee34('0x19')]();});}};}function handleEntityNotFound(_0x2d4148,_0x3d16e2){return function(_0x39ab7a){if(!_0x39ab7a){_0x2d4148[_0xee34('0x17')](0x194);}return _0x39ab7a;};}function handleError(_0x318889,_0x5e459d){_0x5e459d=_0x5e459d||0x1f4;return function(_0x3a18e3){logger['error'](_0x3a18e3[_0xee34('0x27')]);if(_0x3a18e3[_0xee34('0x28')]){delete _0x3a18e3[_0xee34('0x28')];}_0x318889[_0xee34('0x18')](_0x5e459d)[_0xee34('0x29')](_0x3a18e3);};}exports[_0xee34('0x2a')]=function(_0x58a8f7,_0x4cb798){var _0x366f55={},_0x4f7379={},_0x462be1={'count':0x0,'rows':[]};var _0xf7e635=_[_0xee34('0x2b')](db[_0xee34('0x2c')][_0xee34('0x2d')],function(_0x457990){return{'name':_0x457990['fieldName'],'type':_0x457990[_0xee34('0x2e')]['key']};});_0x4f7379[_0xee34('0x2f')]=_[_0xee34('0x2b')](_0xf7e635,'name');_0x4f7379['query']=_[_0xee34('0x30')](_0x58a8f7['query']);_0x4f7379[_0xee34('0x31')]=_[_0xee34('0x32')](_0x4f7379[_0xee34('0x2f')],_0x4f7379['query']);_0x366f55['attributes']=_[_0xee34('0x32')](_0x4f7379['model'],qs[_0xee34('0x33')](_0x58a8f7[_0xee34('0x34')]['fields']));_0x366f55[_0xee34('0x35')]=_0x366f55[_0xee34('0x35')][_0xee34('0x36')]?_0x366f55[_0xee34('0x35')]:_0x4f7379['model'];if(!_0x58a8f7[_0xee34('0x34')][_0xee34('0x37')](_0xee34('0x38'))){_0x366f55[_0xee34('0x1d')]=qs[_0xee34('0x1d')](_0x58a8f7[_0xee34('0x34')][_0xee34('0x1d')]);_0x366f55[_0xee34('0x1b')]=qs['offset'](_0x58a8f7[_0xee34('0x34')][_0xee34('0x1b')]);}_0x366f55[_0xee34('0x39')]=qs[_0xee34('0x3a')](_0x58a8f7[_0xee34('0x34')][_0xee34('0x3a')]);_0x366f55['where']=qs[_0xee34('0x31')](_[_0xee34('0x3b')](_0x58a8f7[_0xee34('0x34')],_0x4f7379['filters']),_0xf7e635);if(_0x58a8f7['query'][_0xee34('0x3c')]){_0x366f55[_0xee34('0x3d')]=_[_0xee34('0x3e')](_0x366f55[_0xee34('0x3d')],{'$or':_[_0xee34('0x2b')](_0xf7e635,function(_0x859b26){if(_0x859b26[_0xee34('0x2e')]!==_0xee34('0x3f')){var _0x285c4d={};_0x285c4d[_0x859b26[_0xee34('0x28')]]={'$like':'%'+_0x58a8f7['query'][_0xee34('0x3c')]+'%'};return _0x285c4d;}})});}_0x366f55=_[_0xee34('0x3e')]({},_0x366f55,_0x58a8f7['options']);var _0x13509d={'where':_0x366f55['where']};return db[_0xee34('0x2c')][_0xee34('0x1c')](_0x13509d)[_0xee34('0x22')](function(_0x29badd){_0x462be1['count']=_0x29badd;if(_0x58a8f7[_0xee34('0x34')]['includeAll']){_0x366f55['include']=[{'all':!![]}];}return db[_0xee34('0x2c')][_0xee34('0x40')](_0x366f55);})[_0xee34('0x22')](function(_0x2c110f){_0x462be1[_0xee34('0x41')]=_0x2c110f;return _0x462be1;})['then'](respondWithFilteredResult(_0x4cb798,_0x366f55))[_0xee34('0x42')](handleError(_0x4cb798,null));};exports['show']=function(_0x13584d,_0x5411dc){var _0x4272b4={'raw':!![],'where':{'id':_0x13584d[_0xee34('0x43')]['id']}},_0x42d5e7={};_0x42d5e7[_0xee34('0x2f')]=_[_0xee34('0x30')](db[_0xee34('0x2c')]['rawAttributes']);_0x42d5e7[_0xee34('0x34')]=_[_0xee34('0x30')](_0x13584d[_0xee34('0x34')]);_0x42d5e7[_0xee34('0x31')]=_[_0xee34('0x32')](_0x42d5e7[_0xee34('0x2f')],_0x42d5e7[_0xee34('0x34')]);_0x4272b4['attributes']=_[_0xee34('0x32')](_0x42d5e7[_0xee34('0x2f')],qs[_0xee34('0x33')](_0x13584d[_0xee34('0x34')]['fields']));_0x4272b4[_0xee34('0x35')]=_0x4272b4[_0xee34('0x35')][_0xee34('0x36')]?_0x4272b4[_0xee34('0x35')]:_0x42d5e7[_0xee34('0x2f')];if(_0x13584d[_0xee34('0x34')][_0xee34('0x44')]){_0x4272b4[_0xee34('0x45')]=[{'all':!![]}];}_0x4272b4=_[_0xee34('0x3e')]({},_0x4272b4,_0x13584d[_0xee34('0x46')]);return db[_0xee34('0x2c')]['find'](_0x4272b4)[_0xee34('0x22')](handleEntityNotFound(_0x5411dc,null))[_0xee34('0x22')](respondWithResult(_0x5411dc,null))['catch'](handleError(_0x5411dc,null));};exports['create']=function(_0x25bd43,_0x30110f){return db[_0xee34('0x2c')][_0xee34('0x47')](_0x25bd43[_0xee34('0x48')],{})[_0xee34('0x22')](function(_0x56166b){var _0x2da614=_0x25bd43[_0xee34('0x49')][_0xee34('0x23')]({'plain':!![]});if(!_0x2da614)throw new Error(_0xee34('0x4a'));if(_0x2da614[_0xee34('0x4b')]==='user'){var _0x4fba18=_0x56166b[_0xee34('0x23')]({'plain':!![]});var _0x274916=_0xee34('0x24');return db[_0xee34('0x4c')][_0xee34('0x4d')]({'where':{'name':_0x274916,'userProfileId':_0x2da614['userProfileId']},'raw':!![]})[_0xee34('0x22')](function(_0x57258c){if(_0x57258c&&_0x57258c[_0xee34('0x4e')]===0x0){return db[_0xee34('0x25')][_0xee34('0x47')]({'name':_0x4fba18[_0xee34('0x28')],'resourceId':_0x4fba18['id'],'type':_0x57258c[_0xee34('0x28')],'sectionId':_0x57258c['id']},{})['then'](function(){return _0x56166b;});}else{return _0x56166b;}})[_0xee34('0x42')](function(_0x38419f){logger[_0xee34('0x4f')](_0xee34('0x50'),_0x38419f);throw _0x38419f;});}return _0x56166b;})[_0xee34('0x22')](respondWithResult(_0x30110f,0xc9))[_0xee34('0x42')](handleError(_0x30110f,null));};exports['update']=function(_0x34869f,_0x3247ed){if(_0x34869f[_0xee34('0x48')]['id']){delete _0x34869f[_0xee34('0x48')]['id'];}return db[_0xee34('0x2c')][_0xee34('0x4d')]({'where':{'id':_0x34869f[_0xee34('0x43')]['id']}})['then'](handleEntityNotFound(_0x3247ed,null))[_0xee34('0x22')](saveUpdates(_0x34869f['body'],null))[_0xee34('0x22')](respondWithResult(_0x3247ed,null))[_0xee34('0x42')](handleError(_0x3247ed,null));};exports['destroy']=function(_0x2e2660,_0xdb199){return db[_0xee34('0x2c')][_0xee34('0x4d')]({'where':{'id':_0x2e2660[_0xee34('0x43')]['id']}})['then'](handleEntityNotFound(_0xdb199,null))[_0xee34('0x22')](removeEntity(_0xdb199,null))[_0xee34('0x42')](handleError(_0xdb199,null));};exports['download']=function(_0x1e09b7,_0x3a32cb,_0x44c528){return db['AnalyticExtractedReport'][_0xee34('0x4d')]({'where':{'id':_0x1e09b7[_0xee34('0x43')]['id']},'attributes':[_0xee34('0x28'),_0xee34('0x51'),'savename',_0xee34('0x52')],'raw':!![]})[_0xee34('0x22')](handleEntityNotFound(_0x3a32cb,null))[_0xee34('0x22')](function(_0x42a60d){if(_0x42a60d){if(!fs[_0xee34('0x53')](path[_0xee34('0x54')](config[_0xee34('0x55')],_0xee34('0x56'),_0x42a60d['savename']))){throw new db[(_0xee34('0x57'))][(_0xee34('0x58'))](_0xee34('0x59'));}if(_0x1e09b7[_0xee34('0x34')][_0xee34('0x5a')]){return _0x3a32cb[_0xee34('0x17')](0xc8);}return _0x3a32cb['download'](path[_0xee34('0x54')](config[_0xee34('0x55')],'server/files/reports',_0x42a60d[_0xee34('0x5b')]),util[_0xee34('0x5c')]('%s.%s',_0x42a60d[_0xee34('0x51')]||_0x42a60d[_0xee34('0x28')],_0x42a60d[_0xee34('0x52')]['toLowerCase']()));}})['catch'](handleError(_0x3a32cb,null));};