Built motion from commit 092f8824.|2.5.49
[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 _0x4b51=['map','AnalyticExtractedReport','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','params','rawAttributes','length','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','basename','savename','existsSync','join','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','server/files/reports','format','%s.%s','output','toLowerCase','eml-format','zip-dir','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','reject','save','update','then','get','ExtractedReports','UserProfileResource','destroy','stack','name','send','index'];(function(_0x164ce8,_0x2267d9){var _0x1fee44=function(_0x3d8eba){while(--_0x3d8eba){_0x164ce8['push'](_0x164ce8['shift']());}};_0x1fee44(++_0x2267d9);}(_0x4b51,0x1a6));var _0x14b5=function(_0x2aea9e,_0x1f587f){_0x2aea9e=_0x2aea9e-0x0;var _0x430b92=_0x4b51[_0x2aea9e];return _0x430b92;};'use strict';var emlformat=require(_0x14b5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x14b5('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x14b5('0x2'));var Mustache=require(_0x14b5('0x3'));var util=require('util');var path=require(_0x14b5('0x4'));var sox=require(_0x14b5('0x5'));var csv=require(_0x14b5('0x6'));var ejs=require(_0x14b5('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x14b5('0x8'));var squel=require(_0x14b5('0x9'));var crypto=require(_0x14b5('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x14b5('0xb'));var toCsv=require('to-csv');var querystring=require(_0x14b5('0xc'));var Papa=require(_0x14b5('0xd'));var Redis=require('ioredis');var authService=require(_0x14b5('0xe'));var qs=require(_0x14b5('0xf'));var as=require(_0x14b5('0x10'));var hardwareService=require(_0x14b5('0x11'));var logger=require('../../config/logger')(_0x14b5('0x12'));var utils=require('../../config/utils');var config=require(_0x14b5('0x13'));var licenseUtil=require(_0x14b5('0x14'));var db=require(_0x14b5('0x15'))['db'];function respondWithStatusCode(_0x40630c,_0x169735){_0x169735=_0x169735||0xcc;return function(_0x58b0d8){if(_0x58b0d8){return _0x40630c[_0x14b5('0x16')](_0x169735);}return _0x40630c[_0x14b5('0x17')](_0x169735)[_0x14b5('0x18')]();};}function respondWithResult(_0x43fe58,_0xac1b99){_0xac1b99=_0xac1b99||0xc8;return function(_0x5ad1dc){if(_0x5ad1dc){return _0x43fe58[_0x14b5('0x17')](_0xac1b99)[_0x14b5('0x19')](_0x5ad1dc);}};}function respondWithFilteredResult(_0x201d20,_0x370388){return function(_0x4bf7b7){if(_0x4bf7b7){var _0x4d3abf=typeof _0x370388[_0x14b5('0x1a')]===_0x14b5('0x1b')&&typeof _0x370388[_0x14b5('0x1c')]===_0x14b5('0x1b');var _0x6dac50=_0x4bf7b7[_0x14b5('0x1d')];var _0xedf099=_0x4d3abf?0x0:_0x370388['offset'];var _0x35977b=_0x4d3abf?_0x4bf7b7['count']:_0x370388['offset']+_0x370388[_0x14b5('0x1c')];var _0x2567ec;if(_0x35977b>=_0x6dac50){_0x35977b=_0x6dac50;_0x2567ec=0xc8;}else{_0x2567ec=0xce;}_0x201d20[_0x14b5('0x17')](_0x2567ec);return _0x201d20[_0x14b5('0x1e')]('Content-Range',_0xedf099+'-'+_0x35977b+'/'+_0x6dac50)[_0x14b5('0x19')](_0x4bf7b7);}return null;};}function patchUpdates(_0x5dd4a2){return function(_0x543a71){try{jsonpatch['apply'](_0x543a71,_0x5dd4a2,!![]);}catch(_0x392b74){return BPromise[_0x14b5('0x1f')](_0x392b74);}return _0x543a71[_0x14b5('0x20')]();};}function saveUpdates(_0xe4456a,_0x25055f){return function(_0x4e1f48){if(_0x4e1f48){return _0x4e1f48[_0x14b5('0x21')](_0xe4456a)[_0x14b5('0x22')](function(_0x57a983){return _0x57a983;});}return null;};}function removeEntity(_0x21b924,_0x353aca){return function(_0x12bc0f){if(_0x12bc0f){return _0x12bc0f['destroy']()[_0x14b5('0x22')](function(){var _0x47e2e9=_0x12bc0f[_0x14b5('0x23')]({'plain':!![]});var _0x4670a0=_0x14b5('0x24');return db[_0x14b5('0x25')][_0x14b5('0x26')]({'where':{'type':_0x4670a0,'resourceId':_0x47e2e9['id']}})['then'](function(){return _0x12bc0f;});})[_0x14b5('0x22')](function(){_0x21b924['status'](0xcc)[_0x14b5('0x18')]();});}};}function handleEntityNotFound(_0xbffe2b,_0x3f8325){return function(_0x478c7d){if(!_0x478c7d){_0xbffe2b['sendStatus'](0x194);}return _0x478c7d;};}function handleError(_0x1e0ec0,_0x27946a){_0x27946a=_0x27946a||0x1f4;return function(_0x594a45){logger['error'](_0x594a45[_0x14b5('0x27')]);if(_0x594a45[_0x14b5('0x28')]){delete _0x594a45[_0x14b5('0x28')];}_0x1e0ec0[_0x14b5('0x17')](_0x27946a)[_0x14b5('0x29')](_0x594a45);};}exports[_0x14b5('0x2a')]=function(_0xcd9855,_0x29629a){var _0x470a5c={},_0x47c499={},_0x2edb82={'count':0x0,'rows':[]};var _0x3ee059=_[_0x14b5('0x2b')](db[_0x14b5('0x2c')]['rawAttributes'],function(_0x46abdd){return{'name':_0x46abdd['fieldName'],'type':_0x46abdd[_0x14b5('0x2d')]['key']};});_0x47c499[_0x14b5('0x2e')]=_[_0x14b5('0x2b')](_0x3ee059,'name');_0x47c499[_0x14b5('0x2f')]=_[_0x14b5('0x30')](_0xcd9855[_0x14b5('0x2f')]);_0x47c499[_0x14b5('0x31')]=_[_0x14b5('0x32')](_0x47c499[_0x14b5('0x2e')],_0x47c499[_0x14b5('0x2f')]);_0x470a5c[_0x14b5('0x33')]=_[_0x14b5('0x32')](_0x47c499[_0x14b5('0x2e')],qs[_0x14b5('0x34')](_0xcd9855['query'][_0x14b5('0x34')]));_0x470a5c[_0x14b5('0x33')]=_0x470a5c[_0x14b5('0x33')]['length']?_0x470a5c['attributes']:_0x47c499['model'];if(!_0xcd9855[_0x14b5('0x2f')][_0x14b5('0x35')](_0x14b5('0x36'))){_0x470a5c['limit']=qs[_0x14b5('0x1c')](_0xcd9855[_0x14b5('0x2f')][_0x14b5('0x1c')]);_0x470a5c[_0x14b5('0x1a')]=qs[_0x14b5('0x1a')](_0xcd9855[_0x14b5('0x2f')][_0x14b5('0x1a')]);}_0x470a5c[_0x14b5('0x37')]=qs[_0x14b5('0x38')](_0xcd9855[_0x14b5('0x2f')]['sort']);_0x470a5c[_0x14b5('0x39')]=qs[_0x14b5('0x31')](_['pick'](_0xcd9855[_0x14b5('0x2f')],_0x47c499[_0x14b5('0x31')]),_0x3ee059);if(_0xcd9855[_0x14b5('0x2f')]['filter']){_0x470a5c[_0x14b5('0x39')]=_[_0x14b5('0x3a')](_0x470a5c['where'],{'$or':_['map'](_0x3ee059,function(_0x11d59f){if(_0x11d59f['type']!==_0x14b5('0x3b')){var _0x1a2167={};_0x1a2167[_0x11d59f[_0x14b5('0x28')]]={'$like':'%'+_0xcd9855[_0x14b5('0x2f')][_0x14b5('0x3c')]+'%'};return _0x1a2167;}})});}_0x470a5c=_['merge']({},_0x470a5c,_0xcd9855[_0x14b5('0x3d')]);var _0x21ccfc={'where':_0x470a5c[_0x14b5('0x39')]};return db['AnalyticExtractedReport'][_0x14b5('0x1d')](_0x21ccfc)[_0x14b5('0x22')](function(_0x3e23d9){_0x2edb82[_0x14b5('0x1d')]=_0x3e23d9;if(_0xcd9855[_0x14b5('0x2f')][_0x14b5('0x3e')]){_0x470a5c[_0x14b5('0x3f')]=[{'all':!![]}];}return db[_0x14b5('0x2c')][_0x14b5('0x40')](_0x470a5c);})[_0x14b5('0x22')](function(_0x35ae02){_0x2edb82[_0x14b5('0x41')]=_0x35ae02;return _0x2edb82;})[_0x14b5('0x22')](respondWithFilteredResult(_0x29629a,_0x470a5c))['catch'](handleError(_0x29629a,null));};exports['show']=function(_0x1fbee8,_0x55a4e8){var _0x9396b0={'raw':!![],'where':{'id':_0x1fbee8[_0x14b5('0x42')]['id']}},_0x521510={};_0x521510[_0x14b5('0x2e')]=_['keys'](db[_0x14b5('0x2c')][_0x14b5('0x43')]);_0x521510[_0x14b5('0x2f')]=_[_0x14b5('0x30')](_0x1fbee8[_0x14b5('0x2f')]);_0x521510[_0x14b5('0x31')]=_[_0x14b5('0x32')](_0x521510[_0x14b5('0x2e')],_0x521510[_0x14b5('0x2f')]);_0x9396b0[_0x14b5('0x33')]=_[_0x14b5('0x32')](_0x521510['model'],qs[_0x14b5('0x34')](_0x1fbee8[_0x14b5('0x2f')][_0x14b5('0x34')]));_0x9396b0[_0x14b5('0x33')]=_0x9396b0['attributes'][_0x14b5('0x44')]?_0x9396b0[_0x14b5('0x33')]:_0x521510['model'];if(_0x1fbee8[_0x14b5('0x2f')][_0x14b5('0x3e')]){_0x9396b0[_0x14b5('0x3f')]=[{'all':!![]}];}_0x9396b0=_[_0x14b5('0x3a')]({},_0x9396b0,_0x1fbee8[_0x14b5('0x3d')]);return db[_0x14b5('0x2c')]['find'](_0x9396b0)[_0x14b5('0x22')](handleEntityNotFound(_0x55a4e8,null))['then'](respondWithResult(_0x55a4e8,null))[_0x14b5('0x45')](handleError(_0x55a4e8,null));};exports[_0x14b5('0x46')]=function(_0x1e1c0d,_0x45e7de){return db['AnalyticExtractedReport'][_0x14b5('0x46')](_0x1e1c0d[_0x14b5('0x47')],{})['then'](function(_0x16776e){var _0x19351d=_0x1e1c0d[_0x14b5('0x48')][_0x14b5('0x23')]({'plain':!![]});if(!_0x19351d)throw new Error(_0x14b5('0x49'));if(_0x19351d[_0x14b5('0x4a')]===_0x14b5('0x48')){var _0x56896e=_0x16776e['get']({'plain':!![]});var _0x3ed7ff=_0x14b5('0x24');return db[_0x14b5('0x4b')][_0x14b5('0x4c')]({'where':{'name':_0x3ed7ff,'userProfileId':_0x19351d[_0x14b5('0x4d')]},'raw':!![]})[_0x14b5('0x22')](function(_0x388c47){if(_0x388c47&&_0x388c47[_0x14b5('0x4e')]===0x0){return db[_0x14b5('0x25')][_0x14b5('0x46')]({'name':_0x56896e[_0x14b5('0x28')],'resourceId':_0x56896e['id'],'type':_0x388c47[_0x14b5('0x28')],'sectionId':_0x388c47['id']},{})['then'](function(){return _0x16776e;});}else{return _0x16776e;}})[_0x14b5('0x45')](function(_0x129002){logger[_0x14b5('0x4f')](_0x14b5('0x50'),_0x129002);throw _0x129002;});}return _0x16776e;})[_0x14b5('0x22')](respondWithResult(_0x45e7de,0xc9))[_0x14b5('0x45')](handleError(_0x45e7de,null));};exports[_0x14b5('0x21')]=function(_0x5dbbf7,_0xbe5e64){if(_0x5dbbf7[_0x14b5('0x47')]['id']){delete _0x5dbbf7[_0x14b5('0x47')]['id'];}return db[_0x14b5('0x2c')]['find']({'where':{'id':_0x5dbbf7[_0x14b5('0x42')]['id']}})['then'](handleEntityNotFound(_0xbe5e64,null))[_0x14b5('0x22')](saveUpdates(_0x5dbbf7[_0x14b5('0x47')],null))[_0x14b5('0x22')](respondWithResult(_0xbe5e64,null))[_0x14b5('0x45')](handleError(_0xbe5e64,null));};exports[_0x14b5('0x26')]=function(_0x59c720,_0x53ce7e){return db[_0x14b5('0x2c')]['find']({'where':{'id':_0x59c720[_0x14b5('0x42')]['id']}})[_0x14b5('0x22')](handleEntityNotFound(_0x53ce7e,null))[_0x14b5('0x22')](removeEntity(_0x53ce7e,null))[_0x14b5('0x45')](handleError(_0x53ce7e,null));};exports['download']=function(_0x2bd497,_0x2833f1,_0x590457){return db[_0x14b5('0x2c')]['find']({'where':{'id':_0x2bd497[_0x14b5('0x42')]['id']},'attributes':[_0x14b5('0x28'),_0x14b5('0x51'),_0x14b5('0x52'),'output'],'raw':!![]})[_0x14b5('0x22')](handleEntityNotFound(_0x2833f1,null))[_0x14b5('0x22')](function(_0x1f2b98){if(_0x1f2b98){if(!fs[_0x14b5('0x53')](path[_0x14b5('0x54')](config['root'],'server/files/reports',_0x1f2b98['savename']))){throw new db[(_0x14b5('0x55'))][(_0x14b5('0x56'))](_0x14b5('0x57'));}if(_0x2bd497[_0x14b5('0x2f')]['exists']){return _0x2833f1[_0x14b5('0x16')](0xc8);}return _0x2833f1['download'](path['join'](config['root'],_0x14b5('0x58'),_0x1f2b98[_0x14b5('0x52')]),util[_0x14b5('0x59')](_0x14b5('0x5a'),_0x1f2b98['basename']||_0x1f2b98['name'],_0x1f2b98[_0x14b5('0x5b')][_0x14b5('0x5c')]()));}})[_0x14b5('0x45')](handleError(_0x2833f1,null));};