Built motion from commit 67e5df37.|2.0.66
[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 _0xa9e0=['update','then','destroy','end','error','name','send','index','model','keys','AnalyticTreeReport','dateStart','dateEnd','query','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','day','add','filter','map','include','rows','catch','show','params','rawAttributes','includeAll','merge','options','find','create','body','fast-json-patch','request-promise','moment','util','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','../../components/parsers/qs','../../config/utils','../../config/environment','../../mysqldb','status','json','count','offset','limit','set','apply','reject','save'];(function(_0x16c7bc,_0x1fa7e7){var _0x406b4f=function(_0x591e49){while(--_0x591e49){_0x16c7bc['push'](_0x16c7bc['shift']());}};_0x406b4f(++_0x1fa7e7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3635ce,_0x33a6f9){_0x3635ce=_0x3635ce-0x0;var _0x97ecd0=_0xa9e0[_0x3635ce];return _0x97ecd0;};'use strict';var jsonpatch=require(_0x0a9e('0x0'));var rp=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x0a9e('0x3'));var path=require('path');var sox=require(_0x0a9e('0x4'));var csv=require(_0x0a9e('0x5'));var ejs=require(_0x0a9e('0x6'));var fs=require('fs');var _=require(_0x0a9e('0x7'));var squel=require(_0x0a9e('0x8'));var crypto=require('crypto');var jsforce=require(_0x0a9e('0x9'));var deskjs=require(_0x0a9e('0xa'));var toCsv=require(_0x0a9e('0x5'));var querystring=require('querystring');var Papa=require('papaparse');var qs=require(_0x0a9e('0xb'));var logger=require('../../config/logger')('api');var utils=require(_0x0a9e('0xc'));var config=require(_0x0a9e('0xd'));var db=require(_0x0a9e('0xe'))['db'];function respondWithStatusCode(_0x3ab53f,_0xfeb75b){_0xfeb75b=_0xfeb75b||0xcc;return function(_0xbd1168){if(_0xbd1168){return _0x3ab53f['sendStatus'](_0xfeb75b);}return _0x3ab53f['status'](_0xfeb75b)['end']();};}function respondWithResult(_0x4cfe67,_0x273d4d){_0x273d4d=_0x273d4d||0xc8;return function(_0x36471c){if(_0x36471c){return _0x4cfe67[_0x0a9e('0xf')](_0x273d4d)[_0x0a9e('0x10')](_0x36471c);}};}function respondWithFilteredResult(_0x32d742,_0x69aeb7){return function(_0x5db4b0){if(_0x5db4b0){var _0x4283ce=_0x5db4b0[_0x0a9e('0x11')],_0x239b12=_0x69aeb7[_0x0a9e('0x12')],_0x2b4227=_0x69aeb7['offset']+_0x69aeb7[_0x0a9e('0x13')],_0x281129;if(_0x2b4227>=_0x4283ce){_0x2b4227=_0x4283ce;_0x281129=0xc8;}else{_0x281129=0xce;}_0x32d742['status'](_0x281129);return _0x32d742[_0x0a9e('0x14')]('Content-Range',_0x239b12+'-'+_0x2b4227+'/'+_0x4283ce)[_0x0a9e('0x10')](_0x5db4b0);}return null;};}function patchUpdates(_0x12066b){return function(_0x48f32d){try{jsonpatch[_0x0a9e('0x15')](_0x48f32d,_0x12066b,!![]);}catch(_0x5a0a06){return BPromise[_0x0a9e('0x16')](_0x5a0a06);}return _0x48f32d[_0x0a9e('0x17')]();};}function saveUpdates(_0x106033,_0x205fd6){return function(_0x31b1ca){if(_0x31b1ca){return _0x31b1ca[_0x0a9e('0x18')](_0x106033)[_0x0a9e('0x19')](function(_0x20559e){return _0x20559e;});}return null;};}function removeEntity(_0x1314ae,_0x112016){return function(_0x1c696a){if(_0x1c696a){return _0x1c696a[_0x0a9e('0x1a')]()['then'](function(){_0x1314ae[_0x0a9e('0xf')](0xcc)[_0x0a9e('0x1b')]();});}};}function handleEntityNotFound(_0x53682f,_0x20f109){return function(_0x5a09ef){if(!_0x5a09ef){_0x53682f['sendStatus'](0x194);}return _0x5a09ef;};}function handleError(_0x3a02e1,_0x432e56){_0x432e56=_0x432e56||0x1f4;return function(_0x38e7c4){logger[_0x0a9e('0x1c')](_0x38e7c4['stack']);if(_0x38e7c4[_0x0a9e('0x1d')]){delete _0x38e7c4[_0x0a9e('0x1d')];}_0x3a02e1[_0x0a9e('0xf')](_0x432e56)[_0x0a9e('0x1e')](_0x38e7c4);};}exports[_0x0a9e('0x1f')]=function(_0x42ac8f,_0x16b1ca){var _0x5ea472={},_0x59181e={},_0x197ec0={'count':0x0,'rows':[]};_0x59181e[_0x0a9e('0x20')]=_[_0x0a9e('0x21')](db[_0x0a9e('0x22')]['rawAttributes']);var _0x384319={'dateStart':_0x42ac8f['query'][_0x0a9e('0x23')],'dateEnd':_0x42ac8f['query'][_0x0a9e('0x24')]};delete _0x42ac8f[_0x0a9e('0x25')][_0x0a9e('0x23')];delete _0x42ac8f[_0x0a9e('0x25')][_0x0a9e('0x24')];_0x59181e[_0x0a9e('0x25')]=_[_0x0a9e('0x21')](_0x42ac8f[_0x0a9e('0x25')]);_0x59181e['filters']=_[_0x0a9e('0x26')](_0x59181e[_0x0a9e('0x20')],_0x59181e[_0x0a9e('0x25')]);_0x5ea472[_0x0a9e('0x27')]=_['intersection'](_0x59181e[_0x0a9e('0x20')],qs[_0x0a9e('0x28')](_0x42ac8f[_0x0a9e('0x25')][_0x0a9e('0x28')]));_0x5ea472[_0x0a9e('0x27')]=_0x5ea472[_0x0a9e('0x27')][_0x0a9e('0x29')]?_0x5ea472[_0x0a9e('0x27')]:_0x59181e[_0x0a9e('0x20')];if(!_0x42ac8f['query'][_0x0a9e('0x2a')]('nolimit')){_0x5ea472[_0x0a9e('0x13')]=qs[_0x0a9e('0x13')](_0x42ac8f[_0x0a9e('0x25')][_0x0a9e('0x13')]);_0x5ea472[_0x0a9e('0x12')]=qs['offset'](_0x42ac8f[_0x0a9e('0x25')][_0x0a9e('0x12')]);}_0x5ea472[_0x0a9e('0x2b')]=qs[_0x0a9e('0x2c')](_0x42ac8f[_0x0a9e('0x25')][_0x0a9e('0x2c')]);_0x5ea472[_0x0a9e('0x2d')]=qs[_0x0a9e('0x2e')](_['pick'](_0x42ac8f[_0x0a9e('0x25')],_0x59181e['filters']));if(_0x384319[_0x0a9e('0x23')]){if(_0x384319[_0x0a9e('0x24')]){_0x384319[_0x0a9e('0x24')]=moment(_0x384319[_0x0a9e('0x24')])['add'](0x1,_0x0a9e('0x2f'));}else{_0x384319[_0x0a9e('0x24')]=moment(_0x384319[_0x0a9e('0x23')])[_0x0a9e('0x30')](0x1,'day');}_['merge'](_0x5ea472[_0x0a9e('0x2d')],{'createdAt':{'$gte':_0x384319['dateStart'],'$lte':_0x384319[_0x0a9e('0x24')]}});}if(_0x42ac8f[_0x0a9e('0x25')][_0x0a9e('0x31')]){_0x5ea472[_0x0a9e('0x2d')]=_['merge'](_0x5ea472[_0x0a9e('0x2d')],{'$or':_[_0x0a9e('0x32')](_0x5ea472[_0x0a9e('0x27')],function(_0x533942){var _0x1dbf74={};_0x1dbf74[_0x533942]={'$like':'%'+_0x42ac8f[_0x0a9e('0x25')][_0x0a9e('0x31')]+'%'};return _0x1dbf74;})});}_0x5ea472=_['merge']({},_0x5ea472,_0x42ac8f['options']);var _0x11b61d={'where':_0x5ea472[_0x0a9e('0x2d')]};return db['AnalyticTreeReport'][_0x0a9e('0x11')](_0x11b61d)[_0x0a9e('0x19')](function(_0x2e1b3a){_0x197ec0[_0x0a9e('0x11')]=_0x2e1b3a;if(_0x42ac8f['query']['includeAll']){_0x5ea472[_0x0a9e('0x33')]=[{'all':!![]}];}return db[_0x0a9e('0x22')]['findAll'](_0x5ea472);})[_0x0a9e('0x19')](function(_0x1dec2e){_0x197ec0[_0x0a9e('0x34')]=_0x1dec2e;return _0x197ec0;})['then'](respondWithFilteredResult(_0x16b1ca,_0x5ea472))[_0x0a9e('0x35')](handleError(_0x16b1ca,null));};exports[_0x0a9e('0x36')]=function(_0x274e8e,_0x43dd5b){var _0x13cb1f={'raw':!![],'where':{'id':_0x274e8e[_0x0a9e('0x37')]['id']}},_0xeaa5e5={};_0xeaa5e5[_0x0a9e('0x20')]=_[_0x0a9e('0x21')](db[_0x0a9e('0x22')][_0x0a9e('0x38')]);_0xeaa5e5[_0x0a9e('0x25')]=_[_0x0a9e('0x21')](_0x274e8e[_0x0a9e('0x25')]);_0xeaa5e5[_0x0a9e('0x2e')]=_['intersection'](_0xeaa5e5['model'],_0xeaa5e5[_0x0a9e('0x25')]);_0x13cb1f[_0x0a9e('0x27')]=_[_0x0a9e('0x26')](_0xeaa5e5[_0x0a9e('0x20')],qs[_0x0a9e('0x28')](_0x274e8e[_0x0a9e('0x25')][_0x0a9e('0x28')]));_0x13cb1f[_0x0a9e('0x27')]=_0x13cb1f[_0x0a9e('0x27')][_0x0a9e('0x29')]?_0x13cb1f[_0x0a9e('0x27')]:_0xeaa5e5[_0x0a9e('0x20')];if(_0x274e8e['query'][_0x0a9e('0x39')]){_0x13cb1f[_0x0a9e('0x33')]=[{'all':!![]}];}_0x13cb1f=_[_0x0a9e('0x3a')]({},_0x13cb1f,_0x274e8e[_0x0a9e('0x3b')]);return db[_0x0a9e('0x22')][_0x0a9e('0x3c')](_0x13cb1f)[_0x0a9e('0x19')](handleEntityNotFound(_0x43dd5b,null))[_0x0a9e('0x19')](respondWithResult(_0x43dd5b,null))['catch'](handleError(_0x43dd5b,null));};exports[_0x0a9e('0x3d')]=function(_0x48fd45,_0x473dc8){return db[_0x0a9e('0x22')][_0x0a9e('0x3d')](_0x48fd45['body'],{})[_0x0a9e('0x19')](respondWithResult(_0x473dc8,0xc9))[_0x0a9e('0x35')](handleError(_0x473dc8,null));};exports[_0x0a9e('0x18')]=function(_0x34aa5a,_0x45c845){if(_0x34aa5a[_0x0a9e('0x3e')]['id']){delete _0x34aa5a[_0x0a9e('0x3e')]['id'];}return db['AnalyticTreeReport'][_0x0a9e('0x3c')]({'where':{'id':_0x34aa5a[_0x0a9e('0x37')]['id']}})[_0x0a9e('0x19')](handleEntityNotFound(_0x45c845,null))[_0x0a9e('0x19')](saveUpdates(_0x34aa5a[_0x0a9e('0x3e')],null))[_0x0a9e('0x19')](respondWithResult(_0x45c845,null))[_0x0a9e('0x35')](handleError(_0x45c845,null));};exports[_0x0a9e('0x1a')]=function(_0x34febd,_0x58a5c2){return db[_0x0a9e('0x22')][_0x0a9e('0x3c')]({'where':{'id':_0x34febd['params']['id']}})['then'](handleEntityNotFound(_0x58a5c2,null))['then'](removeEntity(_0x58a5c2,null))[_0x0a9e('0x35')](handleError(_0x58a5c2,null));};