a671c0fe06b0fe9be7328f43d63cae3d2f5f864e
[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 _0x4d2c=['../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','undefined','limit','offset','count','Content-Range','json','apply','reject','save','update','then','destroy','error','stack','name','send','AnalyticTreeReport','rawAttributes','fieldName','type','key','model','map','keys','query','filters','attributes','fields','length','nolimit','sort','where','filter','merge','options','include','findAll','rows','catch','show','intersection','includeAll','create','body','find','params','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','path','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x3a87ef,_0x25aa94){var _0x414ef9=function(_0x5787eb){while(--_0x5787eb){_0x3a87ef['push'](_0x3a87ef['shift']());}};_0x414ef9(++_0x25aa94);}(_0x4d2c,0x1df));var _0xc4d2=function(_0x1c188f,_0x5ef40f){_0x1c188f=_0x1c188f-0x0;var _0x381011=_0x4d2c[_0x1c188f];return _0x381011;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc4d2('0x0'));var zipdir=require(_0xc4d2('0x1'));var jsonpatch=require(_0xc4d2('0x2'));var rp=require(_0xc4d2('0x3'));var moment=require('moment');var BPromise=require(_0xc4d2('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0xc4d2('0x5'));var sox=require('sox');var csv=require(_0xc4d2('0x6'));var ejs=require(_0xc4d2('0x7'));var fs=require('fs');var fs_extra=require(_0xc4d2('0x8'));var _=require(_0xc4d2('0x9'));var squel=require(_0xc4d2('0xa'));var crypto=require(_0xc4d2('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xc4d2('0x6'));var querystring=require(_0xc4d2('0xc'));var Papa=require(_0xc4d2('0xd'));var Redis=require(_0xc4d2('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xc4d2('0xf'));var as=require(_0xc4d2('0x10'));var hardwareService=require(_0xc4d2('0x11'));var logger=require(_0xc4d2('0x12'))('api');var utils=require(_0xc4d2('0x13'));var config=require(_0xc4d2('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xc4d2('0x15'))['db'];function respondWithStatusCode(_0x554aab,_0x40248e){_0x40248e=_0x40248e||0xcc;return function(_0x27af9a){if(_0x27af9a){return _0x554aab[_0xc4d2('0x16')](_0x40248e);}return _0x554aab['status'](_0x40248e)[_0xc4d2('0x17')]();};}function respondWithResult(_0x225e15,_0x293d9c){_0x293d9c=_0x293d9c||0xc8;return function(_0x1f0658){if(_0x1f0658){return _0x225e15[_0xc4d2('0x18')](_0x293d9c)['json'](_0x1f0658);}};}function respondWithFilteredResult(_0x3c020d,_0x402f89){return function(_0x2d1f6a){if(_0x2d1f6a){var _0x2f5a12=typeof _0x402f89['offset']===_0xc4d2('0x19')&&typeof _0x402f89[_0xc4d2('0x1a')]===_0xc4d2('0x19');var _0xcbf836=_0x2d1f6a['count'];var _0x1311ad=_0x2f5a12?0x0:_0x402f89[_0xc4d2('0x1b')];var _0x231309=_0x2f5a12?_0x2d1f6a[_0xc4d2('0x1c')]:_0x402f89[_0xc4d2('0x1b')]+_0x402f89[_0xc4d2('0x1a')];var _0x1405ac;if(_0x231309>=_0xcbf836){_0x231309=_0xcbf836;_0x1405ac=0xc8;}else{_0x1405ac=0xce;}_0x3c020d[_0xc4d2('0x18')](_0x1405ac);return _0x3c020d['set'](_0xc4d2('0x1d'),_0x1311ad+'-'+_0x231309+'/'+_0xcbf836)[_0xc4d2('0x1e')](_0x2d1f6a);}return null;};}function patchUpdates(_0xea654f){return function(_0x46704e){try{jsonpatch[_0xc4d2('0x1f')](_0x46704e,_0xea654f,!![]);}catch(_0x2a255d){return BPromise[_0xc4d2('0x20')](_0x2a255d);}return _0x46704e[_0xc4d2('0x21')]();};}function saveUpdates(_0x256aa1,_0x277cb5){return function(_0x3d1393){if(_0x3d1393){return _0x3d1393[_0xc4d2('0x22')](_0x256aa1)[_0xc4d2('0x23')](function(_0x1ebae){return _0x1ebae;});}return null;};}function removeEntity(_0x242a10,_0x20635d){return function(_0x38fcae){if(_0x38fcae){return _0x38fcae[_0xc4d2('0x24')]()[_0xc4d2('0x23')](function(){_0x242a10[_0xc4d2('0x18')](0xcc)[_0xc4d2('0x17')]();});}};}function handleEntityNotFound(_0xce02ff,_0x112331){return function(_0x4fced1){if(!_0x4fced1){_0xce02ff[_0xc4d2('0x16')](0x194);}return _0x4fced1;};}function handleError(_0x1c773d,_0x21d677){_0x21d677=_0x21d677||0x1f4;return function(_0x2519c1){logger[_0xc4d2('0x25')](_0x2519c1[_0xc4d2('0x26')]);if(_0x2519c1['name']){delete _0x2519c1[_0xc4d2('0x27')];}_0x1c773d[_0xc4d2('0x18')](_0x21d677)[_0xc4d2('0x28')](_0x2519c1);};}exports['index']=function(_0x365e2f,_0x4179bf){var _0x278be5={},_0x2c622a={},_0x21582f={'count':0x0,'rows':[]};var _0x82ce8a=_['map'](db[_0xc4d2('0x29')][_0xc4d2('0x2a')],function(_0x7b9b2c){return{'name':_0x7b9b2c[_0xc4d2('0x2b')],'type':_0x7b9b2c[_0xc4d2('0x2c')][_0xc4d2('0x2d')]};});_0x2c622a[_0xc4d2('0x2e')]=_[_0xc4d2('0x2f')](_0x82ce8a,_0xc4d2('0x27'));_0x2c622a['query']=_[_0xc4d2('0x30')](_0x365e2f[_0xc4d2('0x31')]);_0x2c622a[_0xc4d2('0x32')]=_['intersection'](_0x2c622a[_0xc4d2('0x2e')],_0x2c622a[_0xc4d2('0x31')]);_0x278be5[_0xc4d2('0x33')]=_['intersection'](_0x2c622a['model'],qs[_0xc4d2('0x34')](_0x365e2f[_0xc4d2('0x31')][_0xc4d2('0x34')]));_0x278be5[_0xc4d2('0x33')]=_0x278be5[_0xc4d2('0x33')][_0xc4d2('0x35')]?_0x278be5[_0xc4d2('0x33')]:_0x2c622a[_0xc4d2('0x2e')];if(!_0x365e2f[_0xc4d2('0x31')]['hasOwnProperty'](_0xc4d2('0x36'))){_0x278be5[_0xc4d2('0x1a')]=qs[_0xc4d2('0x1a')](_0x365e2f[_0xc4d2('0x31')][_0xc4d2('0x1a')]);_0x278be5[_0xc4d2('0x1b')]=qs[_0xc4d2('0x1b')](_0x365e2f[_0xc4d2('0x31')][_0xc4d2('0x1b')]);}_0x278be5['order']=qs[_0xc4d2('0x37')](_0x365e2f['query']['sort']);_0x278be5[_0xc4d2('0x38')]=qs['filters'](_['pick'](_0x365e2f[_0xc4d2('0x31')],_0x2c622a['filters']),_0x82ce8a);if(_0x365e2f[_0xc4d2('0x31')][_0xc4d2('0x39')]){_0x278be5[_0xc4d2('0x38')]=_['merge'](_0x278be5['where'],{'$or':_[_0xc4d2('0x2f')](_0x82ce8a,function(_0x3cffba){if(_0x3cffba[_0xc4d2('0x2c')]!=='VIRTUAL'){var _0x280ff5={};_0x280ff5[_0x3cffba['name']]={'$like':'%'+_0x365e2f[_0xc4d2('0x31')]['filter']+'%'};return _0x280ff5;}})});}_0x278be5=_[_0xc4d2('0x3a')]({},_0x278be5,_0x365e2f[_0xc4d2('0x3b')]);var _0x3fe417={'where':_0x278be5[_0xc4d2('0x38')]};return db['AnalyticTreeReport'][_0xc4d2('0x1c')](_0x3fe417)[_0xc4d2('0x23')](function(_0x1b558d){_0x21582f['count']=_0x1b558d;if(_0x365e2f[_0xc4d2('0x31')]['includeAll']){_0x278be5[_0xc4d2('0x3c')]=[{'all':!![]}];}return db[_0xc4d2('0x29')][_0xc4d2('0x3d')](_0x278be5);})[_0xc4d2('0x23')](function(_0x10a2b8){_0x21582f[_0xc4d2('0x3e')]=_0x10a2b8;return _0x21582f;})[_0xc4d2('0x23')](respondWithFilteredResult(_0x4179bf,_0x278be5))[_0xc4d2('0x3f')](handleError(_0x4179bf,null));};exports[_0xc4d2('0x40')]=function(_0x5f4f30,_0x4ac92c){var _0x1ebffd={'raw':!![],'where':{'id':_0x5f4f30['params']['id']}},_0x27388f={};_0x27388f[_0xc4d2('0x2e')]=_['keys'](db[_0xc4d2('0x29')][_0xc4d2('0x2a')]);_0x27388f[_0xc4d2('0x31')]=_[_0xc4d2('0x30')](_0x5f4f30[_0xc4d2('0x31')]);_0x27388f[_0xc4d2('0x32')]=_[_0xc4d2('0x41')](_0x27388f[_0xc4d2('0x2e')],_0x27388f[_0xc4d2('0x31')]);_0x1ebffd[_0xc4d2('0x33')]=_['intersection'](_0x27388f[_0xc4d2('0x2e')],qs[_0xc4d2('0x34')](_0x5f4f30[_0xc4d2('0x31')][_0xc4d2('0x34')]));_0x1ebffd[_0xc4d2('0x33')]=_0x1ebffd[_0xc4d2('0x33')][_0xc4d2('0x35')]?_0x1ebffd['attributes']:_0x27388f[_0xc4d2('0x2e')];if(_0x5f4f30[_0xc4d2('0x31')][_0xc4d2('0x42')]){_0x1ebffd[_0xc4d2('0x3c')]=[{'all':!![]}];}_0x1ebffd=_['merge']({},_0x1ebffd,_0x5f4f30['options']);return db[_0xc4d2('0x29')]['find'](_0x1ebffd)['then'](handleEntityNotFound(_0x4ac92c,null))[_0xc4d2('0x23')](respondWithResult(_0x4ac92c,null))[_0xc4d2('0x3f')](handleError(_0x4ac92c,null));};exports[_0xc4d2('0x43')]=function(_0x5da56,_0x5a0943){return db['AnalyticTreeReport'][_0xc4d2('0x43')](_0x5da56['body'],{})['then'](respondWithResult(_0x5a0943,0xc9))[_0xc4d2('0x3f')](handleError(_0x5a0943,null));};exports[_0xc4d2('0x22')]=function(_0xba09f1,_0x2bf70f){if(_0xba09f1[_0xc4d2('0x44')]['id']){delete _0xba09f1[_0xc4d2('0x44')]['id'];}return db[_0xc4d2('0x29')][_0xc4d2('0x45')]({'where':{'id':_0xba09f1[_0xc4d2('0x46')]['id']}})[_0xc4d2('0x23')](handleEntityNotFound(_0x2bf70f,null))['then'](saveUpdates(_0xba09f1[_0xc4d2('0x44')],null))[_0xc4d2('0x23')](respondWithResult(_0x2bf70f,null))[_0xc4d2('0x3f')](handleError(_0x2bf70f,null));};exports[_0xc4d2('0x24')]=function(_0x410182,_0x58cc9e){return db[_0xc4d2('0x29')][_0xc4d2('0x45')]({'where':{'id':_0x410182['params']['id']}})[_0xc4d2('0x23')](handleEntityNotFound(_0x58cc9e,null))[_0xc4d2('0x23')](removeEntity(_0x58cc9e,null))[_0xc4d2('0x3f')](handleError(_0x58cc9e,null));};