b56028b40175c2cf71dcd1de63b67ab18d05969c
[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 _0x159a=['fields','attributes','length','order','pick','filter','where','VIRTUAL','merge','options','includeAll','include','rows','catch','show','params','find','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/license/util','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','name','send','index','map','AnalyticTreeReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection'];(function(_0x3957e6,_0x59d494){var _0x120b7b=function(_0x315b73){while(--_0x315b73){_0x3957e6['push'](_0x3957e6['shift']());}};_0x120b7b(++_0x59d494);}(_0x159a,0xa3));var _0xa159=function(_0x1ba19c,_0x3975e2){_0x1ba19c=_0x1ba19c-0x0;var _0x4e069b=_0x159a[_0x1ba19c];return _0x4e069b;};'use strict';var emlformat=require(_0xa159('0x0'));var rimraf=require(_0xa159('0x1'));var zipdir=require(_0xa159('0x2'));var jsonpatch=require(_0xa159('0x3'));var rp=require(_0xa159('0x4'));var moment=require(_0xa159('0x5'));var BPromise=require(_0xa159('0x6'));var Mustache=require('mustache');var util=require(_0xa159('0x7'));var path=require(_0xa159('0x8'));var sox=require(_0xa159('0x9'));var csv=require(_0xa159('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa159('0xb'));var squel=require(_0xa159('0xc'));var crypto=require(_0xa159('0xd'));var jsforce=require(_0xa159('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xa159('0xa'));var querystring=require(_0xa159('0xf'));var Papa=require('papaparse');var Redis=require(_0xa159('0x10'));var authService=require(_0xa159('0x11'));var qs=require(_0xa159('0x12'));var as=require(_0xa159('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xa159('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xa159('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3d6beb,_0x8f4dca){_0x8f4dca=_0x8f4dca||0xcc;return function(_0x2a13fc){if(_0x2a13fc){return _0x3d6beb[_0xa159('0x16')](_0x8f4dca);}return _0x3d6beb['status'](_0x8f4dca)[_0xa159('0x17')]();};}function respondWithResult(_0x5f3e5d,_0x2a90ec){_0x2a90ec=_0x2a90ec||0xc8;return function(_0x4552be){if(_0x4552be){return _0x5f3e5d[_0xa159('0x18')](_0x2a90ec)[_0xa159('0x19')](_0x4552be);}};}function respondWithFilteredResult(_0x25b2bf,_0x36c951){return function(_0x51aa56){if(_0x51aa56){var _0x4a779a=typeof _0x36c951[_0xa159('0x1a')]===_0xa159('0x1b')&&typeof _0x36c951[_0xa159('0x1c')]===_0xa159('0x1b');var _0x2aeee4=_0x51aa56[_0xa159('0x1d')];var _0x2c3350=_0x4a779a?0x0:_0x36c951[_0xa159('0x1a')];var _0x4510dc=_0x4a779a?_0x51aa56[_0xa159('0x1d')]:_0x36c951[_0xa159('0x1a')]+_0x36c951['limit'];var _0x2f7c1d;if(_0x4510dc>=_0x2aeee4){_0x4510dc=_0x2aeee4;_0x2f7c1d=0xc8;}else{_0x2f7c1d=0xce;}_0x25b2bf['status'](_0x2f7c1d);return _0x25b2bf[_0xa159('0x1e')](_0xa159('0x1f'),_0x2c3350+'-'+_0x4510dc+'/'+_0x2aeee4)[_0xa159('0x19')](_0x51aa56);}return null;};}function patchUpdates(_0x5ba9b9){return function(_0x5db3b7){try{jsonpatch[_0xa159('0x20')](_0x5db3b7,_0x5ba9b9,!![]);}catch(_0x356b83){return BPromise[_0xa159('0x21')](_0x356b83);}return _0x5db3b7[_0xa159('0x22')]();};}function saveUpdates(_0x12bdc5,_0x57d6d6){return function(_0x5b2122){if(_0x5b2122){return _0x5b2122[_0xa159('0x23')](_0x12bdc5)[_0xa159('0x24')](function(_0xba6569){return _0xba6569;});}return null;};}function removeEntity(_0x322437,_0x2a3c2b){return function(_0x468dc8){if(_0x468dc8){return _0x468dc8[_0xa159('0x25')]()[_0xa159('0x24')](function(){_0x322437['status'](0xcc)[_0xa159('0x17')]();});}};}function handleEntityNotFound(_0x248965,_0xad36ec){return function(_0x2204bf){if(!_0x2204bf){_0x248965['sendStatus'](0x194);}return _0x2204bf;};}function handleError(_0x181f89,_0x3e94d7){_0x3e94d7=_0x3e94d7||0x1f4;return function(_0x54f480){logger[_0xa159('0x26')](_0x54f480['stack']);if(_0x54f480[_0xa159('0x27')]){delete _0x54f480[_0xa159('0x27')];}_0x181f89['status'](_0x3e94d7)[_0xa159('0x28')](_0x54f480);};}exports[_0xa159('0x29')]=function(_0x13fa66,_0x5e5aa2){var _0x407614={},_0x36f014={},_0x12cd1a={'count':0x0,'rows':[]};var _0x3db5c1=_[_0xa159('0x2a')](db[_0xa159('0x2b')][_0xa159('0x2c')],function(_0x36c361){return{'name':_0x36c361[_0xa159('0x2d')],'type':_0x36c361[_0xa159('0x2e')][_0xa159('0x2f')]};});_0x36f014[_0xa159('0x30')]=_['map'](_0x3db5c1,_0xa159('0x27'));_0x36f014[_0xa159('0x31')]=_[_0xa159('0x32')](_0x13fa66['query']);_0x36f014[_0xa159('0x33')]=_[_0xa159('0x34')](_0x36f014['model'],_0x36f014['query']);_0x407614['attributes']=_['intersection'](_0x36f014[_0xa159('0x30')],qs[_0xa159('0x35')](_0x13fa66['query'][_0xa159('0x35')]));_0x407614[_0xa159('0x36')]=_0x407614[_0xa159('0x36')][_0xa159('0x37')]?_0x407614[_0xa159('0x36')]:_0x36f014['model'];if(!_0x13fa66[_0xa159('0x31')]['hasOwnProperty']('nolimit')){_0x407614[_0xa159('0x1c')]=qs['limit'](_0x13fa66['query'][_0xa159('0x1c')]);_0x407614[_0xa159('0x1a')]=qs[_0xa159('0x1a')](_0x13fa66[_0xa159('0x31')]['offset']);}_0x407614[_0xa159('0x38')]=qs['sort'](_0x13fa66[_0xa159('0x31')]['sort']);_0x407614['where']=qs[_0xa159('0x33')](_[_0xa159('0x39')](_0x13fa66[_0xa159('0x31')],_0x36f014[_0xa159('0x33')]),_0x3db5c1);if(_0x13fa66[_0xa159('0x31')][_0xa159('0x3a')]){_0x407614['where']=_['merge'](_0x407614[_0xa159('0x3b')],{'$or':_[_0xa159('0x2a')](_0x3db5c1,function(_0x121bf0){if(_0x121bf0[_0xa159('0x2e')]!==_0xa159('0x3c')){var _0x4e821d={};_0x4e821d[_0x121bf0['name']]={'$like':'%'+_0x13fa66['query'][_0xa159('0x3a')]+'%'};return _0x4e821d;}})});}_0x407614=_[_0xa159('0x3d')]({},_0x407614,_0x13fa66[_0xa159('0x3e')]);var _0x583e72={'where':_0x407614[_0xa159('0x3b')]};return db[_0xa159('0x2b')][_0xa159('0x1d')](_0x583e72)['then'](function(_0xff3238){_0x12cd1a['count']=_0xff3238;if(_0x13fa66[_0xa159('0x31')][_0xa159('0x3f')]){_0x407614[_0xa159('0x40')]=[{'all':!![]}];}return db[_0xa159('0x2b')]['findAll'](_0x407614);})[_0xa159('0x24')](function(_0x2cdb60){_0x12cd1a[_0xa159('0x41')]=_0x2cdb60;return _0x12cd1a;})[_0xa159('0x24')](respondWithFilteredResult(_0x5e5aa2,_0x407614))[_0xa159('0x42')](handleError(_0x5e5aa2,null));};exports[_0xa159('0x43')]=function(_0x402750,_0x2c28c8){var _0x48c127={'raw':!![],'where':{'id':_0x402750[_0xa159('0x44')]['id']}},_0x36945e={};_0x36945e[_0xa159('0x30')]=_[_0xa159('0x32')](db[_0xa159('0x2b')]['rawAttributes']);_0x36945e[_0xa159('0x31')]=_[_0xa159('0x32')](_0x402750[_0xa159('0x31')]);_0x36945e['filters']=_['intersection'](_0x36945e[_0xa159('0x30')],_0x36945e[_0xa159('0x31')]);_0x48c127['attributes']=_[_0xa159('0x34')](_0x36945e['model'],qs[_0xa159('0x35')](_0x402750[_0xa159('0x31')][_0xa159('0x35')]));_0x48c127[_0xa159('0x36')]=_0x48c127[_0xa159('0x36')][_0xa159('0x37')]?_0x48c127[_0xa159('0x36')]:_0x36945e[_0xa159('0x30')];if(_0x402750[_0xa159('0x31')]['includeAll']){_0x48c127['include']=[{'all':!![]}];}_0x48c127=_[_0xa159('0x3d')]({},_0x48c127,_0x402750[_0xa159('0x3e')]);return db[_0xa159('0x2b')][_0xa159('0x45')](_0x48c127)['then'](handleEntityNotFound(_0x2c28c8,null))[_0xa159('0x24')](respondWithResult(_0x2c28c8,null))[_0xa159('0x42')](handleError(_0x2c28c8,null));};exports[_0xa159('0x46')]=function(_0x4e050c,_0x1cf137){return db[_0xa159('0x2b')][_0xa159('0x46')](_0x4e050c['body'],{})['then'](respondWithResult(_0x1cf137,0xc9))[_0xa159('0x42')](handleError(_0x1cf137,null));};exports[_0xa159('0x23')]=function(_0x4e6969,_0x24156e){if(_0x4e6969[_0xa159('0x47')]['id']){delete _0x4e6969[_0xa159('0x47')]['id'];}return db[_0xa159('0x2b')][_0xa159('0x45')]({'where':{'id':_0x4e6969[_0xa159('0x44')]['id']}})['then'](handleEntityNotFound(_0x24156e,null))[_0xa159('0x24')](saveUpdates(_0x4e6969['body'],null))['then'](respondWithResult(_0x24156e,null))[_0xa159('0x42')](handleError(_0x24156e,null));};exports[_0xa159('0x25')]=function(_0x15528b,_0x1867c5){return db[_0xa159('0x2b')][_0xa159('0x45')]({'where':{'id':_0x15528b[_0xa159('0x44')]['id']}})[_0xa159('0x24')](handleEntityNotFound(_0x1867c5,null))[_0xa159('0x24')](removeEntity(_0x1867c5,null))[_0xa159('0x42')](handleError(_0x1867c5,null));};