ef1795760183a4b57924cb77d57657042a8830a7
[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 _0x5a43=['catch','show','params','find','body','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','update','then','destroy','error','name','send','index','AnalyticTreeReport','rawAttributes','type','key','model','query','keys','attributes','intersection','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','map','VIRTUAL','options','includeAll','include','findAll','rows'];(function(_0x486f1d,_0x90c2b5){var _0x5a2c2d=function(_0x1a5f79){while(--_0x1a5f79){_0x486f1d['push'](_0x486f1d['shift']());}};_0x5a2c2d(++_0x90c2b5);}(_0x5a43,0xd4));var _0x35a4=function(_0x41039f,_0x1f10cf){_0x41039f=_0x41039f-0x0;var _0x31b7ff=_0x5a43[_0x41039f];return _0x31b7ff;};'use strict';var pdf=require(_0x35a4('0x0'));var emlformat=require(_0x35a4('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x35a4('0x2'));var jsonpatch=require(_0x35a4('0x3'));var rp=require(_0x35a4('0x4'));var moment=require(_0x35a4('0x5'));var BPromise=require(_0x35a4('0x6'));var Mustache=require(_0x35a4('0x7'));var util=require('util');var path=require(_0x35a4('0x8'));var sox=require(_0x35a4('0x9'));var csv=require(_0x35a4('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x35a4('0xb'));var crypto=require(_0x35a4('0xc'));var jsforce=require(_0x35a4('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x35a4('0xa'));var querystring=require(_0x35a4('0xe'));var Papa=require(_0x35a4('0xf'));var Redis=require(_0x35a4('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x35a4('0x11'));var hardwareService=require(_0x35a4('0x12'));var logger=require(_0x35a4('0x13'))(_0x35a4('0x14'));var utils=require(_0x35a4('0x15'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x165171,_0x557269){_0x557269=_0x557269||0xcc;return function(_0x1c6caf){if(_0x1c6caf){return _0x165171[_0x35a4('0x16')](_0x557269);}return _0x165171[_0x35a4('0x17')](_0x557269)[_0x35a4('0x18')]();};}function respondWithResult(_0x1e1e97,_0x42ee05){_0x42ee05=_0x42ee05||0xc8;return function(_0x33f7ff){if(_0x33f7ff){return _0x1e1e97[_0x35a4('0x17')](_0x42ee05)[_0x35a4('0x19')](_0x33f7ff);}};}function respondWithFilteredResult(_0xd1f661,_0x3aca16){return function(_0x4f6aed){if(_0x4f6aed){var _0x1cdd27=_0x4f6aed[_0x35a4('0x1a')],_0x3637c3=_0x3aca16[_0x35a4('0x1b')],_0xad420=_0x3aca16['offset']+_0x3aca16[_0x35a4('0x1c')],_0x53f0c8;if(_0xad420>=_0x1cdd27){_0xad420=_0x1cdd27;_0x53f0c8=0xc8;}else{_0x53f0c8=0xce;}_0xd1f661['status'](_0x53f0c8);return _0xd1f661['set'](_0x35a4('0x1d'),_0x3637c3+'-'+_0xad420+'/'+_0x1cdd27)[_0x35a4('0x19')](_0x4f6aed);}return null;};}function patchUpdates(_0x4c8980){return function(_0x63b0c5){try{jsonpatch[_0x35a4('0x1e')](_0x63b0c5,_0x4c8980,!![]);}catch(_0x1eb014){return BPromise['reject'](_0x1eb014);}return _0x63b0c5['save']();};}function saveUpdates(_0x27af0,_0x36d05d){return function(_0xe25f00){if(_0xe25f00){return _0xe25f00[_0x35a4('0x1f')](_0x27af0)[_0x35a4('0x20')](function(_0x5bae7d){return _0x5bae7d;});}return null;};}function removeEntity(_0x1c78c4,_0x590a1d){return function(_0x1e2e33){if(_0x1e2e33){return _0x1e2e33[_0x35a4('0x21')]()[_0x35a4('0x20')](function(){_0x1c78c4['status'](0xcc)[_0x35a4('0x18')]();});}};}function handleEntityNotFound(_0x3c5fbc,_0x287b03){return function(_0x2b506b){if(!_0x2b506b){_0x3c5fbc[_0x35a4('0x16')](0x194);}return _0x2b506b;};}function handleError(_0x4910b1,_0x1ebf02){_0x1ebf02=_0x1ebf02||0x1f4;return function(_0x43ff4f){logger[_0x35a4('0x22')](_0x43ff4f['stack']);if(_0x43ff4f[_0x35a4('0x23')]){delete _0x43ff4f[_0x35a4('0x23')];}_0x4910b1[_0x35a4('0x17')](_0x1ebf02)[_0x35a4('0x24')](_0x43ff4f);};}exports[_0x35a4('0x25')]=function(_0xb92203,_0x1057e4){var _0x20d9d5={},_0x3b504c={},_0x409a2b={'count':0x0,'rows':[]};var _0x1d6e5a=_['map'](db[_0x35a4('0x26')][_0x35a4('0x27')],function(_0x60b8f1){return{'name':_0x60b8f1['fieldName'],'type':_0x60b8f1[_0x35a4('0x28')][_0x35a4('0x29')]};});_0x3b504c[_0x35a4('0x2a')]=_['map'](_0x1d6e5a,'name');_0x3b504c[_0x35a4('0x2b')]=_[_0x35a4('0x2c')](_0xb92203[_0x35a4('0x2b')]);_0x3b504c['filters']=_['intersection'](_0x3b504c[_0x35a4('0x2a')],_0x3b504c[_0x35a4('0x2b')]);_0x20d9d5[_0x35a4('0x2d')]=_[_0x35a4('0x2e')](_0x3b504c[_0x35a4('0x2a')],qs['fields'](_0xb92203['query'][_0x35a4('0x2f')]));_0x20d9d5[_0x35a4('0x2d')]=_0x20d9d5['attributes'][_0x35a4('0x30')]?_0x20d9d5['attributes']:_0x3b504c[_0x35a4('0x2a')];if(!_0xb92203['query']['hasOwnProperty'](_0x35a4('0x31'))){_0x20d9d5[_0x35a4('0x1c')]=qs['limit'](_0xb92203[_0x35a4('0x2b')]['limit']);_0x20d9d5['offset']=qs['offset'](_0xb92203[_0x35a4('0x2b')][_0x35a4('0x1b')]);}_0x20d9d5[_0x35a4('0x32')]=qs[_0x35a4('0x33')](_0xb92203[_0x35a4('0x2b')][_0x35a4('0x33')]);_0x20d9d5[_0x35a4('0x34')]=qs[_0x35a4('0x35')](_[_0x35a4('0x36')](_0xb92203[_0x35a4('0x2b')],_0x3b504c[_0x35a4('0x35')]),_0x1d6e5a);if(_0xb92203[_0x35a4('0x2b')][_0x35a4('0x37')]){_0x20d9d5['where']=_[_0x35a4('0x38')](_0x20d9d5['where'],{'$or':_[_0x35a4('0x39')](_0x1d6e5a,function(_0x243b12){if(_0x243b12[_0x35a4('0x28')]!==_0x35a4('0x3a')){var _0x3d42cd={};_0x3d42cd[_0x243b12[_0x35a4('0x23')]]={'$like':'%'+_0xb92203[_0x35a4('0x2b')]['filter']+'%'};return _0x3d42cd;}})});}_0x20d9d5=_[_0x35a4('0x38')]({},_0x20d9d5,_0xb92203[_0x35a4('0x3b')]);var _0x400bdd={'where':_0x20d9d5[_0x35a4('0x34')]};return db[_0x35a4('0x26')][_0x35a4('0x1a')](_0x400bdd)[_0x35a4('0x20')](function(_0x2c7c79){_0x409a2b[_0x35a4('0x1a')]=_0x2c7c79;if(_0xb92203[_0x35a4('0x2b')][_0x35a4('0x3c')]){_0x20d9d5[_0x35a4('0x3d')]=[{'all':!![]}];}return db[_0x35a4('0x26')][_0x35a4('0x3e')](_0x20d9d5);})[_0x35a4('0x20')](function(_0x10a33e){_0x409a2b[_0x35a4('0x3f')]=_0x10a33e;return _0x409a2b;})[_0x35a4('0x20')](respondWithFilteredResult(_0x1057e4,_0x20d9d5))[_0x35a4('0x40')](handleError(_0x1057e4,null));};exports[_0x35a4('0x41')]=function(_0x3b941e,_0x31315d){var _0x320319={'raw':!![],'where':{'id':_0x3b941e[_0x35a4('0x42')]['id']}},_0x2c3e86={};_0x2c3e86[_0x35a4('0x2a')]=_[_0x35a4('0x2c')](db[_0x35a4('0x26')][_0x35a4('0x27')]);_0x2c3e86[_0x35a4('0x2b')]=_[_0x35a4('0x2c')](_0x3b941e[_0x35a4('0x2b')]);_0x2c3e86[_0x35a4('0x35')]=_['intersection'](_0x2c3e86['model'],_0x2c3e86['query']);_0x320319[_0x35a4('0x2d')]=_[_0x35a4('0x2e')](_0x2c3e86[_0x35a4('0x2a')],qs[_0x35a4('0x2f')](_0x3b941e[_0x35a4('0x2b')][_0x35a4('0x2f')]));_0x320319['attributes']=_0x320319[_0x35a4('0x2d')][_0x35a4('0x30')]?_0x320319['attributes']:_0x2c3e86[_0x35a4('0x2a')];if(_0x3b941e['query'][_0x35a4('0x3c')]){_0x320319[_0x35a4('0x3d')]=[{'all':!![]}];}_0x320319=_[_0x35a4('0x38')]({},_0x320319,_0x3b941e[_0x35a4('0x3b')]);return db[_0x35a4('0x26')][_0x35a4('0x43')](_0x320319)[_0x35a4('0x20')](handleEntityNotFound(_0x31315d,null))[_0x35a4('0x20')](respondWithResult(_0x31315d,null))[_0x35a4('0x40')](handleError(_0x31315d,null));};exports['create']=function(_0x16903b,_0x231db1){return db[_0x35a4('0x26')]['create'](_0x16903b[_0x35a4('0x44')],{})['then'](respondWithResult(_0x231db1,0xc9))[_0x35a4('0x40')](handleError(_0x231db1,null));};exports[_0x35a4('0x1f')]=function(_0x45bdcf,_0x5deda2){if(_0x45bdcf[_0x35a4('0x44')]['id']){delete _0x45bdcf[_0x35a4('0x44')]['id'];}return db[_0x35a4('0x26')]['find']({'where':{'id':_0x45bdcf['params']['id']}})[_0x35a4('0x20')](handleEntityNotFound(_0x5deda2,null))[_0x35a4('0x20')](saveUpdates(_0x45bdcf['body'],null))[_0x35a4('0x20')](respondWithResult(_0x5deda2,null))['catch'](handleError(_0x5deda2,null));};exports['destroy']=function(_0x1833f2,_0xfa51d8){return db[_0x35a4('0x26')][_0x35a4('0x43')]({'where':{'id':_0x1833f2['params']['id']}})[_0x35a4('0x20')](handleEntityNotFound(_0xfa51d8,null))['then'](removeEntity(_0xfa51d8,null))[_0x35a4('0x40')](handleError(_0xfa51d8,null));};