Built motion from commit f7863d46.|2.5.41
[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 _0xc16b=['set','apply','reject','update','then','sendStatus','error','stack','name','send','index','AnalyticTreeReport','rawAttributes','fieldName','key','model','keys','query','intersection','fields','attributes','length','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','find','create','body','params','destroy','rimraf','zip-dir','fast-json-patch','moment','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','limit','undefined','count'];(function(_0x1e783e,_0x3fbbbb){var _0x1f4648=function(_0x1c3258){while(--_0x1c3258){_0x1e783e['push'](_0x1e783e['shift']());}};_0x1f4648(++_0x3fbbbb);}(_0xc16b,0x195));var _0xbc16=function(_0x3826a0,_0x12308b){_0x3826a0=_0x3826a0-0x0;var _0x42250c=_0xc16b[_0x3826a0];return _0x42250c;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xbc16('0x0'));var zipdir=require(_0xbc16('0x1'));var jsonpatch=require(_0xbc16('0x2'));var rp=require('request-promise');var moment=require(_0xbc16('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xbc16('0x4'));var path=require(_0xbc16('0x5'));var sox=require(_0xbc16('0x6'));var csv=require(_0xbc16('0x7'));var ejs=require(_0xbc16('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xbc16('0x9'));var squel=require('squel');var crypto=require(_0xbc16('0xa'));var jsforce=require(_0xbc16('0xb'));var deskjs=require(_0xbc16('0xc'));var toCsv=require(_0xbc16('0x7'));var querystring=require(_0xbc16('0xd'));var Papa=require(_0xbc16('0xe'));var Redis=require(_0xbc16('0xf'));var authService=require(_0xbc16('0x10'));var qs=require(_0xbc16('0x11'));var as=require(_0xbc16('0x12'));var hardwareService=require(_0xbc16('0x13'));var logger=require(_0xbc16('0x14'))(_0xbc16('0x15'));var utils=require(_0xbc16('0x16'));var config=require(_0xbc16('0x17'));var licenseUtil=require(_0xbc16('0x18'));var db=require(_0xbc16('0x19'))['db'];function respondWithStatusCode(_0x36189b,_0x45253e){_0x45253e=_0x45253e||0xcc;return function(_0x1ca4e3){if(_0x1ca4e3){return _0x36189b['sendStatus'](_0x45253e);}return _0x36189b[_0xbc16('0x1a')](_0x45253e)[_0xbc16('0x1b')]();};}function respondWithResult(_0x3e5eeb,_0xd5c7fb){_0xd5c7fb=_0xd5c7fb||0xc8;return function(_0xe65de){if(_0xe65de){return _0x3e5eeb[_0xbc16('0x1a')](_0xd5c7fb)[_0xbc16('0x1c')](_0xe65de);}};}function respondWithFilteredResult(_0x52d73c,_0x403fb2){return function(_0xfbe6bb){if(_0xfbe6bb){var _0x57bc1c=typeof _0x403fb2[_0xbc16('0x1d')]==='undefined'&&typeof _0x403fb2[_0xbc16('0x1e')]===_0xbc16('0x1f');var _0x35503d=_0xfbe6bb[_0xbc16('0x20')];var _0x21735b=_0x57bc1c?0x0:_0x403fb2[_0xbc16('0x1d')];var _0x22da7d=_0x57bc1c?_0xfbe6bb[_0xbc16('0x20')]:_0x403fb2[_0xbc16('0x1d')]+_0x403fb2[_0xbc16('0x1e')];var _0x31a2e8;if(_0x22da7d>=_0x35503d){_0x22da7d=_0x35503d;_0x31a2e8=0xc8;}else{_0x31a2e8=0xce;}_0x52d73c['status'](_0x31a2e8);return _0x52d73c[_0xbc16('0x21')]('Content-Range',_0x21735b+'-'+_0x22da7d+'/'+_0x35503d)['json'](_0xfbe6bb);}return null;};}function patchUpdates(_0x511936){return function(_0x2fcae9){try{jsonpatch[_0xbc16('0x22')](_0x2fcae9,_0x511936,!![]);}catch(_0x35c4b0){return BPromise[_0xbc16('0x23')](_0x35c4b0);}return _0x2fcae9['save']();};}function saveUpdates(_0x4002e0,_0x2d64e6){return function(_0x51cee6){if(_0x51cee6){return _0x51cee6[_0xbc16('0x24')](_0x4002e0)[_0xbc16('0x25')](function(_0x578e01){return _0x578e01;});}return null;};}function removeEntity(_0x4749ee,_0x3451f6){return function(_0x146a1f){if(_0x146a1f){return _0x146a1f['destroy']()[_0xbc16('0x25')](function(){_0x4749ee['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5ce33e,_0x198a2a){return function(_0x769ef9){if(!_0x769ef9){_0x5ce33e[_0xbc16('0x26')](0x194);}return _0x769ef9;};}function handleError(_0x457a4b,_0x599c85){_0x599c85=_0x599c85||0x1f4;return function(_0x56e91a){logger[_0xbc16('0x27')](_0x56e91a[_0xbc16('0x28')]);if(_0x56e91a[_0xbc16('0x29')]){delete _0x56e91a[_0xbc16('0x29')];}_0x457a4b[_0xbc16('0x1a')](_0x599c85)[_0xbc16('0x2a')](_0x56e91a);};}exports[_0xbc16('0x2b')]=function(_0x7dffd0,_0x58cd7a){var _0x5ba889={},_0x47e61e={},_0x164780={'count':0x0,'rows':[]};var _0x41aa86=_['map'](db[_0xbc16('0x2c')][_0xbc16('0x2d')],function(_0x4223b3){return{'name':_0x4223b3[_0xbc16('0x2e')],'type':_0x4223b3['type'][_0xbc16('0x2f')]};});_0x47e61e[_0xbc16('0x30')]=_['map'](_0x41aa86,'name');_0x47e61e['query']=_[_0xbc16('0x31')](_0x7dffd0[_0xbc16('0x32')]);_0x47e61e['filters']=_['intersection'](_0x47e61e['model'],_0x47e61e[_0xbc16('0x32')]);_0x5ba889['attributes']=_[_0xbc16('0x33')](_0x47e61e['model'],qs[_0xbc16('0x34')](_0x7dffd0[_0xbc16('0x32')][_0xbc16('0x34')]));_0x5ba889[_0xbc16('0x35')]=_0x5ba889[_0xbc16('0x35')][_0xbc16('0x36')]?_0x5ba889[_0xbc16('0x35')]:_0x47e61e[_0xbc16('0x30')];if(!_0x7dffd0[_0xbc16('0x32')]['hasOwnProperty']('nolimit')){_0x5ba889[_0xbc16('0x1e')]=qs[_0xbc16('0x1e')](_0x7dffd0['query'][_0xbc16('0x1e')]);_0x5ba889['offset']=qs[_0xbc16('0x1d')](_0x7dffd0[_0xbc16('0x32')][_0xbc16('0x1d')]);}_0x5ba889['order']=qs[_0xbc16('0x37')](_0x7dffd0[_0xbc16('0x32')]['sort']);_0x5ba889[_0xbc16('0x38')]=qs[_0xbc16('0x39')](_[_0xbc16('0x3a')](_0x7dffd0['query'],_0x47e61e[_0xbc16('0x39')]),_0x41aa86);if(_0x7dffd0['query'][_0xbc16('0x3b')]){_0x5ba889[_0xbc16('0x38')]=_[_0xbc16('0x3c')](_0x5ba889[_0xbc16('0x38')],{'$or':_['map'](_0x41aa86,function(_0x396843){if(_0x396843['type']!==_0xbc16('0x3d')){var _0x5d9a87={};_0x5d9a87[_0x396843[_0xbc16('0x29')]]={'$like':'%'+_0x7dffd0[_0xbc16('0x32')]['filter']+'%'};return _0x5d9a87;}})});}_0x5ba889=_[_0xbc16('0x3c')]({},_0x5ba889,_0x7dffd0[_0xbc16('0x3e')]);var _0x2b5234={'where':_0x5ba889[_0xbc16('0x38')]};return db[_0xbc16('0x2c')]['count'](_0x2b5234)[_0xbc16('0x25')](function(_0x5315e3){_0x164780['count']=_0x5315e3;if(_0x7dffd0[_0xbc16('0x32')][_0xbc16('0x3f')]){_0x5ba889[_0xbc16('0x40')]=[{'all':!![]}];}return db[_0xbc16('0x2c')]['findAll'](_0x5ba889);})['then'](function(_0x145d1c){_0x164780[_0xbc16('0x41')]=_0x145d1c;return _0x164780;})[_0xbc16('0x25')](respondWithFilteredResult(_0x58cd7a,_0x5ba889))[_0xbc16('0x42')](handleError(_0x58cd7a,null));};exports[_0xbc16('0x43')]=function(_0x30c2ba,_0x5b4112){var _0xdc3434={'raw':!![],'where':{'id':_0x30c2ba['params']['id']}},_0x54089a={};_0x54089a[_0xbc16('0x30')]=_[_0xbc16('0x31')](db[_0xbc16('0x2c')][_0xbc16('0x2d')]);_0x54089a[_0xbc16('0x32')]=_['keys'](_0x30c2ba['query']);_0x54089a[_0xbc16('0x39')]=_[_0xbc16('0x33')](_0x54089a[_0xbc16('0x30')],_0x54089a[_0xbc16('0x32')]);_0xdc3434[_0xbc16('0x35')]=_[_0xbc16('0x33')](_0x54089a['model'],qs[_0xbc16('0x34')](_0x30c2ba[_0xbc16('0x32')][_0xbc16('0x34')]));_0xdc3434[_0xbc16('0x35')]=_0xdc3434[_0xbc16('0x35')]['length']?_0xdc3434[_0xbc16('0x35')]:_0x54089a['model'];if(_0x30c2ba[_0xbc16('0x32')]['includeAll']){_0xdc3434[_0xbc16('0x40')]=[{'all':!![]}];}_0xdc3434=_[_0xbc16('0x3c')]({},_0xdc3434,_0x30c2ba['options']);return db[_0xbc16('0x2c')][_0xbc16('0x44')](_0xdc3434)['then'](handleEntityNotFound(_0x5b4112,null))[_0xbc16('0x25')](respondWithResult(_0x5b4112,null))[_0xbc16('0x42')](handleError(_0x5b4112,null));};exports[_0xbc16('0x45')]=function(_0x46b7ff,_0x17abd2){return db[_0xbc16('0x2c')][_0xbc16('0x45')](_0x46b7ff[_0xbc16('0x46')],{})[_0xbc16('0x25')](respondWithResult(_0x17abd2,0xc9))[_0xbc16('0x42')](handleError(_0x17abd2,null));};exports[_0xbc16('0x24')]=function(_0x4efbd7,_0x56468c){if(_0x4efbd7[_0xbc16('0x46')]['id']){delete _0x4efbd7[_0xbc16('0x46')]['id'];}return db['AnalyticTreeReport']['find']({'where':{'id':_0x4efbd7[_0xbc16('0x47')]['id']}})[_0xbc16('0x25')](handleEntityNotFound(_0x56468c,null))[_0xbc16('0x25')](saveUpdates(_0x4efbd7[_0xbc16('0x46')],null))[_0xbc16('0x25')](respondWithResult(_0x56468c,null))[_0xbc16('0x42')](handleError(_0x56468c,null));};exports[_0xbc16('0x48')]=function(_0x5abac3,_0x43b377){return db[_0xbc16('0x2c')][_0xbc16('0x44')]({'where':{'id':_0x5abac3['params']['id']}})[_0xbc16('0x25')](handleEntityNotFound(_0x43b377,null))[_0xbc16('0x25')](removeEntity(_0x43b377,null))[_0xbc16('0x42')](handleError(_0x43b377,null));};