955fb5d12bc4782ff6ba676366966a1a7f1d508d
[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 _0x1be4=['set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','index','map','rawAttributes','type','key','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','AnalyticTreeReport','includeAll','include','findAll','rows','catch','show','keys','create','body','find','params','rimraf','fast-json-patch','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count'];(function(_0x4e5ab0,_0x422fa8){var _0x5018f4=function(_0x5f538f){while(--_0x5f538f){_0x4e5ab0['push'](_0x4e5ab0['shift']());}};_0x5018f4(++_0x422fa8);}(_0x1be4,0x158));var _0x41be=function(_0x4f8e06,_0x3226b1){_0x4f8e06=_0x4f8e06-0x0;var _0x327dad=_0x1be4[_0x4f8e06];return _0x327dad;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x41be('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x41be('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x41be('0x2'));var Mustache=require(_0x41be('0x3'));var util=require(_0x41be('0x4'));var path=require('path');var sox=require(_0x41be('0x5'));var csv=require(_0x41be('0x6'));var ejs=require(_0x41be('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x41be('0x8'));var squel=require('squel');var crypto=require(_0x41be('0x9'));var jsforce=require(_0x41be('0xa'));var deskjs=require(_0x41be('0xb'));var toCsv=require('to-csv');var querystring=require(_0x41be('0xc'));var Papa=require(_0x41be('0xd'));var Redis=require(_0x41be('0xe'));var authService=require(_0x41be('0xf'));var qs=require(_0x41be('0x10'));var as=require(_0x41be('0x11'));var hardwareService=require(_0x41be('0x12'));var logger=require(_0x41be('0x13'))(_0x41be('0x14'));var utils=require('../../config/utils');var config=require(_0x41be('0x15'));var licenseUtil=require(_0x41be('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x592dd2,_0x3f9fc7){_0x3f9fc7=_0x3f9fc7||0xcc;return function(_0x3a38b7){if(_0x3a38b7){return _0x592dd2[_0x41be('0x17')](_0x3f9fc7);}return _0x592dd2[_0x41be('0x18')](_0x3f9fc7)[_0x41be('0x19')]();};}function respondWithResult(_0x167c41,_0xe26e81){_0xe26e81=_0xe26e81||0xc8;return function(_0x3966ab){if(_0x3966ab){return _0x167c41[_0x41be('0x18')](_0xe26e81)[_0x41be('0x1a')](_0x3966ab);}};}function respondWithFilteredResult(_0x305f12,_0x292e99){return function(_0x2fe5ad){if(_0x2fe5ad){var _0x24fab2=typeof _0x292e99[_0x41be('0x1b')]===_0x41be('0x1c')&&typeof _0x292e99[_0x41be('0x1d')]==='undefined';var _0x5dfb3b=_0x2fe5ad['count'];var _0x3e4284=_0x24fab2?0x0:_0x292e99[_0x41be('0x1b')];var _0xdd1a41=_0x24fab2?_0x2fe5ad[_0x41be('0x1e')]:_0x292e99['offset']+_0x292e99['limit'];var _0x144fb6;if(_0xdd1a41>=_0x5dfb3b){_0xdd1a41=_0x5dfb3b;_0x144fb6=0xc8;}else{_0x144fb6=0xce;}_0x305f12[_0x41be('0x18')](_0x144fb6);return _0x305f12[_0x41be('0x1f')](_0x41be('0x20'),_0x3e4284+'-'+_0xdd1a41+'/'+_0x5dfb3b)[_0x41be('0x1a')](_0x2fe5ad);}return null;};}function patchUpdates(_0x10660f){return function(_0x5ec4f){try{jsonpatch[_0x41be('0x21')](_0x5ec4f,_0x10660f,!![]);}catch(_0x589fda){return BPromise[_0x41be('0x22')](_0x589fda);}return _0x5ec4f['save']();};}function saveUpdates(_0x25b942,_0x37ea04){return function(_0x3a143e){if(_0x3a143e){return _0x3a143e[_0x41be('0x23')](_0x25b942)[_0x41be('0x24')](function(_0x496224){return _0x496224;});}return null;};}function removeEntity(_0x3f0dab,_0x16c53d){return function(_0x3e4eb8){if(_0x3e4eb8){return _0x3e4eb8[_0x41be('0x25')]()['then'](function(){_0x3f0dab['status'](0xcc)[_0x41be('0x19')]();});}};}function handleEntityNotFound(_0x415eaa,_0x1737e5){return function(_0x4b224d){if(!_0x4b224d){_0x415eaa[_0x41be('0x17')](0x194);}return _0x4b224d;};}function handleError(_0x199fd4,_0x5117a7){_0x5117a7=_0x5117a7||0x1f4;return function(_0x229ceb){logger[_0x41be('0x26')](_0x229ceb[_0x41be('0x27')]);if(_0x229ceb[_0x41be('0x28')]){delete _0x229ceb[_0x41be('0x28')];}_0x199fd4[_0x41be('0x18')](_0x5117a7)[_0x41be('0x29')](_0x229ceb);};}exports[_0x41be('0x2a')]=function(_0x23e0f,_0x33ca65){var _0x10d804={},_0x5b6343={},_0x5dee22={'count':0x0,'rows':[]};var _0x2a4fbe=_[_0x41be('0x2b')](db['AnalyticTreeReport'][_0x41be('0x2c')],function(_0x5d29b5){return{'name':_0x5d29b5['fieldName'],'type':_0x5d29b5[_0x41be('0x2d')][_0x41be('0x2e')]};});_0x5b6343['model']=_[_0x41be('0x2b')](_0x2a4fbe,_0x41be('0x28'));_0x5b6343[_0x41be('0x2f')]=_['keys'](_0x23e0f['query']);_0x5b6343[_0x41be('0x30')]=_[_0x41be('0x31')](_0x5b6343[_0x41be('0x32')],_0x5b6343[_0x41be('0x2f')]);_0x10d804[_0x41be('0x33')]=_[_0x41be('0x31')](_0x5b6343[_0x41be('0x32')],qs['fields'](_0x23e0f['query'][_0x41be('0x34')]));_0x10d804['attributes']=_0x10d804['attributes']['length']?_0x10d804['attributes']:_0x5b6343['model'];if(!_0x23e0f[_0x41be('0x2f')][_0x41be('0x35')](_0x41be('0x36'))){_0x10d804[_0x41be('0x1d')]=qs[_0x41be('0x1d')](_0x23e0f[_0x41be('0x2f')][_0x41be('0x1d')]);_0x10d804['offset']=qs['offset'](_0x23e0f[_0x41be('0x2f')][_0x41be('0x1b')]);}_0x10d804[_0x41be('0x37')]=qs[_0x41be('0x38')](_0x23e0f[_0x41be('0x2f')][_0x41be('0x38')]);_0x10d804[_0x41be('0x39')]=qs[_0x41be('0x30')](_[_0x41be('0x3a')](_0x23e0f['query'],_0x5b6343[_0x41be('0x30')]),_0x2a4fbe);if(_0x23e0f[_0x41be('0x2f')][_0x41be('0x3b')]){_0x10d804[_0x41be('0x39')]=_[_0x41be('0x3c')](_0x10d804[_0x41be('0x39')],{'$or':_[_0x41be('0x2b')](_0x2a4fbe,function(_0x6fc930){if(_0x6fc930[_0x41be('0x2d')]!==_0x41be('0x3d')){var _0x7d6965={};_0x7d6965[_0x6fc930['name']]={'$like':'%'+_0x23e0f['query'][_0x41be('0x3b')]+'%'};return _0x7d6965;}})});}_0x10d804=_[_0x41be('0x3c')]({},_0x10d804,_0x23e0f[_0x41be('0x3e')]);var _0x12a506={'where':_0x10d804['where']};return db[_0x41be('0x3f')][_0x41be('0x1e')](_0x12a506)[_0x41be('0x24')](function(_0x16f51a){_0x5dee22[_0x41be('0x1e')]=_0x16f51a;if(_0x23e0f['query'][_0x41be('0x40')]){_0x10d804[_0x41be('0x41')]=[{'all':!![]}];}return db[_0x41be('0x3f')][_0x41be('0x42')](_0x10d804);})['then'](function(_0x160764){_0x5dee22[_0x41be('0x43')]=_0x160764;return _0x5dee22;})[_0x41be('0x24')](respondWithFilteredResult(_0x33ca65,_0x10d804))[_0x41be('0x44')](handleError(_0x33ca65,null));};exports[_0x41be('0x45')]=function(_0x293c10,_0x24ca80){var _0x11585f={'raw':!![],'where':{'id':_0x293c10['params']['id']}},_0x3cbee7={};_0x3cbee7[_0x41be('0x32')]=_[_0x41be('0x46')](db[_0x41be('0x3f')]['rawAttributes']);_0x3cbee7[_0x41be('0x2f')]=_[_0x41be('0x46')](_0x293c10[_0x41be('0x2f')]);_0x3cbee7['filters']=_[_0x41be('0x31')](_0x3cbee7[_0x41be('0x32')],_0x3cbee7['query']);_0x11585f['attributes']=_['intersection'](_0x3cbee7[_0x41be('0x32')],qs[_0x41be('0x34')](_0x293c10[_0x41be('0x2f')][_0x41be('0x34')]));_0x11585f[_0x41be('0x33')]=_0x11585f[_0x41be('0x33')]['length']?_0x11585f[_0x41be('0x33')]:_0x3cbee7[_0x41be('0x32')];if(_0x293c10['query'][_0x41be('0x40')]){_0x11585f[_0x41be('0x41')]=[{'all':!![]}];}_0x11585f=_['merge']({},_0x11585f,_0x293c10[_0x41be('0x3e')]);return db[_0x41be('0x3f')]['find'](_0x11585f)[_0x41be('0x24')](handleEntityNotFound(_0x24ca80,null))[_0x41be('0x24')](respondWithResult(_0x24ca80,null))[_0x41be('0x44')](handleError(_0x24ca80,null));};exports['create']=function(_0x51d51b,_0x2abafd){return db[_0x41be('0x3f')][_0x41be('0x47')](_0x51d51b[_0x41be('0x48')],{})['then'](respondWithResult(_0x2abafd,0xc9))['catch'](handleError(_0x2abafd,null));};exports['update']=function(_0x268b4d,_0x4f443e){if(_0x268b4d[_0x41be('0x48')]['id']){delete _0x268b4d[_0x41be('0x48')]['id'];}return db[_0x41be('0x3f')][_0x41be('0x49')]({'where':{'id':_0x268b4d[_0x41be('0x4a')]['id']}})['then'](handleEntityNotFound(_0x4f443e,null))['then'](saveUpdates(_0x268b4d[_0x41be('0x48')],null))[_0x41be('0x24')](respondWithResult(_0x4f443e,null))[_0x41be('0x44')](handleError(_0x4f443e,null));};exports['destroy']=function(_0x34621e,_0x4aa94f){return db[_0x41be('0x3f')][_0x41be('0x49')]({'where':{'id':_0x34621e[_0x41be('0x4a')]['id']}})['then'](handleEntityNotFound(_0x4aa94f,null))[_0x41be('0x24')](removeEntity(_0x4aa94f,null))[_0x41be('0x44')](handleError(_0x4aa94f,null));};