a9a09f3d8f0d52b7a650fb4020689a4b05b3846a
[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 _0xaa50=['squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','then','sendStatus','error','stack','name','send','index','map','AnalyticTreeReport','fieldName','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','type','options','includeAll','include','findAll','rows','catch','params','rawAttributes','create','body','update','find','destroy','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash'];(function(_0x313cbd,_0x5b60f9){var _0x376586=function(_0x571a0e){while(--_0x571a0e){_0x313cbd['push'](_0x313cbd['shift']());}};_0x376586(++_0x5b60f9);}(_0xaa50,0x1c2));var _0x0aa5=function(_0x56a715,_0x1ba2c3){_0x56a715=_0x56a715-0x0;var _0x12e87b=_0xaa50[_0x56a715];return _0x12e87b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0aa5('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0aa5('0x1'));var moment=require(_0x0aa5('0x2'));var BPromise=require(_0x0aa5('0x3'));var Mustache=require(_0x0aa5('0x4'));var util=require(_0x0aa5('0x5'));var path=require(_0x0aa5('0x6'));var sox=require(_0x0aa5('0x7'));var csv=require(_0x0aa5('0x8'));var ejs=require(_0x0aa5('0x9'));var fs=require('fs');var fs_extra=require(_0x0aa5('0xa'));var _=require(_0x0aa5('0xb'));var squel=require(_0x0aa5('0xc'));var crypto=require('crypto');var jsforce=require(_0x0aa5('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x0aa5('0xe'));var Papa=require(_0x0aa5('0xf'));var Redis=require('ioredis');var authService=require(_0x0aa5('0x10'));var qs=require(_0x0aa5('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0aa5('0x12'));var logger=require(_0x0aa5('0x13'))(_0x0aa5('0x14'));var utils=require(_0x0aa5('0x15'));var config=require(_0x0aa5('0x16'));var licenseUtil=require(_0x0aa5('0x17'));var db=require(_0x0aa5('0x18'))['db'];function respondWithStatusCode(_0xe07452,_0x18259b){_0x18259b=_0x18259b||0xcc;return function(_0x4db34f){if(_0x4db34f){return _0xe07452['sendStatus'](_0x18259b);}return _0xe07452['status'](_0x18259b)[_0x0aa5('0x19')]();};}function respondWithResult(_0x1af125,_0x495038){_0x495038=_0x495038||0xc8;return function(_0x432be5){if(_0x432be5){return _0x1af125[_0x0aa5('0x1a')](_0x495038)['json'](_0x432be5);}};}function respondWithFilteredResult(_0x55af3b,_0x5a5582){return function(_0x15bda2){if(_0x15bda2){var _0x59b9cb=typeof _0x5a5582[_0x0aa5('0x1b')]===_0x0aa5('0x1c')&&typeof _0x5a5582[_0x0aa5('0x1d')]===_0x0aa5('0x1c');var _0x32ff38=_0x15bda2[_0x0aa5('0x1e')];var _0x50d1d3=_0x59b9cb?0x0:_0x5a5582[_0x0aa5('0x1b')];var _0x57355c=_0x59b9cb?_0x15bda2[_0x0aa5('0x1e')]:_0x5a5582['offset']+_0x5a5582['limit'];var _0x423d83;if(_0x57355c>=_0x32ff38){_0x57355c=_0x32ff38;_0x423d83=0xc8;}else{_0x423d83=0xce;}_0x55af3b[_0x0aa5('0x1a')](_0x423d83);return _0x55af3b[_0x0aa5('0x1f')](_0x0aa5('0x20'),_0x50d1d3+'-'+_0x57355c+'/'+_0x32ff38)[_0x0aa5('0x21')](_0x15bda2);}return null;};}function patchUpdates(_0x491a3c){return function(_0x550df7){try{jsonpatch[_0x0aa5('0x22')](_0x550df7,_0x491a3c,!![]);}catch(_0x4d90bc){return BPromise[_0x0aa5('0x23')](_0x4d90bc);}return _0x550df7[_0x0aa5('0x24')]();};}function saveUpdates(_0x9a98f6,_0x205fd2){return function(_0x5b2d3c){if(_0x5b2d3c){return _0x5b2d3c['update'](_0x9a98f6)['then'](function(_0x37ef26){return _0x37ef26;});}return null;};}function removeEntity(_0x506a70,_0x4ff7f5){return function(_0xf2017d){if(_0xf2017d){return _0xf2017d['destroy']()[_0x0aa5('0x25')](function(){_0x506a70['status'](0xcc)[_0x0aa5('0x19')]();});}};}function handleEntityNotFound(_0x5bac4a,_0x4ed17c){return function(_0x256b5a){if(!_0x256b5a){_0x5bac4a[_0x0aa5('0x26')](0x194);}return _0x256b5a;};}function handleError(_0x2af5b6,_0x2b321c){_0x2b321c=_0x2b321c||0x1f4;return function(_0x4f9679){logger[_0x0aa5('0x27')](_0x4f9679[_0x0aa5('0x28')]);if(_0x4f9679[_0x0aa5('0x29')]){delete _0x4f9679[_0x0aa5('0x29')];}_0x2af5b6[_0x0aa5('0x1a')](_0x2b321c)[_0x0aa5('0x2a')](_0x4f9679);};}exports[_0x0aa5('0x2b')]=function(_0x9e652a,_0x2b8db7){var _0xc69af7={},_0x42f6f5={},_0x5ead7c={'count':0x0,'rows':[]};var _0x67630f=_[_0x0aa5('0x2c')](db[_0x0aa5('0x2d')]['rawAttributes'],function(_0x2e9f25){return{'name':_0x2e9f25[_0x0aa5('0x2e')],'type':_0x2e9f25['type']['key']};});_0x42f6f5[_0x0aa5('0x2f')]=_['map'](_0x67630f,'name');_0x42f6f5[_0x0aa5('0x30')]=_[_0x0aa5('0x31')](_0x9e652a[_0x0aa5('0x30')]);_0x42f6f5[_0x0aa5('0x32')]=_[_0x0aa5('0x33')](_0x42f6f5[_0x0aa5('0x2f')],_0x42f6f5['query']);_0xc69af7[_0x0aa5('0x34')]=_['intersection'](_0x42f6f5['model'],qs[_0x0aa5('0x35')](_0x9e652a['query'][_0x0aa5('0x35')]));_0xc69af7['attributes']=_0xc69af7[_0x0aa5('0x34')][_0x0aa5('0x36')]?_0xc69af7[_0x0aa5('0x34')]:_0x42f6f5['model'];if(!_0x9e652a['query'][_0x0aa5('0x37')](_0x0aa5('0x38'))){_0xc69af7['limit']=qs[_0x0aa5('0x1d')](_0x9e652a[_0x0aa5('0x30')][_0x0aa5('0x1d')]);_0xc69af7['offset']=qs[_0x0aa5('0x1b')](_0x9e652a[_0x0aa5('0x30')]['offset']);}_0xc69af7[_0x0aa5('0x39')]=qs[_0x0aa5('0x3a')](_0x9e652a['query'][_0x0aa5('0x3a')]);_0xc69af7['where']=qs[_0x0aa5('0x32')](_[_0x0aa5('0x3b')](_0x9e652a[_0x0aa5('0x30')],_0x42f6f5['filters']),_0x67630f);if(_0x9e652a[_0x0aa5('0x30')][_0x0aa5('0x3c')]){_0xc69af7[_0x0aa5('0x3d')]=_[_0x0aa5('0x3e')](_0xc69af7['where'],{'$or':_[_0x0aa5('0x2c')](_0x67630f,function(_0x4bf8a2){if(_0x4bf8a2[_0x0aa5('0x3f')]!=='VIRTUAL'){var _0x4a5f68={};_0x4a5f68[_0x4bf8a2[_0x0aa5('0x29')]]={'$like':'%'+_0x9e652a[_0x0aa5('0x30')][_0x0aa5('0x3c')]+'%'};return _0x4a5f68;}})});}_0xc69af7=_[_0x0aa5('0x3e')]({},_0xc69af7,_0x9e652a[_0x0aa5('0x40')]);var _0x38b47a={'where':_0xc69af7[_0x0aa5('0x3d')]};return db[_0x0aa5('0x2d')][_0x0aa5('0x1e')](_0x38b47a)[_0x0aa5('0x25')](function(_0x4e9f97){_0x5ead7c[_0x0aa5('0x1e')]=_0x4e9f97;if(_0x9e652a[_0x0aa5('0x30')][_0x0aa5('0x41')]){_0xc69af7[_0x0aa5('0x42')]=[{'all':!![]}];}return db[_0x0aa5('0x2d')][_0x0aa5('0x43')](_0xc69af7);})['then'](function(_0xac2401){_0x5ead7c[_0x0aa5('0x44')]=_0xac2401;return _0x5ead7c;})[_0x0aa5('0x25')](respondWithFilteredResult(_0x2b8db7,_0xc69af7))[_0x0aa5('0x45')](handleError(_0x2b8db7,null));};exports['show']=function(_0x8e9d14,_0x23e52a){var _0xe22b45={'raw':!![],'where':{'id':_0x8e9d14[_0x0aa5('0x46')]['id']}},_0xd49ae6={};_0xd49ae6[_0x0aa5('0x2f')]=_[_0x0aa5('0x31')](db['AnalyticTreeReport'][_0x0aa5('0x47')]);_0xd49ae6[_0x0aa5('0x30')]=_[_0x0aa5('0x31')](_0x8e9d14['query']);_0xd49ae6['filters']=_[_0x0aa5('0x33')](_0xd49ae6['model'],_0xd49ae6[_0x0aa5('0x30')]);_0xe22b45['attributes']=_[_0x0aa5('0x33')](_0xd49ae6[_0x0aa5('0x2f')],qs[_0x0aa5('0x35')](_0x8e9d14[_0x0aa5('0x30')][_0x0aa5('0x35')]));_0xe22b45[_0x0aa5('0x34')]=_0xe22b45[_0x0aa5('0x34')]['length']?_0xe22b45[_0x0aa5('0x34')]:_0xd49ae6[_0x0aa5('0x2f')];if(_0x8e9d14['query'][_0x0aa5('0x41')]){_0xe22b45[_0x0aa5('0x42')]=[{'all':!![]}];}_0xe22b45=_['merge']({},_0xe22b45,_0x8e9d14['options']);return db[_0x0aa5('0x2d')]['find'](_0xe22b45)[_0x0aa5('0x25')](handleEntityNotFound(_0x23e52a,null))[_0x0aa5('0x25')](respondWithResult(_0x23e52a,null))[_0x0aa5('0x45')](handleError(_0x23e52a,null));};exports[_0x0aa5('0x48')]=function(_0x1fa0fc,_0x30c324){return db[_0x0aa5('0x2d')][_0x0aa5('0x48')](_0x1fa0fc[_0x0aa5('0x49')],{})['then'](respondWithResult(_0x30c324,0xc9))[_0x0aa5('0x45')](handleError(_0x30c324,null));};exports[_0x0aa5('0x4a')]=function(_0x41ca88,_0x3299c6){if(_0x41ca88['body']['id']){delete _0x41ca88['body']['id'];}return db[_0x0aa5('0x2d')][_0x0aa5('0x4b')]({'where':{'id':_0x41ca88[_0x0aa5('0x46')]['id']}})[_0x0aa5('0x25')](handleEntityNotFound(_0x3299c6,null))[_0x0aa5('0x25')](saveUpdates(_0x41ca88['body'],null))[_0x0aa5('0x25')](respondWithResult(_0x3299c6,null))['catch'](handleError(_0x3299c6,null));};exports[_0x0aa5('0x4c')]=function(_0x35fc86,_0x3acf71){return db[_0x0aa5('0x2d')][_0x0aa5('0x4b')]({'where':{'id':_0x35fc86['params']['id']}})['then'](handleEntityNotFound(_0x3acf71,null))[_0x0aa5('0x25')](removeEntity(_0x3acf71,null))['catch'](handleError(_0x3acf71,null));};