4462cdcd9b0e7ec2068fdf7661801d3e279b8dce
[motion2.git] / server / api / analyticFieldReport / analyticFieldReport.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 _0xa6c5=['keys','query','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','VIRTUAL','filter','AnalyticFieldReport','includeAll','include','rows','catch','show','merge','options','find','create','body','bulkCreate','update','params','bulkDestroy','ids','addFields','findOne','sequelize','transaction','CustomReportId','findAll','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','count','set','apply','reject','then','destroy','error','name','send','index','map','rawAttributes','fieldName','type','key'];(function(_0x37bf7b,_0x857bca){var _0x4db72f=function(_0x7e56b){while(--_0x7e56b){_0x37bf7b['push'](_0x37bf7b['shift']());}};_0x4db72f(++_0x857bca);}(_0xa6c5,0x7a));var _0x5a6c=function(_0x5bdc0f,_0xd2ca59){_0x5bdc0f=_0x5bdc0f-0x0;var _0x318e07=_0xa6c5[_0x5bdc0f];return _0x318e07;};'use strict';var emlformat=require(_0x5a6c('0x0'));var rimraf=require(_0x5a6c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5a6c('0x2'));var rp=require(_0x5a6c('0x3'));var moment=require(_0x5a6c('0x4'));var BPromise=require(_0x5a6c('0x5'));var Mustache=require(_0x5a6c('0x6'));var util=require(_0x5a6c('0x7'));var path=require(_0x5a6c('0x8'));var sox=require(_0x5a6c('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5a6c('0xa'));var _=require('lodash');var squel=require(_0x5a6c('0xb'));var crypto=require(_0x5a6c('0xc'));var jsforce=require(_0x5a6c('0xd'));var deskjs=require(_0x5a6c('0xe'));var toCsv=require(_0x5a6c('0xf'));var querystring=require(_0x5a6c('0x10'));var Papa=require(_0x5a6c('0x11'));var Redis=require('ioredis');var authService=require(_0x5a6c('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x5a6c('0x13'));var hardwareService=require(_0x5a6c('0x14'));var logger=require(_0x5a6c('0x15'))('api');var utils=require(_0x5a6c('0x16'));var config=require(_0x5a6c('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x5a6c('0x18'))['db'];function respondWithStatusCode(_0x38b4bd,_0x3315c6){_0x3315c6=_0x3315c6||0xcc;return function(_0x420fe4){if(_0x420fe4){return _0x38b4bd[_0x5a6c('0x19')](_0x3315c6);}return _0x38b4bd[_0x5a6c('0x1a')](_0x3315c6)[_0x5a6c('0x1b')]();};}function respondWithResult(_0x1c7346,_0x9baab){_0x9baab=_0x9baab||0xc8;return function(_0x227a11){if(_0x227a11){return _0x1c7346[_0x5a6c('0x1a')](_0x9baab)[_0x5a6c('0x1c')](_0x227a11);}};}function respondWithFilteredResult(_0x1bc710,_0x244c30){return function(_0x1305d4){if(_0x1305d4){var _0xfbb06c=typeof _0x244c30[_0x5a6c('0x1d')]==='undefined'&&typeof _0x244c30[_0x5a6c('0x1e')]==='undefined';var _0x8231fd=_0x1305d4[_0x5a6c('0x1f')];var _0xf82d73=_0xfbb06c?0x0:_0x244c30[_0x5a6c('0x1d')];var _0xa874f1=_0xfbb06c?_0x1305d4[_0x5a6c('0x1f')]:_0x244c30['offset']+_0x244c30['limit'];var _0x29840f;if(_0xa874f1>=_0x8231fd){_0xa874f1=_0x8231fd;_0x29840f=0xc8;}else{_0x29840f=0xce;}_0x1bc710[_0x5a6c('0x1a')](_0x29840f);return _0x1bc710[_0x5a6c('0x20')]('Content-Range',_0xf82d73+'-'+_0xa874f1+'/'+_0x8231fd)[_0x5a6c('0x1c')](_0x1305d4);}return null;};}function patchUpdates(_0x2a507a){return function(_0x40cdaa){try{jsonpatch[_0x5a6c('0x21')](_0x40cdaa,_0x2a507a,!![]);}catch(_0x46d974){return BPromise[_0x5a6c('0x22')](_0x46d974);}return _0x40cdaa['save']();};}function saveUpdates(_0x2f1dba,_0x59a70b){return function(_0x2040ea){if(_0x2040ea){return _0x2040ea['update'](_0x2f1dba)[_0x5a6c('0x23')](function(_0x4c84c5){return _0x4c84c5;});}return null;};}function removeEntity(_0x387b09,_0x595d63){return function(_0x564a2f){if(_0x564a2f){return _0x564a2f[_0x5a6c('0x24')]()['then'](function(){_0x387b09[_0x5a6c('0x1a')](0xcc)[_0x5a6c('0x1b')]();});}};}function handleEntityNotFound(_0x47fa2f,_0x35613a){return function(_0x379509){if(!_0x379509){_0x47fa2f[_0x5a6c('0x19')](0x194);}return _0x379509;};}function handleError(_0x390272,_0x33229c){_0x33229c=_0x33229c||0x1f4;return function(_0xbf1520){logger[_0x5a6c('0x25')](_0xbf1520['stack']);if(_0xbf1520['name']){delete _0xbf1520[_0x5a6c('0x26')];}_0x390272[_0x5a6c('0x1a')](_0x33229c)[_0x5a6c('0x27')](_0xbf1520);};}exports[_0x5a6c('0x28')]=function(_0x1347d4,_0x142c8e){var _0x4098b8={},_0x660e34={},_0x2fdf14={'count':0x0,'rows':[]};var _0x195dae=_[_0x5a6c('0x29')](db['AnalyticFieldReport'][_0x5a6c('0x2a')],function(_0x5c931e){return{'name':_0x5c931e[_0x5a6c('0x2b')],'type':_0x5c931e[_0x5a6c('0x2c')][_0x5a6c('0x2d')]};});_0x660e34['model']=_[_0x5a6c('0x29')](_0x195dae,_0x5a6c('0x26'));_0x660e34['query']=_[_0x5a6c('0x2e')](_0x1347d4[_0x5a6c('0x2f')]);_0x660e34['filters']=_[_0x5a6c('0x30')](_0x660e34[_0x5a6c('0x31')],_0x660e34[_0x5a6c('0x2f')]);_0x4098b8[_0x5a6c('0x32')]=_[_0x5a6c('0x30')](_0x660e34[_0x5a6c('0x31')],qs[_0x5a6c('0x33')](_0x1347d4[_0x5a6c('0x2f')][_0x5a6c('0x33')]));_0x4098b8['attributes']=_0x4098b8[_0x5a6c('0x32')][_0x5a6c('0x34')]?_0x4098b8[_0x5a6c('0x32')]:_0x660e34[_0x5a6c('0x31')];if(!_0x1347d4[_0x5a6c('0x2f')][_0x5a6c('0x35')](_0x5a6c('0x36'))){_0x4098b8[_0x5a6c('0x1e')]=qs[_0x5a6c('0x1e')](_0x1347d4[_0x5a6c('0x2f')][_0x5a6c('0x1e')]);_0x4098b8[_0x5a6c('0x1d')]=qs[_0x5a6c('0x1d')](_0x1347d4[_0x5a6c('0x2f')][_0x5a6c('0x1d')]);}_0x4098b8[_0x5a6c('0x37')]=qs[_0x5a6c('0x38')](_0x1347d4[_0x5a6c('0x2f')][_0x5a6c('0x38')]);_0x4098b8[_0x5a6c('0x39')]=qs['filters'](_[_0x5a6c('0x3a')](_0x1347d4['query'],_0x660e34[_0x5a6c('0x3b')]),_0x195dae);if(_0x1347d4[_0x5a6c('0x2f')]['filter']){_0x4098b8[_0x5a6c('0x39')]=_['merge'](_0x4098b8[_0x5a6c('0x39')],{'$or':_[_0x5a6c('0x29')](_0x195dae,function(_0xbebc5c){if(_0xbebc5c['type']!==_0x5a6c('0x3c')){var _0x20017b={};_0x20017b[_0xbebc5c['name']]={'$like':'%'+_0x1347d4[_0x5a6c('0x2f')][_0x5a6c('0x3d')]+'%'};return _0x20017b;}})});}_0x4098b8=_['merge']({},_0x4098b8,_0x1347d4['options']);var _0x596c5a={'where':_0x4098b8[_0x5a6c('0x39')]};return db[_0x5a6c('0x3e')]['count'](_0x596c5a)[_0x5a6c('0x23')](function(_0x3e7467){_0x2fdf14[_0x5a6c('0x1f')]=_0x3e7467;if(_0x1347d4[_0x5a6c('0x2f')][_0x5a6c('0x3f')]){_0x4098b8[_0x5a6c('0x40')]=[{'all':!![]}];}return db[_0x5a6c('0x3e')]['findAll'](_0x4098b8);})['then'](function(_0x1bbf3a){_0x2fdf14[_0x5a6c('0x41')]=_0x1bbf3a;return _0x2fdf14;})['then'](respondWithFilteredResult(_0x142c8e,_0x4098b8))[_0x5a6c('0x42')](handleError(_0x142c8e,null));};exports[_0x5a6c('0x43')]=function(_0xb8a6a7,_0x4334eb){var _0x4cd59a={'raw':![],'where':{'id':_0xb8a6a7['params']['id']}},_0x414bde={};_0x414bde[_0x5a6c('0x31')]=_['keys'](db[_0x5a6c('0x3e')]['rawAttributes']);_0x414bde['query']=_['keys'](_0xb8a6a7['query']);_0x414bde[_0x5a6c('0x3b')]=_[_0x5a6c('0x30')](_0x414bde['model'],_0x414bde['query']);_0x4cd59a[_0x5a6c('0x32')]=_[_0x5a6c('0x30')](_0x414bde[_0x5a6c('0x31')],qs[_0x5a6c('0x33')](_0xb8a6a7[_0x5a6c('0x2f')][_0x5a6c('0x33')]));_0x4cd59a[_0x5a6c('0x32')]=_0x4cd59a[_0x5a6c('0x32')][_0x5a6c('0x34')]?_0x4cd59a[_0x5a6c('0x32')]:_0x414bde[_0x5a6c('0x31')];if(_0xb8a6a7[_0x5a6c('0x2f')][_0x5a6c('0x3f')]){_0x4cd59a[_0x5a6c('0x40')]=[{'all':!![]}];}_0x4cd59a=_[_0x5a6c('0x44')]({},_0x4cd59a,_0xb8a6a7[_0x5a6c('0x45')]);return db[_0x5a6c('0x3e')][_0x5a6c('0x46')](_0x4cd59a)[_0x5a6c('0x23')](handleEntityNotFound(_0x4334eb,null))[_0x5a6c('0x23')](respondWithResult(_0x4334eb,null))[_0x5a6c('0x42')](handleError(_0x4334eb,null));};exports[_0x5a6c('0x47')]=function(_0x781aa2,_0x496911){return db[_0x5a6c('0x3e')][_0x5a6c('0x47')](_0x781aa2[_0x5a6c('0x48')],{})['then'](respondWithResult(_0x496911,0xc9))['catch'](handleError(_0x496911,null));};exports[_0x5a6c('0x49')]=function(_0x44d64a,_0x3d0ccc){return db[_0x5a6c('0x3e')]['bulkCreate'](_0x44d64a[_0x5a6c('0x48')],{'raw':![],'individualHooks':!![]})[_0x5a6c('0x23')](respondWithResult(_0x3d0ccc,0xc9))[_0x5a6c('0x42')](handleError(_0x3d0ccc,null));};exports[_0x5a6c('0x4a')]=function(_0x18fe25,_0x320eb4){if(_0x18fe25[_0x5a6c('0x48')]['id']){delete _0x18fe25['body']['id'];}return db[_0x5a6c('0x3e')][_0x5a6c('0x46')]({'where':{'id':_0x18fe25[_0x5a6c('0x4b')]['id']}})[_0x5a6c('0x23')](handleEntityNotFound(_0x320eb4,null))[_0x5a6c('0x23')](saveUpdates(_0x18fe25[_0x5a6c('0x48')],null))[_0x5a6c('0x23')](respondWithResult(_0x320eb4,null))['catch'](handleError(_0x320eb4,null));};exports[_0x5a6c('0x24')]=function(_0x48054e,_0x50e6ad){return db[_0x5a6c('0x3e')]['find']({'where':{'id':_0x48054e['params']['id']}})[_0x5a6c('0x23')](handleEntityNotFound(_0x50e6ad,null))[_0x5a6c('0x23')](removeEntity(_0x50e6ad,null))[_0x5a6c('0x42')](handleError(_0x50e6ad,null));};exports[_0x5a6c('0x4c')]=function(_0x1ef635,_0xc652d8){return db['AnalyticFieldReport'][_0x5a6c('0x24')]({'where':{'id':_0x1ef635[_0x5a6c('0x2f')][_0x5a6c('0x4d')]||[]},'raw':![],'individualHooks':!![]})[_0x5a6c('0x23')](respondWithResult(_0xc652d8,0xcc))['catch'](handleError(_0xc652d8,null));};exports[_0x5a6c('0x4e')]=function(_0x5eb248,_0x9fffce,_0xbb9f41){return db['AnalyticCustomReport'][_0x5a6c('0x4f')]({'where':{'id':_0x5eb248[_0x5a6c('0x4b')]['id']}})[_0x5a6c('0x23')](handleEntityNotFound(_0x9fffce,null))[_0x5a6c('0x23')](function(_0x1e5965){if(_0x1e5965){return db[_0x5a6c('0x50')][_0x5a6c('0x51')](function(_0x1c1cf4){return db[_0x5a6c('0x3e')][_0x5a6c('0x24')]({'where':{'CustomReportId':_0x5eb248[_0x5a6c('0x4b')]['id']},'transaction':_0x1c1cf4})[_0x5a6c('0x23')](function(_0x1355b4){var _0x3234bb=_[_0x5a6c('0x29')](_0x5eb248[_0x5a6c('0x48')],function(_0x2af1a1){delete _0x2af1a1['id'];_0x2af1a1[_0x5a6c('0x52')]=_0x5eb248[_0x5a6c('0x4b')]['id'];return _0x2af1a1;});return db[_0x5a6c('0x3e')][_0x5a6c('0x49')](_0x3234bb,{'transaction':_0x1c1cf4});});})[_0x5a6c('0x23')](function(){return db['AnalyticFieldReport'][_0x5a6c('0x53')]({'where':{'CustomReportId':_0x5eb248[_0x5a6c('0x4b')]['id']}});});}})[_0x5a6c('0x23')](respondWithResult(_0x9fffce,null))[_0x5a6c('0x42')](handleError(_0x9fffce,null));};