Built motion from commit ffdca78c.|2.6.24
[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 _0x97c0=['error','stack','name','index','AnalyticTreeReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','where','pick','merge','map','VIRTUAL','include','findAll','rows','catch','show','params','includeAll','options','find','create','body','rimraf','request-promise','moment','mustache','util','path','to-csv','fs-extra','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','Content-Range','apply','update','then','destroy','sendStatus'];(function(_0x3e4db8,_0x277540){var _0x1517f3=function(_0x5d1f75){while(--_0x5d1f75){_0x3e4db8['push'](_0x3e4db8['shift']());}};_0x1517f3(++_0x277540);}(_0x97c0,0x1c0));var _0x097c=function(_0x40626e,_0x3841f6){_0x40626e=_0x40626e-0x0;var _0x50a0a1=_0x97c0[_0x40626e];return _0x50a0a1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x097c('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x097c('0x1'));var moment=require(_0x097c('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x097c('0x3'));var util=require(_0x097c('0x4'));var path=require(_0x097c('0x5'));var sox=require('sox');var csv=require(_0x097c('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x097c('0x7'));var _=require('lodash');var squel=require(_0x097c('0x8'));var crypto=require(_0x097c('0x9'));var jsforce=require(_0x097c('0xa'));var deskjs=require(_0x097c('0xb'));var toCsv=require(_0x097c('0x6'));var querystring=require('querystring');var Papa=require(_0x097c('0xc'));var Redis=require('ioredis');var authService=require(_0x097c('0xd'));var qs=require(_0x097c('0xe'));var as=require(_0x097c('0xf'));var hardwareService=require(_0x097c('0x10'));var logger=require(_0x097c('0x11'))(_0x097c('0x12'));var utils=require('../../config/utils');var config=require(_0x097c('0x13'));var licenseUtil=require(_0x097c('0x14'));var db=require(_0x097c('0x15'))['db'];function respondWithStatusCode(_0x42c21a,_0xea6e1c){_0xea6e1c=_0xea6e1c||0xcc;return function(_0x5eb354){if(_0x5eb354){return _0x42c21a['sendStatus'](_0xea6e1c);}return _0x42c21a[_0x097c('0x16')](_0xea6e1c)[_0x097c('0x17')]();};}function respondWithResult(_0x2ce244,_0xb6dbfb){_0xb6dbfb=_0xb6dbfb||0xc8;return function(_0x582153){if(_0x582153){return _0x2ce244[_0x097c('0x16')](_0xb6dbfb)[_0x097c('0x18')](_0x582153);}};}function respondWithFilteredResult(_0x5ad675,_0x4caea0){return function(_0x34dff0){if(_0x34dff0){var _0x5165ac=typeof _0x4caea0[_0x097c('0x19')]===_0x097c('0x1a')&&typeof _0x4caea0[_0x097c('0x1b')]===_0x097c('0x1a');var _0x584ddd=_0x34dff0['count'];var _0x5bad6f=_0x5165ac?0x0:_0x4caea0[_0x097c('0x19')];var _0x3627b7=_0x5165ac?_0x34dff0[_0x097c('0x1c')]:_0x4caea0['offset']+_0x4caea0['limit'];var _0x42f416;if(_0x3627b7>=_0x584ddd){_0x3627b7=_0x584ddd;_0x42f416=0xc8;}else{_0x42f416=0xce;}_0x5ad675[_0x097c('0x16')](_0x42f416);return _0x5ad675['set'](_0x097c('0x1d'),_0x5bad6f+'-'+_0x3627b7+'/'+_0x584ddd)['json'](_0x34dff0);}return null;};}function patchUpdates(_0x2744a3){return function(_0x2d0549){try{jsonpatch[_0x097c('0x1e')](_0x2d0549,_0x2744a3,!![]);}catch(_0x1b1c76){return BPromise['reject'](_0x1b1c76);}return _0x2d0549['save']();};}function saveUpdates(_0x7b3160,_0x11b536){return function(_0xd2b117){if(_0xd2b117){return _0xd2b117[_0x097c('0x1f')](_0x7b3160)[_0x097c('0x20')](function(_0x3e1d59){return _0x3e1d59;});}return null;};}function removeEntity(_0x25521f,_0x1001de){return function(_0x9ea200){if(_0x9ea200){return _0x9ea200[_0x097c('0x21')]()['then'](function(){_0x25521f[_0x097c('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5498ae,_0x517587){return function(_0x1d7a74){if(!_0x1d7a74){_0x5498ae[_0x097c('0x22')](0x194);}return _0x1d7a74;};}function handleError(_0x4b4ab7,_0x16a1b0){_0x16a1b0=_0x16a1b0||0x1f4;return function(_0x4199d5){logger[_0x097c('0x23')](_0x4199d5[_0x097c('0x24')]);if(_0x4199d5[_0x097c('0x25')]){delete _0x4199d5[_0x097c('0x25')];}_0x4b4ab7[_0x097c('0x16')](_0x16a1b0)['send'](_0x4199d5);};}exports[_0x097c('0x26')]=function(_0x58ce5b,_0x3155b2){var _0x15c95f={},_0x53d011={},_0x33811={'count':0x0,'rows':[]};var _0x5c59fe=_['map'](db[_0x097c('0x27')][_0x097c('0x28')],function(_0x1fda61){return{'name':_0x1fda61[_0x097c('0x29')],'type':_0x1fda61[_0x097c('0x2a')][_0x097c('0x2b')]};});_0x53d011[_0x097c('0x2c')]=_['map'](_0x5c59fe,_0x097c('0x25'));_0x53d011[_0x097c('0x2d')]=_[_0x097c('0x2e')](_0x58ce5b[_0x097c('0x2d')]);_0x53d011[_0x097c('0x2f')]=_[_0x097c('0x30')](_0x53d011[_0x097c('0x2c')],_0x53d011[_0x097c('0x2d')]);_0x15c95f[_0x097c('0x31')]=_[_0x097c('0x30')](_0x53d011['model'],qs[_0x097c('0x32')](_0x58ce5b['query'][_0x097c('0x32')]));_0x15c95f[_0x097c('0x31')]=_0x15c95f[_0x097c('0x31')][_0x097c('0x33')]?_0x15c95f[_0x097c('0x31')]:_0x53d011['model'];if(!_0x58ce5b[_0x097c('0x2d')]['hasOwnProperty'](_0x097c('0x34'))){_0x15c95f[_0x097c('0x1b')]=qs[_0x097c('0x1b')](_0x58ce5b[_0x097c('0x2d')]['limit']);_0x15c95f[_0x097c('0x19')]=qs[_0x097c('0x19')](_0x58ce5b[_0x097c('0x2d')]['offset']);}_0x15c95f['order']=qs['sort'](_0x58ce5b[_0x097c('0x2d')]['sort']);_0x15c95f[_0x097c('0x35')]=qs[_0x097c('0x2f')](_[_0x097c('0x36')](_0x58ce5b['query'],_0x53d011[_0x097c('0x2f')]),_0x5c59fe);if(_0x58ce5b[_0x097c('0x2d')]['filter']){_0x15c95f['where']=_[_0x097c('0x37')](_0x15c95f[_0x097c('0x35')],{'$or':_[_0x097c('0x38')](_0x5c59fe,function(_0x2e2972){if(_0x2e2972[_0x097c('0x2a')]!==_0x097c('0x39')){var _0x2fc97e={};_0x2fc97e[_0x2e2972[_0x097c('0x25')]]={'$like':'%'+_0x58ce5b[_0x097c('0x2d')]['filter']+'%'};return _0x2fc97e;}})});}_0x15c95f=_[_0x097c('0x37')]({},_0x15c95f,_0x58ce5b['options']);var _0x194b06={'where':_0x15c95f[_0x097c('0x35')]};return db[_0x097c('0x27')]['count'](_0x194b06)[_0x097c('0x20')](function(_0x410616){_0x33811[_0x097c('0x1c')]=_0x410616;if(_0x58ce5b['query']['includeAll']){_0x15c95f[_0x097c('0x3a')]=[{'all':!![]}];}return db[_0x097c('0x27')][_0x097c('0x3b')](_0x15c95f);})[_0x097c('0x20')](function(_0x1a5b3d){_0x33811[_0x097c('0x3c')]=_0x1a5b3d;return _0x33811;})[_0x097c('0x20')](respondWithFilteredResult(_0x3155b2,_0x15c95f))[_0x097c('0x3d')](handleError(_0x3155b2,null));};exports[_0x097c('0x3e')]=function(_0x4d8614,_0x433910){var _0x53d026={'raw':!![],'where':{'id':_0x4d8614[_0x097c('0x3f')]['id']}},_0x4a53b0={};_0x4a53b0[_0x097c('0x2c')]=_['keys'](db['AnalyticTreeReport'][_0x097c('0x28')]);_0x4a53b0['query']=_[_0x097c('0x2e')](_0x4d8614[_0x097c('0x2d')]);_0x4a53b0[_0x097c('0x2f')]=_[_0x097c('0x30')](_0x4a53b0[_0x097c('0x2c')],_0x4a53b0[_0x097c('0x2d')]);_0x53d026['attributes']=_[_0x097c('0x30')](_0x4a53b0['model'],qs[_0x097c('0x32')](_0x4d8614[_0x097c('0x2d')][_0x097c('0x32')]));_0x53d026[_0x097c('0x31')]=_0x53d026[_0x097c('0x31')]['length']?_0x53d026[_0x097c('0x31')]:_0x4a53b0['model'];if(_0x4d8614[_0x097c('0x2d')][_0x097c('0x40')]){_0x53d026['include']=[{'all':!![]}];}_0x53d026=_[_0x097c('0x37')]({},_0x53d026,_0x4d8614[_0x097c('0x41')]);return db[_0x097c('0x27')][_0x097c('0x42')](_0x53d026)['then'](handleEntityNotFound(_0x433910,null))['then'](respondWithResult(_0x433910,null))[_0x097c('0x3d')](handleError(_0x433910,null));};exports[_0x097c('0x43')]=function(_0x3ccf3c,_0x189645){return db[_0x097c('0x27')]['create'](_0x3ccf3c[_0x097c('0x44')],{})[_0x097c('0x20')](respondWithResult(_0x189645,0xc9))[_0x097c('0x3d')](handleError(_0x189645,null));};exports[_0x097c('0x1f')]=function(_0x2290d3,_0x406c6c){if(_0x2290d3[_0x097c('0x44')]['id']){delete _0x2290d3['body']['id'];}return db['AnalyticTreeReport'][_0x097c('0x42')]({'where':{'id':_0x2290d3[_0x097c('0x3f')]['id']}})[_0x097c('0x20')](handleEntityNotFound(_0x406c6c,null))[_0x097c('0x20')](saveUpdates(_0x2290d3[_0x097c('0x44')],null))[_0x097c('0x20')](respondWithResult(_0x406c6c,null))[_0x097c('0x3d')](handleError(_0x406c6c,null));};exports[_0x097c('0x21')]=function(_0x13a66b,_0x2b3e0e){return db[_0x097c('0x27')][_0x097c('0x42')]({'where':{'id':_0x13a66b[_0x097c('0x3f')]['id']}})[_0x097c('0x20')](handleEntityNotFound(_0x2b3e0e,null))[_0x097c('0x20')](removeEntity(_0x2b3e0e,null))[_0x097c('0x3d')](handleError(_0x2b3e0e,null));};