Built motion from commit 20b39a97.|2.6.29
[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 _0xde68=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','json','apply','update','then','destroy','name','send','index','map','fieldName','type','filters','intersection','model','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','AnalyticTreeReport','includeAll','include','findAll','rows','catch','show','keys','rawAttributes','find','create','body','params','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x2ab5d7,_0x1243d9){var _0x516388=function(_0x412cd1){while(--_0x412cd1){_0x2ab5d7['push'](_0x2ab5d7['shift']());}};_0x516388(++_0x1243d9);}(_0xde68,0x162));var _0x8de6=function(_0x25e7cb,_0x3579b7){_0x25e7cb=_0x25e7cb-0x0;var _0x375d92=_0xde68[_0x25e7cb];return _0x375d92;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8de6('0x0'));var zipdir=require(_0x8de6('0x1'));var jsonpatch=require(_0x8de6('0x2'));var rp=require(_0x8de6('0x3'));var moment=require('moment');var BPromise=require(_0x8de6('0x4'));var Mustache=require(_0x8de6('0x5'));var util=require(_0x8de6('0x6'));var path=require('path');var sox=require(_0x8de6('0x7'));var csv=require(_0x8de6('0x8'));var ejs=require(_0x8de6('0x9'));var fs=require('fs');var fs_extra=require(_0x8de6('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x8de6('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x8de6('0xc'));var Redis=require(_0x8de6('0xd'));var authService=require(_0x8de6('0xe'));var qs=require(_0x8de6('0xf'));var as=require(_0x8de6('0x10'));var hardwareService=require(_0x8de6('0x11'));var logger=require(_0x8de6('0x12'))(_0x8de6('0x13'));var utils=require(_0x8de6('0x14'));var config=require(_0x8de6('0x15'));var licenseUtil=require(_0x8de6('0x16'));var db=require(_0x8de6('0x17'))['db'];function respondWithStatusCode(_0x23d6a0,_0x3a79cb){_0x3a79cb=_0x3a79cb||0xcc;return function(_0x201fe0){if(_0x201fe0){return _0x23d6a0[_0x8de6('0x18')](_0x3a79cb);}return _0x23d6a0[_0x8de6('0x19')](_0x3a79cb)[_0x8de6('0x1a')]();};}function respondWithResult(_0x42c10f,_0xc4c6da){_0xc4c6da=_0xc4c6da||0xc8;return function(_0x2c50d3){if(_0x2c50d3){return _0x42c10f['status'](_0xc4c6da)['json'](_0x2c50d3);}};}function respondWithFilteredResult(_0x266308,_0x5dc547){return function(_0x35ae09){if(_0x35ae09){var _0x373ee7=typeof _0x5dc547['offset']===_0x8de6('0x1b')&&typeof _0x5dc547[_0x8de6('0x1c')]===_0x8de6('0x1b');var _0xb1bea1=_0x35ae09[_0x8de6('0x1d')];var _0x19460f=_0x373ee7?0x0:_0x5dc547[_0x8de6('0x1e')];var _0x11254e=_0x373ee7?_0x35ae09[_0x8de6('0x1d')]:_0x5dc547[_0x8de6('0x1e')]+_0x5dc547['limit'];var _0x14842f;if(_0x11254e>=_0xb1bea1){_0x11254e=_0xb1bea1;_0x14842f=0xc8;}else{_0x14842f=0xce;}_0x266308[_0x8de6('0x19')](_0x14842f);return _0x266308[_0x8de6('0x1f')](_0x8de6('0x20'),_0x19460f+'-'+_0x11254e+'/'+_0xb1bea1)[_0x8de6('0x21')](_0x35ae09);}return null;};}function patchUpdates(_0xb235e5){return function(_0x5eae2c){try{jsonpatch[_0x8de6('0x22')](_0x5eae2c,_0xb235e5,!![]);}catch(_0x52c672){return BPromise['reject'](_0x52c672);}return _0x5eae2c['save']();};}function saveUpdates(_0x4518dc,_0x3946f7){return function(_0xc593c0){if(_0xc593c0){return _0xc593c0[_0x8de6('0x23')](_0x4518dc)[_0x8de6('0x24')](function(_0x3d546c){return _0x3d546c;});}return null;};}function removeEntity(_0x1d824e,_0x354ee9){return function(_0xcf841d){if(_0xcf841d){return _0xcf841d[_0x8de6('0x25')]()[_0x8de6('0x24')](function(){_0x1d824e[_0x8de6('0x19')](0xcc)[_0x8de6('0x1a')]();});}};}function handleEntityNotFound(_0x3a5307,_0x2240ee){return function(_0x4ef3a7){if(!_0x4ef3a7){_0x3a5307[_0x8de6('0x18')](0x194);}return _0x4ef3a7;};}function handleError(_0x24ec89,_0x1a229e){_0x1a229e=_0x1a229e||0x1f4;return function(_0x1ad44d){logger['error'](_0x1ad44d['stack']);if(_0x1ad44d['name']){delete _0x1ad44d[_0x8de6('0x26')];}_0x24ec89[_0x8de6('0x19')](_0x1a229e)[_0x8de6('0x27')](_0x1ad44d);};}exports[_0x8de6('0x28')]=function(_0x50ef8e,_0x4b95e5){var _0x14bab7={},_0x937671={},_0x4edcd9={'count':0x0,'rows':[]};var _0x24e278=_[_0x8de6('0x29')](db['AnalyticTreeReport']['rawAttributes'],function(_0x511eb9){return{'name':_0x511eb9[_0x8de6('0x2a')],'type':_0x511eb9[_0x8de6('0x2b')]['key']};});_0x937671['model']=_[_0x8de6('0x29')](_0x24e278,_0x8de6('0x26'));_0x937671['query']=_['keys'](_0x50ef8e['query']);_0x937671[_0x8de6('0x2c')]=_[_0x8de6('0x2d')](_0x937671[_0x8de6('0x2e')],_0x937671[_0x8de6('0x2f')]);_0x14bab7[_0x8de6('0x30')]=_[_0x8de6('0x2d')](_0x937671[_0x8de6('0x2e')],qs[_0x8de6('0x31')](_0x50ef8e[_0x8de6('0x2f')][_0x8de6('0x31')]));_0x14bab7['attributes']=_0x14bab7[_0x8de6('0x30')][_0x8de6('0x32')]?_0x14bab7['attributes']:_0x937671['model'];if(!_0x50ef8e[_0x8de6('0x2f')][_0x8de6('0x33')](_0x8de6('0x34'))){_0x14bab7[_0x8de6('0x1c')]=qs[_0x8de6('0x1c')](_0x50ef8e['query'][_0x8de6('0x1c')]);_0x14bab7[_0x8de6('0x1e')]=qs['offset'](_0x50ef8e['query'][_0x8de6('0x1e')]);}_0x14bab7[_0x8de6('0x35')]=qs[_0x8de6('0x36')](_0x50ef8e[_0x8de6('0x2f')][_0x8de6('0x36')]);_0x14bab7[_0x8de6('0x37')]=qs['filters'](_[_0x8de6('0x38')](_0x50ef8e[_0x8de6('0x2f')],_0x937671[_0x8de6('0x2c')]),_0x24e278);if(_0x50ef8e[_0x8de6('0x2f')][_0x8de6('0x39')]){_0x14bab7['where']=_[_0x8de6('0x3a')](_0x14bab7[_0x8de6('0x37')],{'$or':_[_0x8de6('0x29')](_0x24e278,function(_0x500cb0){if(_0x500cb0[_0x8de6('0x2b')]!==_0x8de6('0x3b')){var _0x529a09={};_0x529a09[_0x500cb0['name']]={'$like':'%'+_0x50ef8e['query'][_0x8de6('0x39')]+'%'};return _0x529a09;}})});}_0x14bab7=_[_0x8de6('0x3a')]({},_0x14bab7,_0x50ef8e[_0x8de6('0x3c')]);var _0x136e86={'where':_0x14bab7[_0x8de6('0x37')]};return db[_0x8de6('0x3d')][_0x8de6('0x1d')](_0x136e86)['then'](function(_0x3bf249){_0x4edcd9[_0x8de6('0x1d')]=_0x3bf249;if(_0x50ef8e[_0x8de6('0x2f')][_0x8de6('0x3e')]){_0x14bab7[_0x8de6('0x3f')]=[{'all':!![]}];}return db[_0x8de6('0x3d')][_0x8de6('0x40')](_0x14bab7);})[_0x8de6('0x24')](function(_0x5931d7){_0x4edcd9[_0x8de6('0x41')]=_0x5931d7;return _0x4edcd9;})[_0x8de6('0x24')](respondWithFilteredResult(_0x4b95e5,_0x14bab7))[_0x8de6('0x42')](handleError(_0x4b95e5,null));};exports[_0x8de6('0x43')]=function(_0x44c1e6,_0x393138){var _0x342d4e={'raw':!![],'where':{'id':_0x44c1e6['params']['id']}},_0x47d64a={};_0x47d64a[_0x8de6('0x2e')]=_[_0x8de6('0x44')](db['AnalyticTreeReport'][_0x8de6('0x45')]);_0x47d64a[_0x8de6('0x2f')]=_[_0x8de6('0x44')](_0x44c1e6[_0x8de6('0x2f')]);_0x47d64a[_0x8de6('0x2c')]=_['intersection'](_0x47d64a[_0x8de6('0x2e')],_0x47d64a['query']);_0x342d4e[_0x8de6('0x30')]=_[_0x8de6('0x2d')](_0x47d64a[_0x8de6('0x2e')],qs[_0x8de6('0x31')](_0x44c1e6[_0x8de6('0x2f')]['fields']));_0x342d4e[_0x8de6('0x30')]=_0x342d4e[_0x8de6('0x30')][_0x8de6('0x32')]?_0x342d4e[_0x8de6('0x30')]:_0x47d64a[_0x8de6('0x2e')];if(_0x44c1e6[_0x8de6('0x2f')][_0x8de6('0x3e')]){_0x342d4e['include']=[{'all':!![]}];}_0x342d4e=_['merge']({},_0x342d4e,_0x44c1e6[_0x8de6('0x3c')]);return db[_0x8de6('0x3d')][_0x8de6('0x46')](_0x342d4e)[_0x8de6('0x24')](handleEntityNotFound(_0x393138,null))['then'](respondWithResult(_0x393138,null))[_0x8de6('0x42')](handleError(_0x393138,null));};exports[_0x8de6('0x47')]=function(_0x4cb103,_0x388691){return db[_0x8de6('0x3d')][_0x8de6('0x47')](_0x4cb103[_0x8de6('0x48')],{})[_0x8de6('0x24')](respondWithResult(_0x388691,0xc9))[_0x8de6('0x42')](handleError(_0x388691,null));};exports[_0x8de6('0x23')]=function(_0xf58edf,_0x3e9dce){if(_0xf58edf[_0x8de6('0x48')]['id']){delete _0xf58edf[_0x8de6('0x48')]['id'];}return db[_0x8de6('0x3d')][_0x8de6('0x46')]({'where':{'id':_0xf58edf[_0x8de6('0x49')]['id']}})[_0x8de6('0x24')](handleEntityNotFound(_0x3e9dce,null))['then'](saveUpdates(_0xf58edf[_0x8de6('0x48')],null))[_0x8de6('0x24')](respondWithResult(_0x3e9dce,null))[_0x8de6('0x42')](handleError(_0x3e9dce,null));};exports[_0x8de6('0x25')]=function(_0x1b0592,_0x294372){return db[_0x8de6('0x3d')][_0x8de6('0x46')]({'where':{'id':_0x1b0592['params']['id']}})[_0x8de6('0x24')](handleEntityNotFound(_0x294372,null))[_0x8de6('0x24')](removeEntity(_0x294372,null))[_0x8de6('0x42')](handleError(_0x294372,null));};