7510019bcecef16522ccf0ece342522902a51a4f
[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 _0xb918=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','sendStatus','status','json','offset','Content-Range','apply','reject','save','destroy','end','error','name','send','index','map','AnalyticTreeReport','rawAttributes','fieldName','key','model','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','filter','VIRTUAL','merge','options','count','then','includeAll','include','findAll','rows','catch','show','params','find','create','body','update','html-pdf','rimraf','zip-dir','fast-json-patch','moment','mustache','path','sox','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x14506b,_0x2aa81a){var _0x62dbf7=function(_0x3e8428){while(--_0x3e8428){_0x14506b['push'](_0x14506b['shift']());}};_0x62dbf7(++_0x2aa81a);}(_0xb918,0x7c));var _0x8b91=function(_0x14f109,_0x47866a){_0x14f109=_0x14f109-0x0;var _0x7d66dc=_0xb918[_0x14f109];return _0x7d66dc;};'use strict';var pdf=require(_0x8b91('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x8b91('0x1'));var zipdir=require(_0x8b91('0x2'));var jsonpatch=require(_0x8b91('0x3'));var rp=require('request-promise');var moment=require(_0x8b91('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x8b91('0x5'));var util=require('util');var path=require(_0x8b91('0x6'));var sox=require(_0x8b91('0x7'));var csv=require(_0x8b91('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x8b91('0x9'));var squel=require('squel');var crypto=require(_0x8b91('0xa'));var jsforce=require(_0x8b91('0xb'));var deskjs=require(_0x8b91('0xc'));var toCsv=require(_0x8b91('0x8'));var querystring=require(_0x8b91('0xd'));var Papa=require(_0x8b91('0xe'));var Redis=require(_0x8b91('0xf'));var authService=require(_0x8b91('0x10'));var qs=require(_0x8b91('0x11'));var as=require(_0x8b91('0x12'));var hardwareService=require(_0x8b91('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0x8b91('0x14'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5c6503,_0xf0dee6){_0xf0dee6=_0xf0dee6||0xcc;return function(_0x5dc154){if(_0x5dc154){return _0x5c6503[_0x8b91('0x15')](_0xf0dee6);}return _0x5c6503['status'](_0xf0dee6)['end']();};}function respondWithResult(_0x231c97,_0x370e5f){_0x370e5f=_0x370e5f||0xc8;return function(_0x568568){if(_0x568568){return _0x231c97[_0x8b91('0x16')](_0x370e5f)[_0x8b91('0x17')](_0x568568);}};}function respondWithFilteredResult(_0x13cafe,_0x29b968){return function(_0x421281){if(_0x421281){var _0x26cc8b=_0x421281['count'],_0x229a2d=_0x29b968[_0x8b91('0x18')],_0x54f889=_0x29b968['offset']+_0x29b968['limit'],_0x1e999b;if(_0x54f889>=_0x26cc8b){_0x54f889=_0x26cc8b;_0x1e999b=0xc8;}else{_0x1e999b=0xce;}_0x13cafe[_0x8b91('0x16')](_0x1e999b);return _0x13cafe['set'](_0x8b91('0x19'),_0x229a2d+'-'+_0x54f889+'/'+_0x26cc8b)[_0x8b91('0x17')](_0x421281);}return null;};}function patchUpdates(_0x1ad02a){return function(_0x310b5b){try{jsonpatch[_0x8b91('0x1a')](_0x310b5b,_0x1ad02a,!![]);}catch(_0x369f37){return BPromise[_0x8b91('0x1b')](_0x369f37);}return _0x310b5b[_0x8b91('0x1c')]();};}function saveUpdates(_0xea6634,_0x1f7dcb){return function(_0x108490){if(_0x108490){return _0x108490['update'](_0xea6634)['then'](function(_0x542210){return _0x542210;});}return null;};}function removeEntity(_0x2e0a92,_0x2cf84f){return function(_0x436d1b){if(_0x436d1b){return _0x436d1b[_0x8b91('0x1d')]()['then'](function(){_0x2e0a92[_0x8b91('0x16')](0xcc)[_0x8b91('0x1e')]();});}};}function handleEntityNotFound(_0x3acf1f,_0x2d3300){return function(_0x2c66d1){if(!_0x2c66d1){_0x3acf1f[_0x8b91('0x15')](0x194);}return _0x2c66d1;};}function handleError(_0x3eaa89,_0x18717a){_0x18717a=_0x18717a||0x1f4;return function(_0x3fc329){logger[_0x8b91('0x1f')](_0x3fc329['stack']);if(_0x3fc329['name']){delete _0x3fc329[_0x8b91('0x20')];}_0x3eaa89[_0x8b91('0x16')](_0x18717a)[_0x8b91('0x21')](_0x3fc329);};}exports[_0x8b91('0x22')]=function(_0x54f593,_0x8b9720){var _0xd2444b={},_0x41a381={},_0x4d3bfb={'count':0x0,'rows':[]};var _0x194ac1=_[_0x8b91('0x23')](db[_0x8b91('0x24')][_0x8b91('0x25')],function(_0x15c936){return{'name':_0x15c936[_0x8b91('0x26')],'type':_0x15c936['type'][_0x8b91('0x27')]};});_0x41a381[_0x8b91('0x28')]=_['map'](_0x194ac1,_0x8b91('0x20'));_0x41a381['query']=_[_0x8b91('0x29')](_0x54f593['query']);_0x41a381[_0x8b91('0x2a')]=_[_0x8b91('0x2b')](_0x41a381['model'],_0x41a381[_0x8b91('0x2c')]);_0xd2444b[_0x8b91('0x2d')]=_[_0x8b91('0x2b')](_0x41a381[_0x8b91('0x28')],qs[_0x8b91('0x2e')](_0x54f593[_0x8b91('0x2c')][_0x8b91('0x2e')]));_0xd2444b['attributes']=_0xd2444b[_0x8b91('0x2d')][_0x8b91('0x2f')]?_0xd2444b['attributes']:_0x41a381['model'];if(!_0x54f593[_0x8b91('0x2c')][_0x8b91('0x30')](_0x8b91('0x31'))){_0xd2444b[_0x8b91('0x32')]=qs[_0x8b91('0x32')](_0x54f593['query'][_0x8b91('0x32')]);_0xd2444b[_0x8b91('0x18')]=qs[_0x8b91('0x18')](_0x54f593[_0x8b91('0x2c')][_0x8b91('0x18')]);}_0xd2444b[_0x8b91('0x33')]=qs[_0x8b91('0x34')](_0x54f593['query'][_0x8b91('0x34')]);_0xd2444b[_0x8b91('0x35')]=qs[_0x8b91('0x2a')](_['pick'](_0x54f593['query'],_0x41a381[_0x8b91('0x2a')]),_0x194ac1);if(_0x54f593[_0x8b91('0x2c')][_0x8b91('0x36')]){_0xd2444b[_0x8b91('0x35')]=_['merge'](_0xd2444b[_0x8b91('0x35')],{'$or':_[_0x8b91('0x23')](_0x194ac1,function(_0x3c2ffb){if(_0x3c2ffb['type']!==_0x8b91('0x37')){var _0x3c6ac2={};_0x3c6ac2[_0x3c2ffb['name']]={'$like':'%'+_0x54f593['query']['filter']+'%'};return _0x3c6ac2;}})});}_0xd2444b=_[_0x8b91('0x38')]({},_0xd2444b,_0x54f593[_0x8b91('0x39')]);var _0x4ba15a={'where':_0xd2444b[_0x8b91('0x35')]};return db['AnalyticTreeReport'][_0x8b91('0x3a')](_0x4ba15a)[_0x8b91('0x3b')](function(_0x3186a7){_0x4d3bfb[_0x8b91('0x3a')]=_0x3186a7;if(_0x54f593[_0x8b91('0x2c')][_0x8b91('0x3c')]){_0xd2444b[_0x8b91('0x3d')]=[{'all':!![]}];}return db[_0x8b91('0x24')][_0x8b91('0x3e')](_0xd2444b);})['then'](function(_0x1bc9ab){_0x4d3bfb[_0x8b91('0x3f')]=_0x1bc9ab;return _0x4d3bfb;})[_0x8b91('0x3b')](respondWithFilteredResult(_0x8b9720,_0xd2444b))[_0x8b91('0x40')](handleError(_0x8b9720,null));};exports[_0x8b91('0x41')]=function(_0x37c706,_0x553e61){var _0x38abfb={'raw':!![],'where':{'id':_0x37c706[_0x8b91('0x42')]['id']}},_0x4929e5={};_0x4929e5[_0x8b91('0x28')]=_[_0x8b91('0x29')](db[_0x8b91('0x24')]['rawAttributes']);_0x4929e5[_0x8b91('0x2c')]=_[_0x8b91('0x29')](_0x37c706[_0x8b91('0x2c')]);_0x4929e5['filters']=_[_0x8b91('0x2b')](_0x4929e5[_0x8b91('0x28')],_0x4929e5['query']);_0x38abfb['attributes']=_[_0x8b91('0x2b')](_0x4929e5[_0x8b91('0x28')],qs['fields'](_0x37c706[_0x8b91('0x2c')]['fields']));_0x38abfb['attributes']=_0x38abfb[_0x8b91('0x2d')][_0x8b91('0x2f')]?_0x38abfb['attributes']:_0x4929e5[_0x8b91('0x28')];if(_0x37c706['query'][_0x8b91('0x3c')]){_0x38abfb[_0x8b91('0x3d')]=[{'all':!![]}];}_0x38abfb=_[_0x8b91('0x38')]({},_0x38abfb,_0x37c706[_0x8b91('0x39')]);return db[_0x8b91('0x24')][_0x8b91('0x43')](_0x38abfb)[_0x8b91('0x3b')](handleEntityNotFound(_0x553e61,null))[_0x8b91('0x3b')](respondWithResult(_0x553e61,null))[_0x8b91('0x40')](handleError(_0x553e61,null));};exports['create']=function(_0x493bd9,_0x42ea68){return db[_0x8b91('0x24')][_0x8b91('0x44')](_0x493bd9[_0x8b91('0x45')],{})[_0x8b91('0x3b')](respondWithResult(_0x42ea68,0xc9))[_0x8b91('0x40')](handleError(_0x42ea68,null));};exports[_0x8b91('0x46')]=function(_0x412692,_0xfe058){if(_0x412692['body']['id']){delete _0x412692[_0x8b91('0x45')]['id'];}return db[_0x8b91('0x24')][_0x8b91('0x43')]({'where':{'id':_0x412692[_0x8b91('0x42')]['id']}})['then'](handleEntityNotFound(_0xfe058,null))[_0x8b91('0x3b')](saveUpdates(_0x412692[_0x8b91('0x45')],null))[_0x8b91('0x3b')](respondWithResult(_0xfe058,null))['catch'](handleError(_0xfe058,null));};exports[_0x8b91('0x1d')]=function(_0x248284,_0x4318c2){return db[_0x8b91('0x24')]['find']({'where':{'id':_0x248284['params']['id']}})[_0x8b91('0x3b')](handleEntityNotFound(_0x4318c2,null))[_0x8b91('0x3b')](removeEntity(_0x4318c2,null))[_0x8b91('0x40')](handleError(_0x4318c2,null));};