f1fb4b843a56c5be855a6f3ebdab349bb6789c18
[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 _0x7168=['ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','offset','undefined','count','limit','Content-Range','json','apply','save','then','end','sendStatus','error','name','send','index','AnalyticTreeReport','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','rawAttributes','keys','find','create','body','params','destroy','eml-format','rimraf','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','papaparse'];(function(_0x247d58,_0x599006){var _0xd28d2e=function(_0x4bdd55){while(--_0x4bdd55){_0x247d58['push'](_0x247d58['shift']());}};_0xd28d2e(++_0x599006);}(_0x7168,0x1ea));var _0x8716=function(_0x4dec6f,_0x5c679b){_0x4dec6f=_0x4dec6f-0x0;var _0x84fec7=_0x7168[_0x4dec6f];return _0x84fec7;};'use strict';var emlformat=require(_0x8716('0x0'));var rimraf=require(_0x8716('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x8716('0x2'));var moment=require(_0x8716('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x8716('0x4'));var util=require(_0x8716('0x5'));var path=require('path');var sox=require(_0x8716('0x6'));var csv=require(_0x8716('0x7'));var ejs=require(_0x8716('0x8'));var fs=require('fs');var fs_extra=require(_0x8716('0x9'));var _=require('lodash');var squel=require(_0x8716('0xa'));var crypto=require(_0x8716('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x8716('0xc'));var toCsv=require(_0x8716('0x7'));var querystring=require('querystring');var Papa=require(_0x8716('0xd'));var Redis=require(_0x8716('0xe'));var authService=require(_0x8716('0xf'));var qs=require(_0x8716('0x10'));var as=require(_0x8716('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8716('0x12'))(_0x8716('0x13'));var utils=require(_0x8716('0x14'));var config=require(_0x8716('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x8716('0x16'))['db'];function respondWithStatusCode(_0x25143e,_0xb39877){_0xb39877=_0xb39877||0xcc;return function(_0x17bc19){if(_0x17bc19){return _0x25143e['sendStatus'](_0xb39877);}return _0x25143e[_0x8716('0x17')](_0xb39877)['end']();};}function respondWithResult(_0x1c601a,_0x3ec4a5){_0x3ec4a5=_0x3ec4a5||0xc8;return function(_0x57a9bc){if(_0x57a9bc){return _0x1c601a[_0x8716('0x17')](_0x3ec4a5)['json'](_0x57a9bc);}};}function respondWithFilteredResult(_0x39c462,_0x55314d){return function(_0x59c233){if(_0x59c233){var _0x9c54bc=typeof _0x55314d[_0x8716('0x18')]===_0x8716('0x19')&&typeof _0x55314d['limit']===_0x8716('0x19');var _0x4ee1c8=_0x59c233[_0x8716('0x1a')];var _0x49cb83=_0x9c54bc?0x0:_0x55314d[_0x8716('0x18')];var _0x32ab8f=_0x9c54bc?_0x59c233['count']:_0x55314d[_0x8716('0x18')]+_0x55314d[_0x8716('0x1b')];var _0x48b05d;if(_0x32ab8f>=_0x4ee1c8){_0x32ab8f=_0x4ee1c8;_0x48b05d=0xc8;}else{_0x48b05d=0xce;}_0x39c462[_0x8716('0x17')](_0x48b05d);return _0x39c462['set'](_0x8716('0x1c'),_0x49cb83+'-'+_0x32ab8f+'/'+_0x4ee1c8)[_0x8716('0x1d')](_0x59c233);}return null;};}function patchUpdates(_0x53b021){return function(_0x3cc87c){try{jsonpatch[_0x8716('0x1e')](_0x3cc87c,_0x53b021,!![]);}catch(_0x4010db){return BPromise['reject'](_0x4010db);}return _0x3cc87c[_0x8716('0x1f')]();};}function saveUpdates(_0x2f2654,_0x124bca){return function(_0x5c7f73){if(_0x5c7f73){return _0x5c7f73['update'](_0x2f2654)[_0x8716('0x20')](function(_0x46aff6){return _0x46aff6;});}return null;};}function removeEntity(_0xed545b,_0x29e097){return function(_0x406e7c){if(_0x406e7c){return _0x406e7c['destroy']()[_0x8716('0x20')](function(){_0xed545b['status'](0xcc)[_0x8716('0x21')]();});}};}function handleEntityNotFound(_0x1ee155,_0x153563){return function(_0x168888){if(!_0x168888){_0x1ee155[_0x8716('0x22')](0x194);}return _0x168888;};}function handleError(_0x3a262b,_0x4c8920){_0x4c8920=_0x4c8920||0x1f4;return function(_0x5caf9c){logger[_0x8716('0x23')](_0x5caf9c['stack']);if(_0x5caf9c[_0x8716('0x24')]){delete _0x5caf9c['name'];}_0x3a262b[_0x8716('0x17')](_0x4c8920)[_0x8716('0x25')](_0x5caf9c);};}exports[_0x8716('0x26')]=function(_0x483539,_0x26aeb3){var _0x322a43={},_0x45516b={},_0x4ca94a={'count':0x0,'rows':[]};var _0x21fd09=_['map'](db[_0x8716('0x27')]['rawAttributes'],function(_0x2f8cbb){return{'name':_0x2f8cbb['fieldName'],'type':_0x2f8cbb[_0x8716('0x28')][_0x8716('0x29')]};});_0x45516b[_0x8716('0x2a')]=_[_0x8716('0x2b')](_0x21fd09,'name');_0x45516b[_0x8716('0x2c')]=_['keys'](_0x483539[_0x8716('0x2c')]);_0x45516b[_0x8716('0x2d')]=_[_0x8716('0x2e')](_0x45516b[_0x8716('0x2a')],_0x45516b[_0x8716('0x2c')]);_0x322a43[_0x8716('0x2f')]=_['intersection'](_0x45516b[_0x8716('0x2a')],qs[_0x8716('0x30')](_0x483539[_0x8716('0x2c')][_0x8716('0x30')]));_0x322a43[_0x8716('0x2f')]=_0x322a43['attributes'][_0x8716('0x31')]?_0x322a43[_0x8716('0x2f')]:_0x45516b[_0x8716('0x2a')];if(!_0x483539[_0x8716('0x2c')][_0x8716('0x32')](_0x8716('0x33'))){_0x322a43[_0x8716('0x1b')]=qs['limit'](_0x483539['query'][_0x8716('0x1b')]);_0x322a43[_0x8716('0x18')]=qs[_0x8716('0x18')](_0x483539[_0x8716('0x2c')][_0x8716('0x18')]);}_0x322a43[_0x8716('0x34')]=qs['sort'](_0x483539[_0x8716('0x2c')][_0x8716('0x35')]);_0x322a43[_0x8716('0x36')]=qs[_0x8716('0x2d')](_['pick'](_0x483539['query'],_0x45516b['filters']),_0x21fd09);if(_0x483539[_0x8716('0x2c')][_0x8716('0x37')]){_0x322a43['where']=_[_0x8716('0x38')](_0x322a43['where'],{'$or':_[_0x8716('0x2b')](_0x21fd09,function(_0x16e732){if(_0x16e732[_0x8716('0x28')]!==_0x8716('0x39')){var _0x43b122={};_0x43b122[_0x16e732[_0x8716('0x24')]]={'$like':'%'+_0x483539[_0x8716('0x2c')]['filter']+'%'};return _0x43b122;}})});}_0x322a43=_[_0x8716('0x38')]({},_0x322a43,_0x483539[_0x8716('0x3a')]);var _0x5ef351={'where':_0x322a43['where']};return db[_0x8716('0x27')][_0x8716('0x1a')](_0x5ef351)[_0x8716('0x20')](function(_0x35201d){_0x4ca94a[_0x8716('0x1a')]=_0x35201d;if(_0x483539[_0x8716('0x2c')][_0x8716('0x3b')]){_0x322a43[_0x8716('0x3c')]=[{'all':!![]}];}return db[_0x8716('0x27')][_0x8716('0x3d')](_0x322a43);})[_0x8716('0x20')](function(_0x59876e){_0x4ca94a[_0x8716('0x3e')]=_0x59876e;return _0x4ca94a;})[_0x8716('0x20')](respondWithFilteredResult(_0x26aeb3,_0x322a43))[_0x8716('0x3f')](handleError(_0x26aeb3,null));};exports[_0x8716('0x40')]=function(_0x5d4e5a,_0x3af137){var _0x4c9b39={'raw':!![],'where':{'id':_0x5d4e5a['params']['id']}},_0x2522be={};_0x2522be[_0x8716('0x2a')]=_['keys'](db['AnalyticTreeReport'][_0x8716('0x41')]);_0x2522be[_0x8716('0x2c')]=_[_0x8716('0x42')](_0x5d4e5a['query']);_0x2522be[_0x8716('0x2d')]=_[_0x8716('0x2e')](_0x2522be[_0x8716('0x2a')],_0x2522be[_0x8716('0x2c')]);_0x4c9b39[_0x8716('0x2f')]=_[_0x8716('0x2e')](_0x2522be[_0x8716('0x2a')],qs[_0x8716('0x30')](_0x5d4e5a[_0x8716('0x2c')][_0x8716('0x30')]));_0x4c9b39['attributes']=_0x4c9b39[_0x8716('0x2f')][_0x8716('0x31')]?_0x4c9b39[_0x8716('0x2f')]:_0x2522be['model'];if(_0x5d4e5a[_0x8716('0x2c')][_0x8716('0x3b')]){_0x4c9b39[_0x8716('0x3c')]=[{'all':!![]}];}_0x4c9b39=_[_0x8716('0x38')]({},_0x4c9b39,_0x5d4e5a[_0x8716('0x3a')]);return db[_0x8716('0x27')][_0x8716('0x43')](_0x4c9b39)[_0x8716('0x20')](handleEntityNotFound(_0x3af137,null))[_0x8716('0x20')](respondWithResult(_0x3af137,null))[_0x8716('0x3f')](handleError(_0x3af137,null));};exports[_0x8716('0x44')]=function(_0x5aaca1,_0x26ffd7){return db[_0x8716('0x27')][_0x8716('0x44')](_0x5aaca1[_0x8716('0x45')],{})[_0x8716('0x20')](respondWithResult(_0x26ffd7,0xc9))[_0x8716('0x3f')](handleError(_0x26ffd7,null));};exports['update']=function(_0x252cf1,_0xfd7df){if(_0x252cf1[_0x8716('0x45')]['id']){delete _0x252cf1[_0x8716('0x45')]['id'];}return db[_0x8716('0x27')][_0x8716('0x43')]({'where':{'id':_0x252cf1[_0x8716('0x46')]['id']}})[_0x8716('0x20')](handleEntityNotFound(_0xfd7df,null))[_0x8716('0x20')](saveUpdates(_0x252cf1['body'],null))['then'](respondWithResult(_0xfd7df,null))[_0x8716('0x3f')](handleError(_0xfd7df,null));};exports[_0x8716('0x47')]=function(_0x3213f4,_0x5a3d5e){return db[_0x8716('0x27')][_0x8716('0x43')]({'where':{'id':_0x3213f4['params']['id']}})[_0x8716('0x20')](handleEntityNotFound(_0x5a3d5e,null))[_0x8716('0x20')](removeEntity(_0x5a3d5e,null))[_0x8716('0x3f')](handleError(_0x5a3d5e,null));};