17bd9b6ec809366a777761cf4bb4d49495325202
[motion2.git] / server / api / analyticTreeReport / analyticTreeReport.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 _0xdd3c=['mustache','util','path','sox','ejs','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','name','send','index','map','AnalyticTreeReport','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','includeAll','include','findAll','then','rows','catch','params','options','find','create','body','destroy','eml-format','rimraf','request-promise','moment','bluebird'];(function(_0x236b34,_0x298581){var _0x5da74d=function(_0x26c81d){while(--_0x26c81d){_0x236b34['push'](_0x236b34['shift']());}};_0x5da74d(++_0x298581);}(_0xdd3c,0x87));var _0xcdd3=function(_0x2a1ebb,_0x5d4d0e){_0x2a1ebb=_0x2a1ebb-0x0;var _0x3f70c5=_0xdd3c[_0x2a1ebb];return _0x3f70c5;};'use strict';var emlformat=require(_0xcdd3('0x0'));var rimraf=require(_0xcdd3('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xcdd3('0x2'));var moment=require(_0xcdd3('0x3'));var BPromise=require(_0xcdd3('0x4'));var Mustache=require(_0xcdd3('0x5'));var util=require(_0xcdd3('0x6'));var path=require(_0xcdd3('0x7'));var sox=require(_0xcdd3('0x8'));var csv=require('to-csv');var ejs=require(_0xcdd3('0x9'));var fs=require('fs');var fs_extra=require(_0xcdd3('0xa'));var _=require('lodash');var squel=require(_0xcdd3('0xb'));var crypto=require(_0xcdd3('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xcdd3('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xcdd3('0xe'));var authService=require(_0xcdd3('0xf'));var qs=require(_0xcdd3('0x10'));var as=require(_0xcdd3('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xcdd3('0x12'));var utils=require(_0xcdd3('0x13'));var config=require(_0xcdd3('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xcdd3('0x15'))['db'];function respondWithStatusCode(_0x55d7e9,_0x55c92c){_0x55c92c=_0x55c92c||0xcc;return function(_0x1f175e){if(_0x1f175e){return _0x55d7e9[_0xcdd3('0x16')](_0x55c92c);}return _0x55d7e9[_0xcdd3('0x17')](_0x55c92c)[_0xcdd3('0x18')]();};}function respondWithResult(_0x24e668,_0x2ccfa2){_0x2ccfa2=_0x2ccfa2||0xc8;return function(_0xe1038f){if(_0xe1038f){return _0x24e668[_0xcdd3('0x17')](_0x2ccfa2)['json'](_0xe1038f);}};}function respondWithFilteredResult(_0x590c82,_0x242ae1){return function(_0x2b0adf){if(_0x2b0adf){var _0x4dcfc1=typeof _0x242ae1[_0xcdd3('0x19')]===_0xcdd3('0x1a')&&typeof _0x242ae1['limit']===_0xcdd3('0x1a');var _0x22c109=_0x2b0adf[_0xcdd3('0x1b')];var _0x2cd860=_0x4dcfc1?0x0:_0x242ae1[_0xcdd3('0x19')];var _0x5b5082=_0x4dcfc1?_0x2b0adf[_0xcdd3('0x1b')]:_0x242ae1['offset']+_0x242ae1[_0xcdd3('0x1c')];var _0x555198;if(_0x5b5082>=_0x22c109){_0x5b5082=_0x22c109;_0x555198=0xc8;}else{_0x555198=0xce;}_0x590c82['status'](_0x555198);return _0x590c82[_0xcdd3('0x1d')](_0xcdd3('0x1e'),_0x2cd860+'-'+_0x5b5082+'/'+_0x22c109)['json'](_0x2b0adf);}return null;};}function patchUpdates(_0x5d9038){return function(_0x26dc07){try{jsonpatch[_0xcdd3('0x1f')](_0x26dc07,_0x5d9038,!![]);}catch(_0x3cc575){return BPromise[_0xcdd3('0x20')](_0x3cc575);}return _0x26dc07[_0xcdd3('0x21')]();};}function saveUpdates(_0x2613eb,_0x66f7e){return function(_0x23f8a7){if(_0x23f8a7){return _0x23f8a7[_0xcdd3('0x22')](_0x2613eb)['then'](function(_0x483a0a){return _0x483a0a;});}return null;};}function removeEntity(_0x172ae9,_0xd6a9ad){return function(_0x169049){if(_0x169049){return _0x169049['destroy']()['then'](function(){_0x172ae9['status'](0xcc)[_0xcdd3('0x18')]();});}};}function handleEntityNotFound(_0x202b1e,_0x5c20e5){return function(_0xb03647){if(!_0xb03647){_0x202b1e[_0xcdd3('0x16')](0x194);}return _0xb03647;};}function handleError(_0x522971,_0x57202a){_0x57202a=_0x57202a||0x1f4;return function(_0x403353){logger['error'](_0x403353['stack']);if(_0x403353[_0xcdd3('0x23')]){delete _0x403353['name'];}_0x522971[_0xcdd3('0x17')](_0x57202a)[_0xcdd3('0x24')](_0x403353);};}exports[_0xcdd3('0x25')]=function(_0x430150,_0x2c0991){var _0x4e0eaf={},_0x523932={},_0x544f23={'count':0x0,'rows':[]};var _0x440d0c=_[_0xcdd3('0x26')](db[_0xcdd3('0x27')][_0xcdd3('0x28')],function(_0x427615){return{'name':_0x427615['fieldName'],'type':_0x427615[_0xcdd3('0x29')][_0xcdd3('0x2a')]};});_0x523932[_0xcdd3('0x2b')]=_[_0xcdd3('0x26')](_0x440d0c,_0xcdd3('0x23'));_0x523932[_0xcdd3('0x2c')]=_[_0xcdd3('0x2d')](_0x430150[_0xcdd3('0x2c')]);_0x523932[_0xcdd3('0x2e')]=_[_0xcdd3('0x2f')](_0x523932[_0xcdd3('0x2b')],_0x523932[_0xcdd3('0x2c')]);_0x4e0eaf['attributes']=_['intersection'](_0x523932[_0xcdd3('0x2b')],qs[_0xcdd3('0x30')](_0x430150['query'][_0xcdd3('0x30')]));_0x4e0eaf[_0xcdd3('0x31')]=_0x4e0eaf[_0xcdd3('0x31')][_0xcdd3('0x32')]?_0x4e0eaf['attributes']:_0x523932[_0xcdd3('0x2b')];if(!_0x430150[_0xcdd3('0x2c')][_0xcdd3('0x33')](_0xcdd3('0x34'))){_0x4e0eaf[_0xcdd3('0x1c')]=qs[_0xcdd3('0x1c')](_0x430150[_0xcdd3('0x2c')]['limit']);_0x4e0eaf[_0xcdd3('0x19')]=qs[_0xcdd3('0x19')](_0x430150['query'][_0xcdd3('0x19')]);}_0x4e0eaf[_0xcdd3('0x35')]=qs[_0xcdd3('0x36')](_0x430150[_0xcdd3('0x2c')][_0xcdd3('0x36')]);_0x4e0eaf[_0xcdd3('0x37')]=qs['filters'](_['pick'](_0x430150[_0xcdd3('0x2c')],_0x523932[_0xcdd3('0x2e')]),_0x440d0c);if(_0x430150[_0xcdd3('0x2c')][_0xcdd3('0x38')]){_0x4e0eaf[_0xcdd3('0x37')]=_[_0xcdd3('0x39')](_0x4e0eaf[_0xcdd3('0x37')],{'$or':_[_0xcdd3('0x26')](_0x440d0c,function(_0x53545e){if(_0x53545e[_0xcdd3('0x29')]!=='VIRTUAL'){var _0x4cb4f8={};_0x4cb4f8[_0x53545e[_0xcdd3('0x23')]]={'$like':'%'+_0x430150[_0xcdd3('0x2c')][_0xcdd3('0x38')]+'%'};return _0x4cb4f8;}})});}_0x4e0eaf=_['merge']({},_0x4e0eaf,_0x430150['options']);var _0x1b0819={'where':_0x4e0eaf[_0xcdd3('0x37')]};return db[_0xcdd3('0x27')][_0xcdd3('0x1b')](_0x1b0819)['then'](function(_0x551d21){_0x544f23['count']=_0x551d21;if(_0x430150['query'][_0xcdd3('0x3a')]){_0x4e0eaf[_0xcdd3('0x3b')]=[{'all':!![]}];}return db[_0xcdd3('0x27')][_0xcdd3('0x3c')](_0x4e0eaf);})[_0xcdd3('0x3d')](function(_0x2cb821){_0x544f23[_0xcdd3('0x3e')]=_0x2cb821;return _0x544f23;})[_0xcdd3('0x3d')](respondWithFilteredResult(_0x2c0991,_0x4e0eaf))[_0xcdd3('0x3f')](handleError(_0x2c0991,null));};exports['show']=function(_0x558f73,_0x153051){var _0x115258={'raw':!![],'where':{'id':_0x558f73[_0xcdd3('0x40')]['id']}},_0x2fbc58={};_0x2fbc58[_0xcdd3('0x2b')]=_['keys'](db[_0xcdd3('0x27')][_0xcdd3('0x28')]);_0x2fbc58[_0xcdd3('0x2c')]=_[_0xcdd3('0x2d')](_0x558f73['query']);_0x2fbc58[_0xcdd3('0x2e')]=_['intersection'](_0x2fbc58['model'],_0x2fbc58[_0xcdd3('0x2c')]);_0x115258[_0xcdd3('0x31')]=_['intersection'](_0x2fbc58[_0xcdd3('0x2b')],qs[_0xcdd3('0x30')](_0x558f73['query'][_0xcdd3('0x30')]));_0x115258[_0xcdd3('0x31')]=_0x115258['attributes']['length']?_0x115258[_0xcdd3('0x31')]:_0x2fbc58['model'];if(_0x558f73['query']['includeAll']){_0x115258['include']=[{'all':!![]}];}_0x115258=_['merge']({},_0x115258,_0x558f73[_0xcdd3('0x41')]);return db[_0xcdd3('0x27')][_0xcdd3('0x42')](_0x115258)[_0xcdd3('0x3d')](handleEntityNotFound(_0x153051,null))['then'](respondWithResult(_0x153051,null))[_0xcdd3('0x3f')](handleError(_0x153051,null));};exports[_0xcdd3('0x43')]=function(_0x50d422,_0x277a94){return db[_0xcdd3('0x27')]['create'](_0x50d422['body'],{})[_0xcdd3('0x3d')](respondWithResult(_0x277a94,0xc9))[_0xcdd3('0x3f')](handleError(_0x277a94,null));};exports[_0xcdd3('0x22')]=function(_0x38a952,_0x2dcd51){if(_0x38a952['body']['id']){delete _0x38a952[_0xcdd3('0x44')]['id'];}return db[_0xcdd3('0x27')][_0xcdd3('0x42')]({'where':{'id':_0x38a952[_0xcdd3('0x40')]['id']}})[_0xcdd3('0x3d')](handleEntityNotFound(_0x2dcd51,null))[_0xcdd3('0x3d')](saveUpdates(_0x38a952[_0xcdd3('0x44')],null))[_0xcdd3('0x3d')](respondWithResult(_0x2dcd51,null))['catch'](handleError(_0x2dcd51,null));};exports[_0xcdd3('0x45')]=function(_0x385991,_0x80cf29){return db[_0xcdd3('0x27')][_0xcdd3('0x42')]({'where':{'id':_0x385991[_0xcdd3('0x40')]['id']}})[_0xcdd3('0x3d')](handleEntityNotFound(_0x80cf29,null))[_0xcdd3('0x3d')](removeEntity(_0x80cf29,null))['catch'](handleError(_0x80cf29,null));};