ee249fb228c0516c6b6baa3a12f9c75edaece997
[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 _0x7ee6=['api','../../config/utils','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','AnalyticTreeReport','rawAttributes','type','key','query','filters','intersection','attributes','fields','length','model','nolimit','order','sort','where','pick','VIRTUAL','filter','merge','includeAll','catch','show','params','include','find','create','body','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0x2584c0,_0xb31a75){var _0x314c0b=function(_0x539f7d){while(--_0x539f7d){_0x2584c0['push'](_0x2584c0['shift']());}};_0x314c0b(++_0xb31a75);}(_0x7ee6,0x108));var _0x67ee=function(_0x1542df,_0x363d0d){_0x1542df=_0x1542df-0x0;var _0x338f0b=_0x7ee6[_0x1542df];return _0x338f0b;};'use strict';var emlformat=require(_0x67ee('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x67ee('0x1'));var jsonpatch=require(_0x67ee('0x2'));var rp=require(_0x67ee('0x3'));var moment=require('moment');var BPromise=require(_0x67ee('0x4'));var Mustache=require(_0x67ee('0x5'));var util=require('util');var path=require(_0x67ee('0x6'));var sox=require(_0x67ee('0x7'));var csv=require(_0x67ee('0x8'));var ejs=require(_0x67ee('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x67ee('0xa'));var squel=require(_0x67ee('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x67ee('0xc'));var toCsv=require(_0x67ee('0x8'));var querystring=require(_0x67ee('0xd'));var Papa=require(_0x67ee('0xe'));var Redis=require(_0x67ee('0xf'));var authService=require(_0x67ee('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x67ee('0x11'));var hardwareService=require(_0x67ee('0x12'));var logger=require(_0x67ee('0x13'))(_0x67ee('0x14'));var utils=require(_0x67ee('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x427bc9,_0x39e31d){_0x39e31d=_0x39e31d||0xcc;return function(_0x3f112){if(_0x3f112){return _0x427bc9[_0x67ee('0x16')](_0x39e31d);}return _0x427bc9[_0x67ee('0x17')](_0x39e31d)[_0x67ee('0x18')]();};}function respondWithResult(_0x2c9b64,_0xa1a8f8){_0xa1a8f8=_0xa1a8f8||0xc8;return function(_0xb62125){if(_0xb62125){return _0x2c9b64[_0x67ee('0x17')](_0xa1a8f8)[_0x67ee('0x19')](_0xb62125);}};}function respondWithFilteredResult(_0x4a48d3,_0x480a11){return function(_0x23b829){if(_0x23b829){var _0xd4cd3c=typeof _0x480a11[_0x67ee('0x1a')]===_0x67ee('0x1b')&&typeof _0x480a11[_0x67ee('0x1c')]===_0x67ee('0x1b');var _0x2134c3=_0x23b829[_0x67ee('0x1d')];var _0x52df4e=_0xd4cd3c?0x0:_0x480a11[_0x67ee('0x1a')];var _0x2490c2=_0xd4cd3c?_0x23b829[_0x67ee('0x1d')]:_0x480a11[_0x67ee('0x1a')]+_0x480a11['limit'];var _0x158596;if(_0x2490c2>=_0x2134c3){_0x2490c2=_0x2134c3;_0x158596=0xc8;}else{_0x158596=0xce;}_0x4a48d3['status'](_0x158596);return _0x4a48d3[_0x67ee('0x1e')](_0x67ee('0x1f'),_0x52df4e+'-'+_0x2490c2+'/'+_0x2134c3)[_0x67ee('0x19')](_0x23b829);}return null;};}function patchUpdates(_0x4ac07f){return function(_0x1d2a58){try{jsonpatch[_0x67ee('0x20')](_0x1d2a58,_0x4ac07f,!![]);}catch(_0x18cc3e){return BPromise[_0x67ee('0x21')](_0x18cc3e);}return _0x1d2a58[_0x67ee('0x22')]();};}function saveUpdates(_0x4ec461,_0x45c468){return function(_0x5729a0){if(_0x5729a0){return _0x5729a0[_0x67ee('0x23')](_0x4ec461)[_0x67ee('0x24')](function(_0x40e731){return _0x40e731;});}return null;};}function removeEntity(_0x3f80af,_0x449706){return function(_0x1338a7){if(_0x1338a7){return _0x1338a7[_0x67ee('0x25')]()[_0x67ee('0x24')](function(){_0x3f80af[_0x67ee('0x17')](0xcc)[_0x67ee('0x18')]();});}};}function handleEntityNotFound(_0x51fb5f,_0x2ba5b3){return function(_0x28056a){if(!_0x28056a){_0x51fb5f[_0x67ee('0x16')](0x194);}return _0x28056a;};}function handleError(_0x268989,_0x586b1b){_0x586b1b=_0x586b1b||0x1f4;return function(_0x31565f){logger[_0x67ee('0x26')](_0x31565f[_0x67ee('0x27')]);if(_0x31565f[_0x67ee('0x28')]){delete _0x31565f[_0x67ee('0x28')];}_0x268989[_0x67ee('0x17')](_0x586b1b)[_0x67ee('0x29')](_0x31565f);};}exports[_0x67ee('0x2a')]=function(_0xe0cb5b,_0x5898a8){var _0x2fe744={},_0x4660d7={},_0x3faae2={'count':0x0,'rows':[]};var _0x4f74b9=_[_0x67ee('0x2b')](db[_0x67ee('0x2c')][_0x67ee('0x2d')],function(_0x2a2387){return{'name':_0x2a2387['fieldName'],'type':_0x2a2387[_0x67ee('0x2e')][_0x67ee('0x2f')]};});_0x4660d7['model']=_[_0x67ee('0x2b')](_0x4f74b9,_0x67ee('0x28'));_0x4660d7[_0x67ee('0x30')]=_['keys'](_0xe0cb5b[_0x67ee('0x30')]);_0x4660d7[_0x67ee('0x31')]=_[_0x67ee('0x32')](_0x4660d7['model'],_0x4660d7[_0x67ee('0x30')]);_0x2fe744[_0x67ee('0x33')]=_[_0x67ee('0x32')](_0x4660d7['model'],qs[_0x67ee('0x34')](_0xe0cb5b['query'][_0x67ee('0x34')]));_0x2fe744[_0x67ee('0x33')]=_0x2fe744[_0x67ee('0x33')][_0x67ee('0x35')]?_0x2fe744[_0x67ee('0x33')]:_0x4660d7[_0x67ee('0x36')];if(!_0xe0cb5b[_0x67ee('0x30')]['hasOwnProperty'](_0x67ee('0x37'))){_0x2fe744[_0x67ee('0x1c')]=qs[_0x67ee('0x1c')](_0xe0cb5b[_0x67ee('0x30')][_0x67ee('0x1c')]);_0x2fe744[_0x67ee('0x1a')]=qs[_0x67ee('0x1a')](_0xe0cb5b[_0x67ee('0x30')][_0x67ee('0x1a')]);}_0x2fe744[_0x67ee('0x38')]=qs[_0x67ee('0x39')](_0xe0cb5b[_0x67ee('0x30')][_0x67ee('0x39')]);_0x2fe744[_0x67ee('0x3a')]=qs[_0x67ee('0x31')](_[_0x67ee('0x3b')](_0xe0cb5b[_0x67ee('0x30')],_0x4660d7[_0x67ee('0x31')]),_0x4f74b9);if(_0xe0cb5b['query']['filter']){_0x2fe744[_0x67ee('0x3a')]=_['merge'](_0x2fe744['where'],{'$or':_[_0x67ee('0x2b')](_0x4f74b9,function(_0x192b74){if(_0x192b74['type']!==_0x67ee('0x3c')){var _0x3c552f={};_0x3c552f[_0x192b74[_0x67ee('0x28')]]={'$like':'%'+_0xe0cb5b['query'][_0x67ee('0x3d')]+'%'};return _0x3c552f;}})});}_0x2fe744=_[_0x67ee('0x3e')]({},_0x2fe744,_0xe0cb5b['options']);var _0x361eaf={'where':_0x2fe744[_0x67ee('0x3a')]};return db[_0x67ee('0x2c')]['count'](_0x361eaf)[_0x67ee('0x24')](function(_0x1a7844){_0x3faae2[_0x67ee('0x1d')]=_0x1a7844;if(_0xe0cb5b[_0x67ee('0x30')][_0x67ee('0x3f')]){_0x2fe744['include']=[{'all':!![]}];}return db['AnalyticTreeReport']['findAll'](_0x2fe744);})[_0x67ee('0x24')](function(_0x29a880){_0x3faae2['rows']=_0x29a880;return _0x3faae2;})['then'](respondWithFilteredResult(_0x5898a8,_0x2fe744))[_0x67ee('0x40')](handleError(_0x5898a8,null));};exports[_0x67ee('0x41')]=function(_0x28d5d1,_0x395367){var _0x2c5780={'raw':!![],'where':{'id':_0x28d5d1[_0x67ee('0x42')]['id']}},_0x198c9e={};_0x198c9e[_0x67ee('0x36')]=_['keys'](db[_0x67ee('0x2c')][_0x67ee('0x2d')]);_0x198c9e[_0x67ee('0x30')]=_['keys'](_0x28d5d1['query']);_0x198c9e['filters']=_[_0x67ee('0x32')](_0x198c9e['model'],_0x198c9e[_0x67ee('0x30')]);_0x2c5780[_0x67ee('0x33')]=_[_0x67ee('0x32')](_0x198c9e[_0x67ee('0x36')],qs[_0x67ee('0x34')](_0x28d5d1[_0x67ee('0x30')][_0x67ee('0x34')]));_0x2c5780[_0x67ee('0x33')]=_0x2c5780[_0x67ee('0x33')][_0x67ee('0x35')]?_0x2c5780[_0x67ee('0x33')]:_0x198c9e[_0x67ee('0x36')];if(_0x28d5d1[_0x67ee('0x30')][_0x67ee('0x3f')]){_0x2c5780[_0x67ee('0x43')]=[{'all':!![]}];}_0x2c5780=_[_0x67ee('0x3e')]({},_0x2c5780,_0x28d5d1['options']);return db['AnalyticTreeReport'][_0x67ee('0x44')](_0x2c5780)['then'](handleEntityNotFound(_0x395367,null))[_0x67ee('0x24')](respondWithResult(_0x395367,null))[_0x67ee('0x40')](handleError(_0x395367,null));};exports['create']=function(_0x27eeb2,_0x461025){return db[_0x67ee('0x2c')][_0x67ee('0x45')](_0x27eeb2[_0x67ee('0x46')],{})['then'](respondWithResult(_0x461025,0xc9))[_0x67ee('0x40')](handleError(_0x461025,null));};exports['update']=function(_0xd1d1c9,_0x4581a6){if(_0xd1d1c9[_0x67ee('0x46')]['id']){delete _0xd1d1c9[_0x67ee('0x46')]['id'];}return db[_0x67ee('0x2c')][_0x67ee('0x44')]({'where':{'id':_0xd1d1c9[_0x67ee('0x42')]['id']}})['then'](handleEntityNotFound(_0x4581a6,null))[_0x67ee('0x24')](saveUpdates(_0xd1d1c9[_0x67ee('0x46')],null))['then'](respondWithResult(_0x4581a6,null))[_0x67ee('0x40')](handleError(_0x4581a6,null));};exports['destroy']=function(_0xda957b,_0x5455d2){return db['AnalyticTreeReport'][_0x67ee('0x44')]({'where':{'id':_0xda957b[_0x67ee('0x42')]['id']}})['then'](handleEntityNotFound(_0x5455d2,null))[_0x67ee('0x24')](removeEntity(_0x5455d2,null))[_0x67ee('0x40')](handleError(_0x5455d2,null));};