4af9cd982913811bd02b520413e36177e4ac2c82
[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 _0xe33d=['moment','bluebird','mustache','sox','ejs','fs-extra','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','limit','undefined','count','Content-Range','reject','save','update','then','sendStatus','error','name','send','map','AnalyticTreeReport','rawAttributes','type','key','keys','query','filters','model','fields','attributes','length','nolimit','order','sort','where','pick','merge','filter','options','includeAll','findAll','rows','catch','show','intersection','include','find','create','body','destroy','rimraf','zip-dir','request-promise'];(function(_0x35dbc3,_0x547459){var _0x2943a2=function(_0x3a52c5){while(--_0x3a52c5){_0x35dbc3['push'](_0x35dbc3['shift']());}};_0x2943a2(++_0x547459);}(_0xe33d,0x11d));var _0xde33=function(_0x513aa5,_0x1fba79){_0x513aa5=_0x513aa5-0x0;var _0x1a1a7c=_0xe33d[_0x513aa5];return _0x1a1a7c;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xde33('0x0'));var zipdir=require(_0xde33('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xde33('0x2'));var moment=require(_0xde33('0x3'));var BPromise=require(_0xde33('0x4'));var Mustache=require(_0xde33('0x5'));var util=require('util');var path=require('path');var sox=require(_0xde33('0x6'));var csv=require('to-csv');var ejs=require(_0xde33('0x7'));var fs=require('fs');var fs_extra=require(_0xde33('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xde33('0x9'));var jsforce=require(_0xde33('0xa'));var deskjs=require(_0xde33('0xb'));var toCsv=require(_0xde33('0xc'));var querystring=require(_0xde33('0xd'));var Papa=require(_0xde33('0xe'));var Redis=require(_0xde33('0xf'));var authService=require(_0xde33('0x10'));var qs=require(_0xde33('0x11'));var as=require(_0xde33('0x12'));var hardwareService=require(_0xde33('0x13'));var logger=require(_0xde33('0x14'))(_0xde33('0x15'));var utils=require('../../config/utils');var config=require(_0xde33('0x16'));var licenseUtil=require(_0xde33('0x17'));var db=require(_0xde33('0x18'))['db'];function respondWithStatusCode(_0x27434b,_0x1064e6){_0x1064e6=_0x1064e6||0xcc;return function(_0x2b3e41){if(_0x2b3e41){return _0x27434b['sendStatus'](_0x1064e6);}return _0x27434b['status'](_0x1064e6)[_0xde33('0x19')]();};}function respondWithResult(_0x3aafe7,_0x86ba17){_0x86ba17=_0x86ba17||0xc8;return function(_0x38c1c5){if(_0x38c1c5){return _0x3aafe7[_0xde33('0x1a')](_0x86ba17)[_0xde33('0x1b')](_0x38c1c5);}};}function respondWithFilteredResult(_0x3653ab,_0x5231aa){return function(_0x5b40bd){if(_0x5b40bd){var _0x1b6fdf=typeof _0x5231aa[_0xde33('0x1c')]==='undefined'&&typeof _0x5231aa[_0xde33('0x1d')]===_0xde33('0x1e');var _0x12f45e=_0x5b40bd['count'];var _0x52fcdd=_0x1b6fdf?0x0:_0x5231aa[_0xde33('0x1c')];var _0x1d7add=_0x1b6fdf?_0x5b40bd[_0xde33('0x1f')]:_0x5231aa[_0xde33('0x1c')]+_0x5231aa[_0xde33('0x1d')];var _0x1a66a3;if(_0x1d7add>=_0x12f45e){_0x1d7add=_0x12f45e;_0x1a66a3=0xc8;}else{_0x1a66a3=0xce;}_0x3653ab[_0xde33('0x1a')](_0x1a66a3);return _0x3653ab['set'](_0xde33('0x20'),_0x52fcdd+'-'+_0x1d7add+'/'+_0x12f45e)[_0xde33('0x1b')](_0x5b40bd);}return null;};}function patchUpdates(_0x85e659){return function(_0x30e97a){try{jsonpatch['apply'](_0x30e97a,_0x85e659,!![]);}catch(_0x1020e3){return BPromise[_0xde33('0x21')](_0x1020e3);}return _0x30e97a[_0xde33('0x22')]();};}function saveUpdates(_0x5abb44,_0x51259d){return function(_0x155cd0){if(_0x155cd0){return _0x155cd0[_0xde33('0x23')](_0x5abb44)['then'](function(_0xb245eb){return _0xb245eb;});}return null;};}function removeEntity(_0xc60ba3,_0x4c1319){return function(_0x23dfad){if(_0x23dfad){return _0x23dfad['destroy']()[_0xde33('0x24')](function(){_0xc60ba3[_0xde33('0x1a')](0xcc)[_0xde33('0x19')]();});}};}function handleEntityNotFound(_0x4d8152,_0x263848){return function(_0x261a10){if(!_0x261a10){_0x4d8152[_0xde33('0x25')](0x194);}return _0x261a10;};}function handleError(_0xff0189,_0x5536df){_0x5536df=_0x5536df||0x1f4;return function(_0x1c8b9e){logger[_0xde33('0x26')](_0x1c8b9e['stack']);if(_0x1c8b9e[_0xde33('0x27')]){delete _0x1c8b9e[_0xde33('0x27')];}_0xff0189[_0xde33('0x1a')](_0x5536df)[_0xde33('0x28')](_0x1c8b9e);};}exports['index']=function(_0xea6ca,_0x534aa5){var _0x2bfe32={},_0x32c33d={},_0x3a5f67={'count':0x0,'rows':[]};var _0x7c5c5f=_[_0xde33('0x29')](db[_0xde33('0x2a')][_0xde33('0x2b')],function(_0x2f66e4){return{'name':_0x2f66e4['fieldName'],'type':_0x2f66e4[_0xde33('0x2c')][_0xde33('0x2d')]};});_0x32c33d['model']=_[_0xde33('0x29')](_0x7c5c5f,_0xde33('0x27'));_0x32c33d['query']=_[_0xde33('0x2e')](_0xea6ca[_0xde33('0x2f')]);_0x32c33d[_0xde33('0x30')]=_['intersection'](_0x32c33d[_0xde33('0x31')],_0x32c33d[_0xde33('0x2f')]);_0x2bfe32['attributes']=_['intersection'](_0x32c33d[_0xde33('0x31')],qs[_0xde33('0x32')](_0xea6ca[_0xde33('0x2f')]['fields']));_0x2bfe32[_0xde33('0x33')]=_0x2bfe32[_0xde33('0x33')][_0xde33('0x34')]?_0x2bfe32['attributes']:_0x32c33d[_0xde33('0x31')];if(!_0xea6ca[_0xde33('0x2f')]['hasOwnProperty'](_0xde33('0x35'))){_0x2bfe32['limit']=qs[_0xde33('0x1d')](_0xea6ca[_0xde33('0x2f')]['limit']);_0x2bfe32[_0xde33('0x1c')]=qs[_0xde33('0x1c')](_0xea6ca[_0xde33('0x2f')][_0xde33('0x1c')]);}_0x2bfe32[_0xde33('0x36')]=qs[_0xde33('0x37')](_0xea6ca[_0xde33('0x2f')]['sort']);_0x2bfe32[_0xde33('0x38')]=qs[_0xde33('0x30')](_[_0xde33('0x39')](_0xea6ca[_0xde33('0x2f')],_0x32c33d[_0xde33('0x30')]),_0x7c5c5f);if(_0xea6ca[_0xde33('0x2f')]['filter']){_0x2bfe32[_0xde33('0x38')]=_[_0xde33('0x3a')](_0x2bfe32[_0xde33('0x38')],{'$or':_['map'](_0x7c5c5f,function(_0x20ad56){if(_0x20ad56[_0xde33('0x2c')]!=='VIRTUAL'){var _0x15fc6a={};_0x15fc6a[_0x20ad56['name']]={'$like':'%'+_0xea6ca['query'][_0xde33('0x3b')]+'%'};return _0x15fc6a;}})});}_0x2bfe32=_[_0xde33('0x3a')]({},_0x2bfe32,_0xea6ca[_0xde33('0x3c')]);var _0x290b1d={'where':_0x2bfe32[_0xde33('0x38')]};return db[_0xde33('0x2a')]['count'](_0x290b1d)[_0xde33('0x24')](function(_0x7e93b1){_0x3a5f67[_0xde33('0x1f')]=_0x7e93b1;if(_0xea6ca['query'][_0xde33('0x3d')]){_0x2bfe32['include']=[{'all':!![]}];}return db['AnalyticTreeReport'][_0xde33('0x3e')](_0x2bfe32);})['then'](function(_0x22316e){_0x3a5f67[_0xde33('0x3f')]=_0x22316e;return _0x3a5f67;})[_0xde33('0x24')](respondWithFilteredResult(_0x534aa5,_0x2bfe32))[_0xde33('0x40')](handleError(_0x534aa5,null));};exports[_0xde33('0x41')]=function(_0x5c3532,_0x48274b){var _0x27fcb1={'raw':!![],'where':{'id':_0x5c3532['params']['id']}},_0x3d05dd={};_0x3d05dd[_0xde33('0x31')]=_[_0xde33('0x2e')](db[_0xde33('0x2a')][_0xde33('0x2b')]);_0x3d05dd[_0xde33('0x2f')]=_[_0xde33('0x2e')](_0x5c3532[_0xde33('0x2f')]);_0x3d05dd[_0xde33('0x30')]=_['intersection'](_0x3d05dd[_0xde33('0x31')],_0x3d05dd[_0xde33('0x2f')]);_0x27fcb1[_0xde33('0x33')]=_[_0xde33('0x42')](_0x3d05dd[_0xde33('0x31')],qs['fields'](_0x5c3532[_0xde33('0x2f')]['fields']));_0x27fcb1[_0xde33('0x33')]=_0x27fcb1['attributes'][_0xde33('0x34')]?_0x27fcb1[_0xde33('0x33')]:_0x3d05dd['model'];if(_0x5c3532[_0xde33('0x2f')]['includeAll']){_0x27fcb1[_0xde33('0x43')]=[{'all':!![]}];}_0x27fcb1=_[_0xde33('0x3a')]({},_0x27fcb1,_0x5c3532['options']);return db['AnalyticTreeReport'][_0xde33('0x44')](_0x27fcb1)[_0xde33('0x24')](handleEntityNotFound(_0x48274b,null))[_0xde33('0x24')](respondWithResult(_0x48274b,null))[_0xde33('0x40')](handleError(_0x48274b,null));};exports[_0xde33('0x45')]=function(_0x212905,_0x433297){return db[_0xde33('0x2a')][_0xde33('0x45')](_0x212905['body'],{})['then'](respondWithResult(_0x433297,0xc9))[_0xde33('0x40')](handleError(_0x433297,null));};exports[_0xde33('0x23')]=function(_0x3de13a,_0x3850e4){if(_0x3de13a['body']['id']){delete _0x3de13a[_0xde33('0x46')]['id'];}return db['AnalyticTreeReport'][_0xde33('0x44')]({'where':{'id':_0x3de13a['params']['id']}})[_0xde33('0x24')](handleEntityNotFound(_0x3850e4,null))['then'](saveUpdates(_0x3de13a[_0xde33('0x46')],null))['then'](respondWithResult(_0x3850e4,null))[_0xde33('0x40')](handleError(_0x3850e4,null));};exports[_0xde33('0x47')]=function(_0x35518a,_0x56cd26){return db['AnalyticTreeReport'][_0xde33('0x44')]({'where':{'id':_0x35518a['params']['id']}})[_0xde33('0x24')](handleEntityNotFound(_0x56cd26,null))[_0xde33('0x24')](removeEntity(_0x56cd26,null))[_0xde33('0x40')](handleError(_0x56cd26,null));};