e4b35ab847a1c403a87a0c871d297bd1a456fd78
[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 _0xf2b4=['moment','bluebird','mustache','path','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','status','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','end','sendStatus','error','stack','name','send','map','AnalyticFieldReport','fieldName','type','key','query','keys','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','filter','options','include','findAll','rows','catch','show','params','rawAttributes','intersection','includeAll','find','create','body','bulkCreate','destroy','bulkDestroy','ids','addFields','sequelize','CustomReportId','zip-dir','fast-json-patch'];(function(_0x4a3898,_0x4c9853){var _0x25ceb0=function(_0x528b6d){while(--_0x528b6d){_0x4a3898['push'](_0x4a3898['shift']());}};_0x25ceb0(++_0x4c9853);}(_0xf2b4,0x17a));var _0x4f2b=function(_0x570920,_0x1f6dc8){_0x570920=_0x570920-0x0;var _0xc0e1c9=_0xf2b4[_0x570920];return _0xc0e1c9;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x4f2b('0x0'));var jsonpatch=require(_0x4f2b('0x1'));var rp=require('request-promise');var moment=require(_0x4f2b('0x2'));var BPromise=require(_0x4f2b('0x3'));var Mustache=require(_0x4f2b('0x4'));var util=require('util');var path=require(_0x4f2b('0x5'));var sox=require('sox');var csv=require(_0x4f2b('0x6'));var ejs=require(_0x4f2b('0x7'));var fs=require('fs');var fs_extra=require(_0x4f2b('0x8'));var _=require('lodash');var squel=require(_0x4f2b('0x9'));var crypto=require(_0x4f2b('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x4f2b('0xb'));var toCsv=require(_0x4f2b('0x6'));var querystring=require(_0x4f2b('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x4f2b('0xd'));var qs=require(_0x4f2b('0xe'));var as=require(_0x4f2b('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x4f2b('0x10'));var utils=require('../../config/utils');var config=require(_0x4f2b('0x11'));var licenseUtil=require(_0x4f2b('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3c97d1,_0x5f4e2d){_0x5f4e2d=_0x5f4e2d||0xcc;return function(_0x5debd1){if(_0x5debd1){return _0x3c97d1['sendStatus'](_0x5f4e2d);}return _0x3c97d1[_0x4f2b('0x13')](_0x5f4e2d)['end']();};}function respondWithResult(_0x15408d,_0x5482b8){_0x5482b8=_0x5482b8||0xc8;return function(_0x31059a){if(_0x31059a){return _0x15408d[_0x4f2b('0x13')](_0x5482b8)[_0x4f2b('0x14')](_0x31059a);}};}function respondWithFilteredResult(_0x57881f,_0x9a6f64){return function(_0x216afe){if(_0x216afe){var _0x55f661=typeof _0x9a6f64[_0x4f2b('0x15')]===_0x4f2b('0x16')&&typeof _0x9a6f64[_0x4f2b('0x17')]==='undefined';var _0x1b1cbb=_0x216afe[_0x4f2b('0x18')];var _0x45c51a=_0x55f661?0x0:_0x9a6f64['offset'];var _0x16cfae=_0x55f661?_0x216afe[_0x4f2b('0x18')]:_0x9a6f64['offset']+_0x9a6f64[_0x4f2b('0x17')];var _0x345c6d;if(_0x16cfae>=_0x1b1cbb){_0x16cfae=_0x1b1cbb;_0x345c6d=0xc8;}else{_0x345c6d=0xce;}_0x57881f['status'](_0x345c6d);return _0x57881f['set'](_0x4f2b('0x19'),_0x45c51a+'-'+_0x16cfae+'/'+_0x1b1cbb)[_0x4f2b('0x14')](_0x216afe);}return null;};}function patchUpdates(_0x145445){return function(_0x3f8474){try{jsonpatch[_0x4f2b('0x1a')](_0x3f8474,_0x145445,!![]);}catch(_0x5c6fb8){return BPromise[_0x4f2b('0x1b')](_0x5c6fb8);}return _0x3f8474['save']();};}function saveUpdates(_0x372a1c,_0x30c8e6){return function(_0x428a56){if(_0x428a56){return _0x428a56[_0x4f2b('0x1c')](_0x372a1c)[_0x4f2b('0x1d')](function(_0x22695f){return _0x22695f;});}return null;};}function removeEntity(_0x88b82a,_0x5e786b){return function(_0x5730da){if(_0x5730da){return _0x5730da['destroy']()['then'](function(){_0x88b82a[_0x4f2b('0x13')](0xcc)[_0x4f2b('0x1e')]();});}};}function handleEntityNotFound(_0x1355ca,_0x2c46ff){return function(_0x4040fa){if(!_0x4040fa){_0x1355ca[_0x4f2b('0x1f')](0x194);}return _0x4040fa;};}function handleError(_0x4f2f67,_0x4b9039){_0x4b9039=_0x4b9039||0x1f4;return function(_0x451682){logger[_0x4f2b('0x20')](_0x451682[_0x4f2b('0x21')]);if(_0x451682[_0x4f2b('0x22')]){delete _0x451682[_0x4f2b('0x22')];}_0x4f2f67[_0x4f2b('0x13')](_0x4b9039)[_0x4f2b('0x23')](_0x451682);};}exports['index']=function(_0x10ee29,_0xa082ff){var _0x218824={},_0x498214={},_0x27dd7e={'count':0x0,'rows':[]};var _0x1b472f=_[_0x4f2b('0x24')](db[_0x4f2b('0x25')]['rawAttributes'],function(_0x3537e0){return{'name':_0x3537e0[_0x4f2b('0x26')],'type':_0x3537e0[_0x4f2b('0x27')][_0x4f2b('0x28')]};});_0x498214['model']=_['map'](_0x1b472f,_0x4f2b('0x22'));_0x498214[_0x4f2b('0x29')]=_[_0x4f2b('0x2a')](_0x10ee29['query']);_0x498214['filters']=_['intersection'](_0x498214[_0x4f2b('0x2b')],_0x498214[_0x4f2b('0x29')]);_0x218824['attributes']=_['intersection'](_0x498214['model'],qs['fields'](_0x10ee29[_0x4f2b('0x29')][_0x4f2b('0x2c')]));_0x218824['attributes']=_0x218824[_0x4f2b('0x2d')][_0x4f2b('0x2e')]?_0x218824[_0x4f2b('0x2d')]:_0x498214[_0x4f2b('0x2b')];if(!_0x10ee29[_0x4f2b('0x29')][_0x4f2b('0x2f')](_0x4f2b('0x30'))){_0x218824[_0x4f2b('0x17')]=qs[_0x4f2b('0x17')](_0x10ee29[_0x4f2b('0x29')][_0x4f2b('0x17')]);_0x218824[_0x4f2b('0x15')]=qs['offset'](_0x10ee29[_0x4f2b('0x29')][_0x4f2b('0x15')]);}_0x218824[_0x4f2b('0x31')]=qs[_0x4f2b('0x32')](_0x10ee29['query'][_0x4f2b('0x32')]);_0x218824[_0x4f2b('0x33')]=qs[_0x4f2b('0x34')](_[_0x4f2b('0x35')](_0x10ee29[_0x4f2b('0x29')],_0x498214[_0x4f2b('0x34')]),_0x1b472f);if(_0x10ee29[_0x4f2b('0x29')]['filter']){_0x218824[_0x4f2b('0x33')]=_[_0x4f2b('0x36')](_0x218824[_0x4f2b('0x33')],{'$or':_[_0x4f2b('0x24')](_0x1b472f,function(_0x58ed07){if(_0x58ed07[_0x4f2b('0x27')]!=='VIRTUAL'){var _0x22d3df={};_0x22d3df[_0x58ed07[_0x4f2b('0x22')]]={'$like':'%'+_0x10ee29[_0x4f2b('0x29')][_0x4f2b('0x37')]+'%'};return _0x22d3df;}})});}_0x218824=_[_0x4f2b('0x36')]({},_0x218824,_0x10ee29[_0x4f2b('0x38')]);var _0x490609={'where':_0x218824[_0x4f2b('0x33')]};return db[_0x4f2b('0x25')]['count'](_0x490609)['then'](function(_0x2e7c57){_0x27dd7e[_0x4f2b('0x18')]=_0x2e7c57;if(_0x10ee29['query']['includeAll']){_0x218824[_0x4f2b('0x39')]=[{'all':!![]}];}return db['AnalyticFieldReport'][_0x4f2b('0x3a')](_0x218824);})[_0x4f2b('0x1d')](function(_0x464f57){_0x27dd7e[_0x4f2b('0x3b')]=_0x464f57;return _0x27dd7e;})[_0x4f2b('0x1d')](respondWithFilteredResult(_0xa082ff,_0x218824))[_0x4f2b('0x3c')](handleError(_0xa082ff,null));};exports[_0x4f2b('0x3d')]=function(_0x32e6bc,_0x6d1693){var _0x3678a9={'raw':![],'where':{'id':_0x32e6bc[_0x4f2b('0x3e')]['id']}},_0x27f113={};_0x27f113['model']=_[_0x4f2b('0x2a')](db[_0x4f2b('0x25')][_0x4f2b('0x3f')]);_0x27f113[_0x4f2b('0x29')]=_[_0x4f2b('0x2a')](_0x32e6bc['query']);_0x27f113[_0x4f2b('0x34')]=_[_0x4f2b('0x40')](_0x27f113[_0x4f2b('0x2b')],_0x27f113['query']);_0x3678a9['attributes']=_[_0x4f2b('0x40')](_0x27f113[_0x4f2b('0x2b')],qs[_0x4f2b('0x2c')](_0x32e6bc[_0x4f2b('0x29')][_0x4f2b('0x2c')]));_0x3678a9[_0x4f2b('0x2d')]=_0x3678a9[_0x4f2b('0x2d')][_0x4f2b('0x2e')]?_0x3678a9[_0x4f2b('0x2d')]:_0x27f113[_0x4f2b('0x2b')];if(_0x32e6bc[_0x4f2b('0x29')][_0x4f2b('0x41')]){_0x3678a9[_0x4f2b('0x39')]=[{'all':!![]}];}_0x3678a9=_['merge']({},_0x3678a9,_0x32e6bc['options']);return db['AnalyticFieldReport'][_0x4f2b('0x42')](_0x3678a9)[_0x4f2b('0x1d')](handleEntityNotFound(_0x6d1693,null))[_0x4f2b('0x1d')](respondWithResult(_0x6d1693,null))['catch'](handleError(_0x6d1693,null));};exports[_0x4f2b('0x43')]=function(_0x51fcff,_0x1ee6f1){return db[_0x4f2b('0x25')][_0x4f2b('0x43')](_0x51fcff[_0x4f2b('0x44')],{})[_0x4f2b('0x1d')](respondWithResult(_0x1ee6f1,0xc9))[_0x4f2b('0x3c')](handleError(_0x1ee6f1,null));};exports[_0x4f2b('0x45')]=function(_0x449a24,_0x5435a2){return db[_0x4f2b('0x25')][_0x4f2b('0x45')](_0x449a24[_0x4f2b('0x44')],{'raw':![],'individualHooks':!![]})[_0x4f2b('0x1d')](respondWithResult(_0x5435a2,0xc9))[_0x4f2b('0x3c')](handleError(_0x5435a2,null));};exports[_0x4f2b('0x1c')]=function(_0x1e76e5,_0x4c0f96){if(_0x1e76e5[_0x4f2b('0x44')]['id']){delete _0x1e76e5[_0x4f2b('0x44')]['id'];}return db[_0x4f2b('0x25')][_0x4f2b('0x42')]({'where':{'id':_0x1e76e5['params']['id']}})[_0x4f2b('0x1d')](handleEntityNotFound(_0x4c0f96,null))[_0x4f2b('0x1d')](saveUpdates(_0x1e76e5['body'],null))[_0x4f2b('0x1d')](respondWithResult(_0x4c0f96,null))[_0x4f2b('0x3c')](handleError(_0x4c0f96,null));};exports[_0x4f2b('0x46')]=function(_0x4fa135,_0x4e9960){return db[_0x4f2b('0x25')]['find']({'where':{'id':_0x4fa135[_0x4f2b('0x3e')]['id']}})[_0x4f2b('0x1d')](handleEntityNotFound(_0x4e9960,null))['then'](removeEntity(_0x4e9960,null))[_0x4f2b('0x3c')](handleError(_0x4e9960,null));};exports[_0x4f2b('0x47')]=function(_0x2cdbf8,_0x45b00d){return db[_0x4f2b('0x25')][_0x4f2b('0x46')]({'where':{'id':_0x2cdbf8[_0x4f2b('0x29')][_0x4f2b('0x48')]||[]},'raw':![],'individualHooks':!![]})[_0x4f2b('0x1d')](respondWithResult(_0x45b00d,0xcc))[_0x4f2b('0x3c')](handleError(_0x45b00d,null));};exports[_0x4f2b('0x49')]=function(_0xf0ec7,_0x528476,_0x1d0acc){return db['AnalyticCustomReport']['findOne']({'where':{'id':_0xf0ec7['params']['id']}})[_0x4f2b('0x1d')](handleEntityNotFound(_0x528476,null))['then'](function(_0x5a4388){if(_0x5a4388){return db[_0x4f2b('0x4a')]['transaction'](function(_0x4008e2){return db[_0x4f2b('0x25')][_0x4f2b('0x46')]({'where':{'CustomReportId':_0xf0ec7[_0x4f2b('0x3e')]['id']},'transaction':_0x4008e2})['then'](function(_0x366870){var _0x4fc4f5=_[_0x4f2b('0x24')](_0xf0ec7[_0x4f2b('0x44')],function(_0x25be22){delete _0x25be22['id'];_0x25be22[_0x4f2b('0x4b')]=_0xf0ec7[_0x4f2b('0x3e')]['id'];return _0x25be22;});return db[_0x4f2b('0x25')]['bulkCreate'](_0x4fc4f5,{'transaction':_0x4008e2});});})[_0x4f2b('0x1d')](function(){return db[_0x4f2b('0x25')][_0x4f2b('0x3a')]({'where':{'CustomReportId':_0xf0ec7[_0x4f2b('0x3e')]['id']}});});}})['then'](respondWithResult(_0x528476,null))['catch'](handleError(_0x528476,null));};