7a5d604c52f99e433f263033bea685ccc44d593c
[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 _0xff58=['zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','count','offset','limit','set','Content-Range','json','apply','reject','save','update','then','destroy','stack','name','send','index','map','AnalyticTreeReport','rawAttributes','type','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','sort','where','pick','filter','merge','options','include','findAll','rows','catch','show','params','length','includeAll','find','create','body','eml-format','rimraf'];(function(_0x2db12b,_0x30ab1d){var _0x20990b=function(_0x589477){while(--_0x589477){_0x2db12b['push'](_0x2db12b['shift']());}};_0x20990b(++_0x30ab1d);}(_0xff58,0x1a8));var _0x8ff5=function(_0x539709,_0x2c9edd){_0x539709=_0x539709-0x0;var _0x73cc7e=_0xff58[_0x539709];return _0x73cc7e;};'use strict';var emlformat=require(_0x8ff5('0x0'));var rimraf=require(_0x8ff5('0x1'));var zipdir=require(_0x8ff5('0x2'));var jsonpatch=require(_0x8ff5('0x3'));var rp=require(_0x8ff5('0x4'));var moment=require(_0x8ff5('0x5'));var BPromise=require(_0x8ff5('0x6'));var Mustache=require(_0x8ff5('0x7'));var util=require(_0x8ff5('0x8'));var path=require(_0x8ff5('0x9'));var sox=require(_0x8ff5('0xa'));var csv=require(_0x8ff5('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x8ff5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x8ff5('0xd'));var toCsv=require(_0x8ff5('0xb'));var querystring=require('querystring');var Papa=require(_0x8ff5('0xe'));var Redis=require(_0x8ff5('0xf'));var authService=require(_0x8ff5('0x10'));var qs=require(_0x8ff5('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8ff5('0x12'));var logger=require(_0x8ff5('0x13'))(_0x8ff5('0x14'));var utils=require('../../config/utils');var config=require(_0x8ff5('0x15'));var licenseUtil=require(_0x8ff5('0x16'));var db=require(_0x8ff5('0x17'))['db'];function respondWithStatusCode(_0xd228df,_0x1819fc){_0x1819fc=_0x1819fc||0xcc;return function(_0x5c772c){if(_0x5c772c){return _0xd228df[_0x8ff5('0x18')](_0x1819fc);}return _0xd228df[_0x8ff5('0x19')](_0x1819fc)['end']();};}function respondWithResult(_0x1c4799,_0x5e953c){_0x5e953c=_0x5e953c||0xc8;return function(_0x5bbd7b){if(_0x5bbd7b){return _0x1c4799['status'](_0x5e953c)['json'](_0x5bbd7b);}};}function respondWithFilteredResult(_0x32ebc1,_0x188133){return function(_0x32a964){if(_0x32a964){var _0x45aebf=_0x32a964[_0x8ff5('0x1a')],_0x2b8eeb=_0x188133[_0x8ff5('0x1b')],_0x1be1ec=_0x188133['offset']+_0x188133[_0x8ff5('0x1c')],_0x50a485;if(_0x1be1ec>=_0x45aebf){_0x1be1ec=_0x45aebf;_0x50a485=0xc8;}else{_0x50a485=0xce;}_0x32ebc1[_0x8ff5('0x19')](_0x50a485);return _0x32ebc1[_0x8ff5('0x1d')](_0x8ff5('0x1e'),_0x2b8eeb+'-'+_0x1be1ec+'/'+_0x45aebf)[_0x8ff5('0x1f')](_0x32a964);}return null;};}function patchUpdates(_0x59a904){return function(_0x53d5df){try{jsonpatch[_0x8ff5('0x20')](_0x53d5df,_0x59a904,!![]);}catch(_0x424415){return BPromise[_0x8ff5('0x21')](_0x424415);}return _0x53d5df[_0x8ff5('0x22')]();};}function saveUpdates(_0x145395,_0x347c3c){return function(_0x5a9d5f){if(_0x5a9d5f){return _0x5a9d5f[_0x8ff5('0x23')](_0x145395)[_0x8ff5('0x24')](function(_0x1692f1){return _0x1692f1;});}return null;};}function removeEntity(_0x34a6f1,_0x2ce2e7){return function(_0x5b2689){if(_0x5b2689){return _0x5b2689[_0x8ff5('0x25')]()['then'](function(){_0x34a6f1['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x15f7c4,_0x443a58){return function(_0x171358){if(!_0x171358){_0x15f7c4[_0x8ff5('0x18')](0x194);}return _0x171358;};}function handleError(_0x1983df,_0x524983){_0x524983=_0x524983||0x1f4;return function(_0x953f02){logger['error'](_0x953f02[_0x8ff5('0x26')]);if(_0x953f02['name']){delete _0x953f02[_0x8ff5('0x27')];}_0x1983df[_0x8ff5('0x19')](_0x524983)[_0x8ff5('0x28')](_0x953f02);};}exports[_0x8ff5('0x29')]=function(_0x132062,_0x4b4b44){var _0x78ff10={},_0x574afd={},_0x4ff319={'count':0x0,'rows':[]};var _0x3ef133=_[_0x8ff5('0x2a')](db[_0x8ff5('0x2b')][_0x8ff5('0x2c')],function(_0x3f6649){return{'name':_0x3f6649['fieldName'],'type':_0x3f6649[_0x8ff5('0x2d')][_0x8ff5('0x2e')]};});_0x574afd[_0x8ff5('0x2f')]=_[_0x8ff5('0x2a')](_0x3ef133,'name');_0x574afd[_0x8ff5('0x30')]=_[_0x8ff5('0x31')](_0x132062['query']);_0x574afd['filters']=_[_0x8ff5('0x32')](_0x574afd[_0x8ff5('0x2f')],_0x574afd['query']);_0x78ff10['attributes']=_[_0x8ff5('0x32')](_0x574afd[_0x8ff5('0x2f')],qs['fields'](_0x132062[_0x8ff5('0x30')][_0x8ff5('0x33')]));_0x78ff10[_0x8ff5('0x34')]=_0x78ff10['attributes']['length']?_0x78ff10['attributes']:_0x574afd[_0x8ff5('0x2f')];if(!_0x132062['query'][_0x8ff5('0x35')]('nolimit')){_0x78ff10[_0x8ff5('0x1c')]=qs[_0x8ff5('0x1c')](_0x132062[_0x8ff5('0x30')][_0x8ff5('0x1c')]);_0x78ff10[_0x8ff5('0x1b')]=qs[_0x8ff5('0x1b')](_0x132062['query']['offset']);}_0x78ff10['order']=qs[_0x8ff5('0x36')](_0x132062[_0x8ff5('0x30')][_0x8ff5('0x36')]);_0x78ff10[_0x8ff5('0x37')]=qs['filters'](_[_0x8ff5('0x38')](_0x132062[_0x8ff5('0x30')],_0x574afd['filters']),_0x3ef133);if(_0x132062[_0x8ff5('0x30')][_0x8ff5('0x39')]){_0x78ff10['where']=_[_0x8ff5('0x3a')](_0x78ff10['where'],{'$or':_[_0x8ff5('0x2a')](_0x3ef133,function(_0x3b55fe){if(_0x3b55fe[_0x8ff5('0x2d')]!=='VIRTUAL'){var _0x461a87={};_0x461a87[_0x3b55fe['name']]={'$like':'%'+_0x132062['query']['filter']+'%'};return _0x461a87;}})});}_0x78ff10=_['merge']({},_0x78ff10,_0x132062[_0x8ff5('0x3b')]);var _0x40796b={'where':_0x78ff10[_0x8ff5('0x37')]};return db[_0x8ff5('0x2b')][_0x8ff5('0x1a')](_0x40796b)['then'](function(_0x3a5ec7){_0x4ff319[_0x8ff5('0x1a')]=_0x3a5ec7;if(_0x132062['query']['includeAll']){_0x78ff10[_0x8ff5('0x3c')]=[{'all':!![]}];}return db[_0x8ff5('0x2b')][_0x8ff5('0x3d')](_0x78ff10);})[_0x8ff5('0x24')](function(_0xea44db){_0x4ff319[_0x8ff5('0x3e')]=_0xea44db;return _0x4ff319;})[_0x8ff5('0x24')](respondWithFilteredResult(_0x4b4b44,_0x78ff10))[_0x8ff5('0x3f')](handleError(_0x4b4b44,null));};exports[_0x8ff5('0x40')]=function(_0x2d1dd8,_0x2f8a47){var _0x52e7fd={'raw':!![],'where':{'id':_0x2d1dd8[_0x8ff5('0x41')]['id']}},_0x57a37b={};_0x57a37b[_0x8ff5('0x2f')]=_[_0x8ff5('0x31')](db[_0x8ff5('0x2b')][_0x8ff5('0x2c')]);_0x57a37b[_0x8ff5('0x30')]=_[_0x8ff5('0x31')](_0x2d1dd8[_0x8ff5('0x30')]);_0x57a37b['filters']=_[_0x8ff5('0x32')](_0x57a37b[_0x8ff5('0x2f')],_0x57a37b[_0x8ff5('0x30')]);_0x52e7fd['attributes']=_[_0x8ff5('0x32')](_0x57a37b[_0x8ff5('0x2f')],qs[_0x8ff5('0x33')](_0x2d1dd8[_0x8ff5('0x30')]['fields']));_0x52e7fd[_0x8ff5('0x34')]=_0x52e7fd['attributes'][_0x8ff5('0x42')]?_0x52e7fd[_0x8ff5('0x34')]:_0x57a37b[_0x8ff5('0x2f')];if(_0x2d1dd8[_0x8ff5('0x30')][_0x8ff5('0x43')]){_0x52e7fd['include']=[{'all':!![]}];}_0x52e7fd=_[_0x8ff5('0x3a')]({},_0x52e7fd,_0x2d1dd8[_0x8ff5('0x3b')]);return db[_0x8ff5('0x2b')][_0x8ff5('0x44')](_0x52e7fd)[_0x8ff5('0x24')](handleEntityNotFound(_0x2f8a47,null))[_0x8ff5('0x24')](respondWithResult(_0x2f8a47,null))[_0x8ff5('0x3f')](handleError(_0x2f8a47,null));};exports[_0x8ff5('0x45')]=function(_0x4c83c8,_0x5b4fae){return db[_0x8ff5('0x2b')]['create'](_0x4c83c8[_0x8ff5('0x46')],{})[_0x8ff5('0x24')](respondWithResult(_0x5b4fae,0xc9))[_0x8ff5('0x3f')](handleError(_0x5b4fae,null));};exports[_0x8ff5('0x23')]=function(_0x4abb8d,_0x11d879){if(_0x4abb8d['body']['id']){delete _0x4abb8d[_0x8ff5('0x46')]['id'];}return db[_0x8ff5('0x2b')][_0x8ff5('0x44')]({'where':{'id':_0x4abb8d['params']['id']}})[_0x8ff5('0x24')](handleEntityNotFound(_0x11d879,null))[_0x8ff5('0x24')](saveUpdates(_0x4abb8d[_0x8ff5('0x46')],null))['then'](respondWithResult(_0x11d879,null))[_0x8ff5('0x3f')](handleError(_0x11d879,null));};exports[_0x8ff5('0x25')]=function(_0x57eec9,_0xe0e14b){return db[_0x8ff5('0x2b')]['find']({'where':{'id':_0x57eec9[_0x8ff5('0x41')]['id']}})['then'](handleEntityNotFound(_0xe0e14b,null))[_0x8ff5('0x24')](removeEntity(_0xe0e14b,null))[_0x8ff5('0x3f')](handleError(_0xe0e14b,null));};