f20eda0f6a35e097f881bbb7d36cde6c72d9e5ad
[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 _0xaa92=['intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','filters','pick','where','merge','type','VIRTUAL','filter','options','count','includeAll','include','AnalyticTreeReport','findAll','rows','catch','show','params','create','body','update','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','set','Content-Range','save','then','destroy','error','stack','name','send','map','rawAttributes','model','keys','query'];(function(_0x1a286f,_0x374d52){var _0x33e8b0=function(_0xc49f77){while(--_0xc49f77){_0x1a286f['push'](_0x1a286f['shift']());}};_0x33e8b0(++_0x374d52);}(_0xaa92,0x148));var _0x2aa9=function(_0x37e845,_0x219f9f){_0x37e845=_0x37e845-0x0;var _0x59e55b=_0xaa92[_0x37e845];return _0x59e55b;};'use strict';var emlformat=require(_0x2aa9('0x0'));var rimraf=require(_0x2aa9('0x1'));var zipdir=require(_0x2aa9('0x2'));var jsonpatch=require(_0x2aa9('0x3'));var rp=require(_0x2aa9('0x4'));var moment=require(_0x2aa9('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x2aa9('0x6'));var util=require(_0x2aa9('0x7'));var path=require(_0x2aa9('0x8'));var sox=require(_0x2aa9('0x9'));var csv=require(_0x2aa9('0xa'));var ejs=require(_0x2aa9('0xb'));var fs=require('fs');var fs_extra=require(_0x2aa9('0xc'));var _=require('lodash');var squel=require(_0x2aa9('0xd'));var crypto=require(_0x2aa9('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x2aa9('0xf'));var toCsv=require(_0x2aa9('0xa'));var querystring=require('querystring');var Papa=require(_0x2aa9('0x10'));var Redis=require('ioredis');var authService=require(_0x2aa9('0x11'));var qs=require(_0x2aa9('0x12'));var as=require(_0x2aa9('0x13'));var hardwareService=require(_0x2aa9('0x14'));var logger=require(_0x2aa9('0x15'))(_0x2aa9('0x16'));var utils=require('../../config/utils');var config=require(_0x2aa9('0x17'));var licenseUtil=require(_0x2aa9('0x18'));var db=require(_0x2aa9('0x19'))['db'];function respondWithStatusCode(_0x3e8a6a,_0x3edfc3){_0x3edfc3=_0x3edfc3||0xcc;return function(_0x36fe5f){if(_0x36fe5f){return _0x3e8a6a[_0x2aa9('0x1a')](_0x3edfc3);}return _0x3e8a6a[_0x2aa9('0x1b')](_0x3edfc3)[_0x2aa9('0x1c')]();};}function respondWithResult(_0x450e01,_0x9526f8){_0x9526f8=_0x9526f8||0xc8;return function(_0x4f5638){if(_0x4f5638){return _0x450e01[_0x2aa9('0x1b')](_0x9526f8)[_0x2aa9('0x1d')](_0x4f5638);}};}function respondWithFilteredResult(_0x52ae2a,_0x2977a9){return function(_0x53b33b){if(_0x53b33b){var _0x503ae7=typeof _0x2977a9[_0x2aa9('0x1e')]==='undefined'&&typeof _0x2977a9[_0x2aa9('0x1f')]===_0x2aa9('0x20');var _0x12aaa3=_0x53b33b['count'];var _0x4405e9=_0x503ae7?0x0:_0x2977a9[_0x2aa9('0x1e')];var _0x1639c0=_0x503ae7?_0x53b33b['count']:_0x2977a9['offset']+_0x2977a9[_0x2aa9('0x1f')];var _0x4fef9a;if(_0x1639c0>=_0x12aaa3){_0x1639c0=_0x12aaa3;_0x4fef9a=0xc8;}else{_0x4fef9a=0xce;}_0x52ae2a[_0x2aa9('0x1b')](_0x4fef9a);return _0x52ae2a[_0x2aa9('0x21')](_0x2aa9('0x22'),_0x4405e9+'-'+_0x1639c0+'/'+_0x12aaa3)[_0x2aa9('0x1d')](_0x53b33b);}return null;};}function patchUpdates(_0x316a33){return function(_0x38f411){try{jsonpatch['apply'](_0x38f411,_0x316a33,!![]);}catch(_0x229ff9){return BPromise['reject'](_0x229ff9);}return _0x38f411[_0x2aa9('0x23')]();};}function saveUpdates(_0x5e129a,_0x5f390a){return function(_0x20c6a2){if(_0x20c6a2){return _0x20c6a2['update'](_0x5e129a)[_0x2aa9('0x24')](function(_0x404343){return _0x404343;});}return null;};}function removeEntity(_0x26a1f1,_0x5bb7fd){return function(_0x344190){if(_0x344190){return _0x344190[_0x2aa9('0x25')]()[_0x2aa9('0x24')](function(){_0x26a1f1[_0x2aa9('0x1b')](0xcc)[_0x2aa9('0x1c')]();});}};}function handleEntityNotFound(_0x3f985f,_0x2f425c){return function(_0x146812){if(!_0x146812){_0x3f985f[_0x2aa9('0x1a')](0x194);}return _0x146812;};}function handleError(_0x3651aa,_0x331205){_0x331205=_0x331205||0x1f4;return function(_0x27e1fb){logger[_0x2aa9('0x26')](_0x27e1fb[_0x2aa9('0x27')]);if(_0x27e1fb[_0x2aa9('0x28')]){delete _0x27e1fb[_0x2aa9('0x28')];}_0x3651aa[_0x2aa9('0x1b')](_0x331205)[_0x2aa9('0x29')](_0x27e1fb);};}exports['index']=function(_0x960f88,_0xecca83){var _0x2ad2ee={},_0x172804={},_0x3e4d95={'count':0x0,'rows':[]};var _0x422bed=_[_0x2aa9('0x2a')](db['AnalyticTreeReport'][_0x2aa9('0x2b')],function(_0x1246ef){return{'name':_0x1246ef['fieldName'],'type':_0x1246ef['type']['key']};});_0x172804[_0x2aa9('0x2c')]=_[_0x2aa9('0x2a')](_0x422bed,_0x2aa9('0x28'));_0x172804['query']=_[_0x2aa9('0x2d')](_0x960f88[_0x2aa9('0x2e')]);_0x172804['filters']=_[_0x2aa9('0x2f')](_0x172804[_0x2aa9('0x2c')],_0x172804[_0x2aa9('0x2e')]);_0x2ad2ee[_0x2aa9('0x30')]=_[_0x2aa9('0x2f')](_0x172804[_0x2aa9('0x2c')],qs[_0x2aa9('0x31')](_0x960f88[_0x2aa9('0x2e')][_0x2aa9('0x31')]));_0x2ad2ee[_0x2aa9('0x30')]=_0x2ad2ee[_0x2aa9('0x30')][_0x2aa9('0x32')]?_0x2ad2ee['attributes']:_0x172804['model'];if(!_0x960f88[_0x2aa9('0x2e')][_0x2aa9('0x33')](_0x2aa9('0x34'))){_0x2ad2ee['limit']=qs[_0x2aa9('0x1f')](_0x960f88['query'][_0x2aa9('0x1f')]);_0x2ad2ee['offset']=qs['offset'](_0x960f88[_0x2aa9('0x2e')][_0x2aa9('0x1e')]);}_0x2ad2ee['order']=qs[_0x2aa9('0x35')](_0x960f88[_0x2aa9('0x2e')][_0x2aa9('0x35')]);_0x2ad2ee['where']=qs[_0x2aa9('0x36')](_[_0x2aa9('0x37')](_0x960f88[_0x2aa9('0x2e')],_0x172804[_0x2aa9('0x36')]),_0x422bed);if(_0x960f88[_0x2aa9('0x2e')]['filter']){_0x2ad2ee[_0x2aa9('0x38')]=_[_0x2aa9('0x39')](_0x2ad2ee[_0x2aa9('0x38')],{'$or':_[_0x2aa9('0x2a')](_0x422bed,function(_0x20ca83){if(_0x20ca83[_0x2aa9('0x3a')]!==_0x2aa9('0x3b')){var _0x5f3f0d={};_0x5f3f0d[_0x20ca83['name']]={'$like':'%'+_0x960f88['query'][_0x2aa9('0x3c')]+'%'};return _0x5f3f0d;}})});}_0x2ad2ee=_[_0x2aa9('0x39')]({},_0x2ad2ee,_0x960f88[_0x2aa9('0x3d')]);var _0x58b172={'where':_0x2ad2ee[_0x2aa9('0x38')]};return db['AnalyticTreeReport'][_0x2aa9('0x3e')](_0x58b172)[_0x2aa9('0x24')](function(_0x3ec752){_0x3e4d95[_0x2aa9('0x3e')]=_0x3ec752;if(_0x960f88['query'][_0x2aa9('0x3f')]){_0x2ad2ee[_0x2aa9('0x40')]=[{'all':!![]}];}return db[_0x2aa9('0x41')][_0x2aa9('0x42')](_0x2ad2ee);})[_0x2aa9('0x24')](function(_0x45206b){_0x3e4d95[_0x2aa9('0x43')]=_0x45206b;return _0x3e4d95;})[_0x2aa9('0x24')](respondWithFilteredResult(_0xecca83,_0x2ad2ee))[_0x2aa9('0x44')](handleError(_0xecca83,null));};exports[_0x2aa9('0x45')]=function(_0x196409,_0x4cd8aa){var _0x219b98={'raw':!![],'where':{'id':_0x196409[_0x2aa9('0x46')]['id']}},_0x332af5={};_0x332af5[_0x2aa9('0x2c')]=_[_0x2aa9('0x2d')](db[_0x2aa9('0x41')][_0x2aa9('0x2b')]);_0x332af5[_0x2aa9('0x2e')]=_['keys'](_0x196409[_0x2aa9('0x2e')]);_0x332af5[_0x2aa9('0x36')]=_[_0x2aa9('0x2f')](_0x332af5[_0x2aa9('0x2c')],_0x332af5['query']);_0x219b98[_0x2aa9('0x30')]=_[_0x2aa9('0x2f')](_0x332af5[_0x2aa9('0x2c')],qs['fields'](_0x196409[_0x2aa9('0x2e')][_0x2aa9('0x31')]));_0x219b98[_0x2aa9('0x30')]=_0x219b98[_0x2aa9('0x30')][_0x2aa9('0x32')]?_0x219b98['attributes']:_0x332af5[_0x2aa9('0x2c')];if(_0x196409[_0x2aa9('0x2e')]['includeAll']){_0x219b98[_0x2aa9('0x40')]=[{'all':!![]}];}_0x219b98=_[_0x2aa9('0x39')]({},_0x219b98,_0x196409['options']);return db[_0x2aa9('0x41')]['find'](_0x219b98)[_0x2aa9('0x24')](handleEntityNotFound(_0x4cd8aa,null))[_0x2aa9('0x24')](respondWithResult(_0x4cd8aa,null))[_0x2aa9('0x44')](handleError(_0x4cd8aa,null));};exports[_0x2aa9('0x47')]=function(_0x591d35,_0x48f5a7){return db[_0x2aa9('0x41')][_0x2aa9('0x47')](_0x591d35[_0x2aa9('0x48')],{})[_0x2aa9('0x24')](respondWithResult(_0x48f5a7,0xc9))[_0x2aa9('0x44')](handleError(_0x48f5a7,null));};exports[_0x2aa9('0x49')]=function(_0x4136b9,_0x2e512){if(_0x4136b9['body']['id']){delete _0x4136b9[_0x2aa9('0x48')]['id'];}return db[_0x2aa9('0x41')][_0x2aa9('0x4a')]({'where':{'id':_0x4136b9[_0x2aa9('0x46')]['id']}})['then'](handleEntityNotFound(_0x2e512,null))['then'](saveUpdates(_0x4136b9[_0x2aa9('0x48')],null))[_0x2aa9('0x24')](respondWithResult(_0x2e512,null))['catch'](handleError(_0x2e512,null));};exports[_0x2aa9('0x25')]=function(_0x1c336b,_0x1f588a){return db[_0x2aa9('0x41')][_0x2aa9('0x4a')]({'where':{'id':_0x1c336b[_0x2aa9('0x46')]['id']}})[_0x2aa9('0x24')](handleEntityNotFound(_0x1f588a,null))[_0x2aa9('0x24')](removeEntity(_0x1f588a,null))[_0x2aa9('0x44')](handleError(_0x1f588a,null));};