a12086274ceed82cc1a73b278d90642ba9773b07
[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 _0xb832=['../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','end','stack','name','send','index','map','AnalyticTreeReport','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','merge','type','VIRTUAL','filter','includeAll','include','findAll','rows','show','options','find','catch','create','body','params','bluebird','path','sox','to-csv','ejs','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x5e1805,_0x21e5af){var _0x5b0f50=function(_0x493f77){while(--_0x493f77){_0x5e1805['push'](_0x5e1805['shift']());}};_0x5b0f50(++_0x21e5af);}(_0xb832,0x1ec));var _0x2b83=function(_0x199663,_0x45ce76){_0x199663=_0x199663-0x0;var _0x44165b=_0xb832[_0x199663];return _0x44165b;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x2b83('0x0'));var Mustache=require('mustache');var util=require('util');var path=require(_0x2b83('0x1'));var sox=require(_0x2b83('0x2'));var csv=require(_0x2b83('0x3'));var ejs=require(_0x2b83('0x4'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x2b83('0x5'));var crypto=require('crypto');var jsforce=require(_0x2b83('0x6'));var deskjs=require(_0x2b83('0x7'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x2b83('0x8'));var Redis=require('ioredis');var authService=require(_0x2b83('0x9'));var qs=require(_0x2b83('0xa'));var as=require(_0x2b83('0xb'));var hardwareService=require(_0x2b83('0xc'));var logger=require(_0x2b83('0xd'))(_0x2b83('0xe'));var utils=require(_0x2b83('0xf'));var config=require(_0x2b83('0x10'));var licenseUtil=require(_0x2b83('0x11'));var db=require(_0x2b83('0x12'))['db'];function respondWithStatusCode(_0x395030,_0x2801bc){_0x2801bc=_0x2801bc||0xcc;return function(_0x1f1099){if(_0x1f1099){return _0x395030[_0x2b83('0x13')](_0x2801bc);}return _0x395030[_0x2b83('0x14')](_0x2801bc)['end']();};}function respondWithResult(_0x60b0da,_0x3da8f2){_0x3da8f2=_0x3da8f2||0xc8;return function(_0x23394a){if(_0x23394a){return _0x60b0da[_0x2b83('0x14')](_0x3da8f2)[_0x2b83('0x15')](_0x23394a);}};}function respondWithFilteredResult(_0x4eba61,_0x5f0669){return function(_0x36cf4d){if(_0x36cf4d){var _0x27ac63=typeof _0x5f0669[_0x2b83('0x16')]===_0x2b83('0x17')&&typeof _0x5f0669[_0x2b83('0x18')]===_0x2b83('0x17');var _0x9cb2e8=_0x36cf4d[_0x2b83('0x19')];var _0x2969ed=_0x27ac63?0x0:_0x5f0669['offset'];var _0x2748f1=_0x27ac63?_0x36cf4d[_0x2b83('0x19')]:_0x5f0669[_0x2b83('0x16')]+_0x5f0669[_0x2b83('0x18')];var _0x38e834;if(_0x2748f1>=_0x9cb2e8){_0x2748f1=_0x9cb2e8;_0x38e834=0xc8;}else{_0x38e834=0xce;}_0x4eba61[_0x2b83('0x14')](_0x38e834);return _0x4eba61[_0x2b83('0x1a')](_0x2b83('0x1b'),_0x2969ed+'-'+_0x2748f1+'/'+_0x9cb2e8)[_0x2b83('0x15')](_0x36cf4d);}return null;};}function patchUpdates(_0x107a64){return function(_0x181e60){try{jsonpatch[_0x2b83('0x1c')](_0x181e60,_0x107a64,!![]);}catch(_0xacc48a){return BPromise[_0x2b83('0x1d')](_0xacc48a);}return _0x181e60[_0x2b83('0x1e')]();};}function saveUpdates(_0x3b19d1,_0x3aab08){return function(_0x2f7f4f){if(_0x2f7f4f){return _0x2f7f4f[_0x2b83('0x1f')](_0x3b19d1)[_0x2b83('0x20')](function(_0x49b1fb){return _0x49b1fb;});}return null;};}function removeEntity(_0x1e4e45,_0x36eb07){return function(_0x13e174){if(_0x13e174){return _0x13e174[_0x2b83('0x21')]()[_0x2b83('0x20')](function(){_0x1e4e45[_0x2b83('0x14')](0xcc)[_0x2b83('0x22')]();});}};}function handleEntityNotFound(_0x1641b9,_0x5322ca){return function(_0x262142){if(!_0x262142){_0x1641b9[_0x2b83('0x13')](0x194);}return _0x262142;};}function handleError(_0x3aab59,_0x4e9b7d){_0x4e9b7d=_0x4e9b7d||0x1f4;return function(_0x15ccb9){logger['error'](_0x15ccb9[_0x2b83('0x23')]);if(_0x15ccb9[_0x2b83('0x24')]){delete _0x15ccb9[_0x2b83('0x24')];}_0x3aab59[_0x2b83('0x14')](_0x4e9b7d)[_0x2b83('0x25')](_0x15ccb9);};}exports[_0x2b83('0x26')]=function(_0x59d5e6,_0xccba9e){var _0x4f672d={},_0x5190c0={},_0x1d5bde={'count':0x0,'rows':[]};var _0x4ce674=_[_0x2b83('0x27')](db[_0x2b83('0x28')][_0x2b83('0x29')],function(_0x5be7c2){return{'name':_0x5be7c2[_0x2b83('0x2a')],'type':_0x5be7c2['type'][_0x2b83('0x2b')]};});_0x5190c0[_0x2b83('0x2c')]=_[_0x2b83('0x27')](_0x4ce674,'name');_0x5190c0[_0x2b83('0x2d')]=_[_0x2b83('0x2e')](_0x59d5e6[_0x2b83('0x2d')]);_0x5190c0[_0x2b83('0x2f')]=_[_0x2b83('0x30')](_0x5190c0[_0x2b83('0x2c')],_0x5190c0['query']);_0x4f672d[_0x2b83('0x31')]=_[_0x2b83('0x30')](_0x5190c0[_0x2b83('0x2c')],qs[_0x2b83('0x32')](_0x59d5e6[_0x2b83('0x2d')][_0x2b83('0x32')]));_0x4f672d[_0x2b83('0x31')]=_0x4f672d[_0x2b83('0x31')][_0x2b83('0x33')]?_0x4f672d[_0x2b83('0x31')]:_0x5190c0['model'];if(!_0x59d5e6['query'][_0x2b83('0x34')]('nolimit')){_0x4f672d[_0x2b83('0x18')]=qs[_0x2b83('0x18')](_0x59d5e6[_0x2b83('0x2d')][_0x2b83('0x18')]);_0x4f672d[_0x2b83('0x16')]=qs[_0x2b83('0x16')](_0x59d5e6['query']['offset']);}_0x4f672d[_0x2b83('0x35')]=qs[_0x2b83('0x36')](_0x59d5e6['query']['sort']);_0x4f672d[_0x2b83('0x37')]=qs[_0x2b83('0x2f')](_[_0x2b83('0x38')](_0x59d5e6[_0x2b83('0x2d')],_0x5190c0[_0x2b83('0x2f')]),_0x4ce674);if(_0x59d5e6[_0x2b83('0x2d')]['filter']){_0x4f672d[_0x2b83('0x37')]=_[_0x2b83('0x39')](_0x4f672d[_0x2b83('0x37')],{'$or':_[_0x2b83('0x27')](_0x4ce674,function(_0x83b857){if(_0x83b857[_0x2b83('0x3a')]!==_0x2b83('0x3b')){var _0x1bd6fd={};_0x1bd6fd[_0x83b857['name']]={'$like':'%'+_0x59d5e6[_0x2b83('0x2d')][_0x2b83('0x3c')]+'%'};return _0x1bd6fd;}})});}_0x4f672d=_[_0x2b83('0x39')]({},_0x4f672d,_0x59d5e6['options']);var _0x4479c3={'where':_0x4f672d[_0x2b83('0x37')]};return db['AnalyticTreeReport'][_0x2b83('0x19')](_0x4479c3)[_0x2b83('0x20')](function(_0x1fedaf){_0x1d5bde['count']=_0x1fedaf;if(_0x59d5e6['query'][_0x2b83('0x3d')]){_0x4f672d[_0x2b83('0x3e')]=[{'all':!![]}];}return db[_0x2b83('0x28')][_0x2b83('0x3f')](_0x4f672d);})['then'](function(_0x296340){_0x1d5bde[_0x2b83('0x40')]=_0x296340;return _0x1d5bde;})[_0x2b83('0x20')](respondWithFilteredResult(_0xccba9e,_0x4f672d))['catch'](handleError(_0xccba9e,null));};exports[_0x2b83('0x41')]=function(_0x272c77,_0x5a3eb2){var _0x4ecb03={'raw':!![],'where':{'id':_0x272c77['params']['id']}},_0x3934bc={};_0x3934bc[_0x2b83('0x2c')]=_[_0x2b83('0x2e')](db[_0x2b83('0x28')][_0x2b83('0x29')]);_0x3934bc[_0x2b83('0x2d')]=_[_0x2b83('0x2e')](_0x272c77['query']);_0x3934bc[_0x2b83('0x2f')]=_[_0x2b83('0x30')](_0x3934bc[_0x2b83('0x2c')],_0x3934bc[_0x2b83('0x2d')]);_0x4ecb03['attributes']=_[_0x2b83('0x30')](_0x3934bc[_0x2b83('0x2c')],qs[_0x2b83('0x32')](_0x272c77[_0x2b83('0x2d')][_0x2b83('0x32')]));_0x4ecb03[_0x2b83('0x31')]=_0x4ecb03[_0x2b83('0x31')]['length']?_0x4ecb03['attributes']:_0x3934bc[_0x2b83('0x2c')];if(_0x272c77[_0x2b83('0x2d')][_0x2b83('0x3d')]){_0x4ecb03['include']=[{'all':!![]}];}_0x4ecb03=_['merge']({},_0x4ecb03,_0x272c77[_0x2b83('0x42')]);return db['AnalyticTreeReport'][_0x2b83('0x43')](_0x4ecb03)[_0x2b83('0x20')](handleEntityNotFound(_0x5a3eb2,null))[_0x2b83('0x20')](respondWithResult(_0x5a3eb2,null))[_0x2b83('0x44')](handleError(_0x5a3eb2,null));};exports[_0x2b83('0x45')]=function(_0xbca470,_0x5d4839){return db[_0x2b83('0x28')]['create'](_0xbca470[_0x2b83('0x46')],{})[_0x2b83('0x20')](respondWithResult(_0x5d4839,0xc9))[_0x2b83('0x44')](handleError(_0x5d4839,null));};exports['update']=function(_0x4e20ad,_0x49e101){if(_0x4e20ad[_0x2b83('0x46')]['id']){delete _0x4e20ad[_0x2b83('0x46')]['id'];}return db[_0x2b83('0x28')][_0x2b83('0x43')]({'where':{'id':_0x4e20ad[_0x2b83('0x47')]['id']}})[_0x2b83('0x20')](handleEntityNotFound(_0x49e101,null))[_0x2b83('0x20')](saveUpdates(_0x4e20ad[_0x2b83('0x46')],null))[_0x2b83('0x20')](respondWithResult(_0x49e101,null))['catch'](handleError(_0x49e101,null));};exports[_0x2b83('0x21')]=function(_0x24ba27,_0x1814b1){return db[_0x2b83('0x28')]['find']({'where':{'id':_0x24ba27[_0x2b83('0x47')]['id']}})[_0x2b83('0x20')](handleEntityNotFound(_0x1814b1,null))[_0x2b83('0x20')](removeEntity(_0x1814b1,null))[_0x2b83('0x44')](handleError(_0x1814b1,null));};