1ef601728c4610268573d4b7f419dc564c306d5f
[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 _0xa5ea=['key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','catch','params','rawAttributes','find','create','body','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','lodash','squel','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','json','offset','undefined','limit','status','set','Content-Range','apply','save','update','then','stack','name','send','map','AnalyticTreeReport','fieldName'];(function(_0x483c53,_0x5be97b){var _0x4ebf9e=function(_0x1d7229){while(--_0x1d7229){_0x483c53['push'](_0x483c53['shift']());}};_0x4ebf9e(++_0x5be97b);}(_0xa5ea,0x18a));var _0xaa5e=function(_0xfbec33,_0x139a33){_0xfbec33=_0xfbec33-0x0;var _0x217583=_0xa5ea[_0xfbec33];return _0x217583;};'use strict';var emlformat=require(_0xaa5e('0x0'));var rimraf=require(_0xaa5e('0x1'));var zipdir=require(_0xaa5e('0x2'));var jsonpatch=require(_0xaa5e('0x3'));var rp=require(_0xaa5e('0x4'));var moment=require(_0xaa5e('0x5'));var BPromise=require(_0xaa5e('0x6'));var Mustache=require(_0xaa5e('0x7'));var util=require('util');var path=require(_0xaa5e('0x8'));var sox=require(_0xaa5e('0x9'));var csv=require('to-csv');var ejs=require(_0xaa5e('0xa'));var fs=require('fs');var fs_extra=require(_0xaa5e('0xb'));var _=require(_0xaa5e('0xc'));var squel=require(_0xaa5e('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xaa5e('0xe'));var toCsv=require(_0xaa5e('0xf'));var querystring=require('querystring');var Papa=require(_0xaa5e('0x10'));var Redis=require(_0xaa5e('0x11'));var authService=require(_0xaa5e('0x12'));var qs=require(_0xaa5e('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xaa5e('0x14'));var logger=require(_0xaa5e('0x15'))('api');var utils=require(_0xaa5e('0x16'));var config=require(_0xaa5e('0x17'));var licenseUtil=require(_0xaa5e('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x501c3d,_0x45ed24){_0x45ed24=_0x45ed24||0xcc;return function(_0x48fffd){if(_0x48fffd){return _0x501c3d[_0xaa5e('0x19')](_0x45ed24);}return _0x501c3d['status'](_0x45ed24)[_0xaa5e('0x1a')]();};}function respondWithResult(_0x27e1d6,_0x1be2ed){_0x1be2ed=_0x1be2ed||0xc8;return function(_0x4c79fb){if(_0x4c79fb){return _0x27e1d6['status'](_0x1be2ed)[_0xaa5e('0x1b')](_0x4c79fb);}};}function respondWithFilteredResult(_0x1d8e32,_0x4a198c){return function(_0x13c52e){if(_0x13c52e){var _0x1b4f7e=typeof _0x4a198c[_0xaa5e('0x1c')]===_0xaa5e('0x1d')&&typeof _0x4a198c[_0xaa5e('0x1e')]===_0xaa5e('0x1d');var _0xdcf90e=_0x13c52e['count'];var _0x19382d=_0x1b4f7e?0x0:_0x4a198c[_0xaa5e('0x1c')];var _0x1bdd5c=_0x1b4f7e?_0x13c52e['count']:_0x4a198c[_0xaa5e('0x1c')]+_0x4a198c[_0xaa5e('0x1e')];var _0x1d10b3;if(_0x1bdd5c>=_0xdcf90e){_0x1bdd5c=_0xdcf90e;_0x1d10b3=0xc8;}else{_0x1d10b3=0xce;}_0x1d8e32[_0xaa5e('0x1f')](_0x1d10b3);return _0x1d8e32[_0xaa5e('0x20')](_0xaa5e('0x21'),_0x19382d+'-'+_0x1bdd5c+'/'+_0xdcf90e)['json'](_0x13c52e);}return null;};}function patchUpdates(_0xfb3e89){return function(_0x1a78a5){try{jsonpatch[_0xaa5e('0x22')](_0x1a78a5,_0xfb3e89,!![]);}catch(_0xe6bcd8){return BPromise['reject'](_0xe6bcd8);}return _0x1a78a5[_0xaa5e('0x23')]();};}function saveUpdates(_0x720865,_0x27d06b){return function(_0x2ba82b){if(_0x2ba82b){return _0x2ba82b[_0xaa5e('0x24')](_0x720865)['then'](function(_0xd51b1b){return _0xd51b1b;});}return null;};}function removeEntity(_0x48f522,_0x5e2117){return function(_0x27ef9f){if(_0x27ef9f){return _0x27ef9f['destroy']()[_0xaa5e('0x25')](function(){_0x48f522[_0xaa5e('0x1f')](0xcc)[_0xaa5e('0x1a')]();});}};}function handleEntityNotFound(_0x583e96,_0x2a5bbb){return function(_0x1ddf89){if(!_0x1ddf89){_0x583e96['sendStatus'](0x194);}return _0x1ddf89;};}function handleError(_0x3cc8eb,_0x4f6322){_0x4f6322=_0x4f6322||0x1f4;return function(_0x14bf58){logger['error'](_0x14bf58[_0xaa5e('0x26')]);if(_0x14bf58[_0xaa5e('0x27')]){delete _0x14bf58[_0xaa5e('0x27')];}_0x3cc8eb['status'](_0x4f6322)[_0xaa5e('0x28')](_0x14bf58);};}exports['index']=function(_0x15162c,_0x29e31d){var _0xcb4476={},_0x33b295={},_0x4ab978={'count':0x0,'rows':[]};var _0x2b95c3=_[_0xaa5e('0x29')](db[_0xaa5e('0x2a')]['rawAttributes'],function(_0xf2ef01){return{'name':_0xf2ef01[_0xaa5e('0x2b')],'type':_0xf2ef01['type'][_0xaa5e('0x2c')]};});_0x33b295[_0xaa5e('0x2d')]=_[_0xaa5e('0x29')](_0x2b95c3,_0xaa5e('0x27'));_0x33b295[_0xaa5e('0x2e')]=_[_0xaa5e('0x2f')](_0x15162c[_0xaa5e('0x2e')]);_0x33b295[_0xaa5e('0x30')]=_[_0xaa5e('0x31')](_0x33b295['model'],_0x33b295[_0xaa5e('0x2e')]);_0xcb4476[_0xaa5e('0x32')]=_[_0xaa5e('0x31')](_0x33b295[_0xaa5e('0x2d')],qs['fields'](_0x15162c['query'][_0xaa5e('0x33')]));_0xcb4476[_0xaa5e('0x32')]=_0xcb4476['attributes'][_0xaa5e('0x34')]?_0xcb4476[_0xaa5e('0x32')]:_0x33b295['model'];if(!_0x15162c[_0xaa5e('0x2e')][_0xaa5e('0x35')]('nolimit')){_0xcb4476[_0xaa5e('0x1e')]=qs['limit'](_0x15162c[_0xaa5e('0x2e')][_0xaa5e('0x1e')]);_0xcb4476[_0xaa5e('0x1c')]=qs[_0xaa5e('0x1c')](_0x15162c[_0xaa5e('0x2e')][_0xaa5e('0x1c')]);}_0xcb4476[_0xaa5e('0x36')]=qs[_0xaa5e('0x37')](_0x15162c[_0xaa5e('0x2e')][_0xaa5e('0x37')]);_0xcb4476[_0xaa5e('0x38')]=qs[_0xaa5e('0x30')](_[_0xaa5e('0x39')](_0x15162c[_0xaa5e('0x2e')],_0x33b295[_0xaa5e('0x30')]),_0x2b95c3);if(_0x15162c[_0xaa5e('0x2e')][_0xaa5e('0x3a')]){_0xcb4476[_0xaa5e('0x38')]=_[_0xaa5e('0x3b')](_0xcb4476[_0xaa5e('0x38')],{'$or':_[_0xaa5e('0x29')](_0x2b95c3,function(_0x3c0bfe){if(_0x3c0bfe[_0xaa5e('0x3c')]!==_0xaa5e('0x3d')){var _0x1f3a21={};_0x1f3a21[_0x3c0bfe[_0xaa5e('0x27')]]={'$like':'%'+_0x15162c[_0xaa5e('0x2e')][_0xaa5e('0x3a')]+'%'};return _0x1f3a21;}})});}_0xcb4476=_['merge']({},_0xcb4476,_0x15162c[_0xaa5e('0x3e')]);var _0x3256a1={'where':_0xcb4476[_0xaa5e('0x38')]};return db[_0xaa5e('0x2a')]['count'](_0x3256a1)[_0xaa5e('0x25')](function(_0x3df6db){_0x4ab978['count']=_0x3df6db;if(_0x15162c[_0xaa5e('0x2e')][_0xaa5e('0x3f')]){_0xcb4476[_0xaa5e('0x40')]=[{'all':!![]}];}return db[_0xaa5e('0x2a')][_0xaa5e('0x41')](_0xcb4476);})['then'](function(_0x271e66){_0x4ab978['rows']=_0x271e66;return _0x4ab978;})[_0xaa5e('0x25')](respondWithFilteredResult(_0x29e31d,_0xcb4476))[_0xaa5e('0x42')](handleError(_0x29e31d,null));};exports['show']=function(_0x1be886,_0x11ad52){var _0x21aac3={'raw':!![],'where':{'id':_0x1be886[_0xaa5e('0x43')]['id']}},_0xeddb8e={};_0xeddb8e[_0xaa5e('0x2d')]=_[_0xaa5e('0x2f')](db[_0xaa5e('0x2a')][_0xaa5e('0x44')]);_0xeddb8e['query']=_['keys'](_0x1be886[_0xaa5e('0x2e')]);_0xeddb8e[_0xaa5e('0x30')]=_['intersection'](_0xeddb8e[_0xaa5e('0x2d')],_0xeddb8e[_0xaa5e('0x2e')]);_0x21aac3[_0xaa5e('0x32')]=_[_0xaa5e('0x31')](_0xeddb8e[_0xaa5e('0x2d')],qs[_0xaa5e('0x33')](_0x1be886[_0xaa5e('0x2e')][_0xaa5e('0x33')]));_0x21aac3[_0xaa5e('0x32')]=_0x21aac3['attributes'][_0xaa5e('0x34')]?_0x21aac3[_0xaa5e('0x32')]:_0xeddb8e[_0xaa5e('0x2d')];if(_0x1be886['query'][_0xaa5e('0x3f')]){_0x21aac3[_0xaa5e('0x40')]=[{'all':!![]}];}_0x21aac3=_[_0xaa5e('0x3b')]({},_0x21aac3,_0x1be886['options']);return db[_0xaa5e('0x2a')][_0xaa5e('0x45')](_0x21aac3)[_0xaa5e('0x25')](handleEntityNotFound(_0x11ad52,null))[_0xaa5e('0x25')](respondWithResult(_0x11ad52,null))[_0xaa5e('0x42')](handleError(_0x11ad52,null));};exports[_0xaa5e('0x46')]=function(_0x30ee95,_0x18a305){return db['AnalyticTreeReport'][_0xaa5e('0x46')](_0x30ee95[_0xaa5e('0x47')],{})[_0xaa5e('0x25')](respondWithResult(_0x18a305,0xc9))['catch'](handleError(_0x18a305,null));};exports[_0xaa5e('0x24')]=function(_0x5759bb,_0x58efb0){if(_0x5759bb[_0xaa5e('0x47')]['id']){delete _0x5759bb['body']['id'];}return db[_0xaa5e('0x2a')]['find']({'where':{'id':_0x5759bb[_0xaa5e('0x43')]['id']}})[_0xaa5e('0x25')](handleEntityNotFound(_0x58efb0,null))['then'](saveUpdates(_0x5759bb[_0xaa5e('0x47')],null))['then'](respondWithResult(_0x58efb0,null))[_0xaa5e('0x42')](handleError(_0x58efb0,null));};exports[_0xaa5e('0x48')]=function(_0x27b431,_0x3ef74b){return db[_0xaa5e('0x2a')][_0xaa5e('0x45')]({'where':{'id':_0x27b431['params']['id']}})[_0xaa5e('0x25')](handleEntityNotFound(_0x3ef74b,null))[_0xaa5e('0x25')](removeEntity(_0x3ef74b,null))[_0xaa5e('0x42')](handleError(_0x3ef74b,null));};