f200507aeb65448f10a4a95e07f96b0e7b26cf40
[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 _0xe040=['filters','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','rawAttributes','merge','create','body','bulkCreate','find','params','destroy','bulkDestroy','ids','addFields','sequelize','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','api','../../config/environment','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','then','error','stack','name','send','index','map','AnalyticFieldReport','fieldName','type','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','pick'];(function(_0x32b184,_0x585670){var _0x51173f=function(_0xff244d){while(--_0xff244d){_0x32b184['push'](_0x32b184['shift']());}};_0x51173f(++_0x585670);}(_0xe040,0x1ea));var _0x0e04=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe040[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x0e04('0x0'));var rimraf=require(_0x0e04('0x1'));var zipdir=require(_0x0e04('0x2'));var jsonpatch=require(_0x0e04('0x3'));var rp=require(_0x0e04('0x4'));var moment=require(_0x0e04('0x5'));var BPromise=require(_0x0e04('0x6'));var Mustache=require(_0x0e04('0x7'));var util=require(_0x0e04('0x8'));var path=require(_0x0e04('0x9'));var sox=require(_0x0e04('0xa'));var csv=require(_0x0e04('0xb'));var ejs=require(_0x0e04('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0e04('0xd'));var squel=require(_0x0e04('0xe'));var crypto=require(_0x0e04('0xf'));var jsforce=require(_0x0e04('0x10'));var deskjs=require(_0x0e04('0x11'));var toCsv=require('to-csv');var querystring=require(_0x0e04('0x12'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x0e04('0x13'));var qs=require(_0x0e04('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x0e04('0x15'));var utils=require('../../config/utils');var config=require(_0x0e04('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x52d237,_0x353867){_0x353867=_0x353867||0xcc;return function(_0x2ed50b){if(_0x2ed50b){return _0x52d237[_0x0e04('0x17')](_0x353867);}return _0x52d237[_0x0e04('0x18')](_0x353867)[_0x0e04('0x19')]();};}function respondWithResult(_0x9b4ad4,_0x336f77){_0x336f77=_0x336f77||0xc8;return function(_0x43b54b){if(_0x43b54b){return _0x9b4ad4[_0x0e04('0x18')](_0x336f77)[_0x0e04('0x1a')](_0x43b54b);}};}function respondWithFilteredResult(_0x276d35,_0x3e717f){return function(_0x19f151){if(_0x19f151){var _0x819ea0=typeof _0x3e717f[_0x0e04('0x1b')]===_0x0e04('0x1c')&&typeof _0x3e717f[_0x0e04('0x1d')]===_0x0e04('0x1c');var _0x483d0e=_0x19f151[_0x0e04('0x1e')];var _0x585ac1=_0x819ea0?0x0:_0x3e717f[_0x0e04('0x1b')];var _0x2f75c7=_0x819ea0?_0x19f151['count']:_0x3e717f[_0x0e04('0x1b')]+_0x3e717f[_0x0e04('0x1d')];var _0x837663;if(_0x2f75c7>=_0x483d0e){_0x2f75c7=_0x483d0e;_0x837663=0xc8;}else{_0x837663=0xce;}_0x276d35[_0x0e04('0x18')](_0x837663);return _0x276d35[_0x0e04('0x1f')](_0x0e04('0x20'),_0x585ac1+'-'+_0x2f75c7+'/'+_0x483d0e)['json'](_0x19f151);}return null;};}function patchUpdates(_0x465715){return function(_0x28f848){try{jsonpatch['apply'](_0x28f848,_0x465715,!![]);}catch(_0x199302){return BPromise[_0x0e04('0x21')](_0x199302);}return _0x28f848['save']();};}function saveUpdates(_0x1fa6b4,_0xe82e14){return function(_0x43cbcd){if(_0x43cbcd){return _0x43cbcd['update'](_0x1fa6b4)[_0x0e04('0x22')](function(_0x20384b){return _0x20384b;});}return null;};}function removeEntity(_0x388475,_0x72a45b){return function(_0x34ac5c){if(_0x34ac5c){return _0x34ac5c['destroy']()[_0x0e04('0x22')](function(){_0x388475['status'](0xcc)[_0x0e04('0x19')]();});}};}function handleEntityNotFound(_0x52e43d,_0x436d00){return function(_0x177a00){if(!_0x177a00){_0x52e43d[_0x0e04('0x17')](0x194);}return _0x177a00;};}function handleError(_0x3a19ef,_0x27af2b){_0x27af2b=_0x27af2b||0x1f4;return function(_0x431c22){logger[_0x0e04('0x23')](_0x431c22[_0x0e04('0x24')]);if(_0x431c22[_0x0e04('0x25')]){delete _0x431c22[_0x0e04('0x25')];}_0x3a19ef['status'](_0x27af2b)[_0x0e04('0x26')](_0x431c22);};}exports[_0x0e04('0x27')]=function(_0x315bda,_0x41279b){var _0xdb009f={},_0x55936b={},_0xd6ab9c={'count':0x0,'rows':[]};var _0x56dc6c=_[_0x0e04('0x28')](db[_0x0e04('0x29')]['rawAttributes'],function(_0x5e818a){return{'name':_0x5e818a[_0x0e04('0x2a')],'type':_0x5e818a[_0x0e04('0x2b')][_0x0e04('0x2c')]};});_0x55936b[_0x0e04('0x2d')]=_['map'](_0x56dc6c,_0x0e04('0x25'));_0x55936b[_0x0e04('0x2e')]=_[_0x0e04('0x2f')](_0x315bda[_0x0e04('0x2e')]);_0x55936b['filters']=_[_0x0e04('0x30')](_0x55936b[_0x0e04('0x2d')],_0x55936b[_0x0e04('0x2e')]);_0xdb009f['attributes']=_[_0x0e04('0x30')](_0x55936b[_0x0e04('0x2d')],qs[_0x0e04('0x31')](_0x315bda[_0x0e04('0x2e')][_0x0e04('0x31')]));_0xdb009f[_0x0e04('0x32')]=_0xdb009f['attributes']['length']?_0xdb009f['attributes']:_0x55936b[_0x0e04('0x2d')];if(!_0x315bda[_0x0e04('0x2e')][_0x0e04('0x33')](_0x0e04('0x34'))){_0xdb009f[_0x0e04('0x1d')]=qs[_0x0e04('0x1d')](_0x315bda['query']['limit']);_0xdb009f['offset']=qs['offset'](_0x315bda[_0x0e04('0x2e')][_0x0e04('0x1b')]);}_0xdb009f['order']=qs['sort'](_0x315bda[_0x0e04('0x2e')][_0x0e04('0x35')]);_0xdb009f[_0x0e04('0x36')]=qs['filters'](_[_0x0e04('0x37')](_0x315bda[_0x0e04('0x2e')],_0x55936b[_0x0e04('0x38')]),_0x56dc6c);if(_0x315bda[_0x0e04('0x2e')]['filter']){_0xdb009f[_0x0e04('0x36')]=_['merge'](_0xdb009f[_0x0e04('0x36')],{'$or':_['map'](_0x56dc6c,function(_0x127be4){if(_0x127be4[_0x0e04('0x2b')]!==_0x0e04('0x39')){var _0x196cfa={};_0x196cfa[_0x127be4[_0x0e04('0x25')]]={'$like':'%'+_0x315bda[_0x0e04('0x2e')][_0x0e04('0x3a')]+'%'};return _0x196cfa;}})});}_0xdb009f=_['merge']({},_0xdb009f,_0x315bda[_0x0e04('0x3b')]);var _0x2e5792={'where':_0xdb009f[_0x0e04('0x36')]};return db['AnalyticFieldReport'][_0x0e04('0x1e')](_0x2e5792)[_0x0e04('0x22')](function(_0x5f3a83){_0xd6ab9c[_0x0e04('0x1e')]=_0x5f3a83;if(_0x315bda[_0x0e04('0x2e')][_0x0e04('0x3c')]){_0xdb009f[_0x0e04('0x3d')]=[{'all':!![]}];}return db[_0x0e04('0x29')][_0x0e04('0x3e')](_0xdb009f);})[_0x0e04('0x22')](function(_0x2cbea1){_0xd6ab9c[_0x0e04('0x3f')]=_0x2cbea1;return _0xd6ab9c;})[_0x0e04('0x22')](respondWithFilteredResult(_0x41279b,_0xdb009f))[_0x0e04('0x40')](handleError(_0x41279b,null));};exports[_0x0e04('0x41')]=function(_0x42d347,_0x4effe4){var _0x26bd97={'raw':![],'where':{'id':_0x42d347['params']['id']}},_0x18b05f={};_0x18b05f[_0x0e04('0x2d')]=_[_0x0e04('0x2f')](db['AnalyticFieldReport'][_0x0e04('0x42')]);_0x18b05f['query']=_[_0x0e04('0x2f')](_0x42d347['query']);_0x18b05f[_0x0e04('0x38')]=_['intersection'](_0x18b05f['model'],_0x18b05f[_0x0e04('0x2e')]);_0x26bd97['attributes']=_['intersection'](_0x18b05f[_0x0e04('0x2d')],qs[_0x0e04('0x31')](_0x42d347[_0x0e04('0x2e')][_0x0e04('0x31')]));_0x26bd97[_0x0e04('0x32')]=_0x26bd97[_0x0e04('0x32')]['length']?_0x26bd97[_0x0e04('0x32')]:_0x18b05f[_0x0e04('0x2d')];if(_0x42d347[_0x0e04('0x2e')][_0x0e04('0x3c')]){_0x26bd97[_0x0e04('0x3d')]=[{'all':!![]}];}_0x26bd97=_[_0x0e04('0x43')]({},_0x26bd97,_0x42d347['options']);return db['AnalyticFieldReport']['find'](_0x26bd97)[_0x0e04('0x22')](handleEntityNotFound(_0x4effe4,null))[_0x0e04('0x22')](respondWithResult(_0x4effe4,null))['catch'](handleError(_0x4effe4,null));};exports[_0x0e04('0x44')]=function(_0x7a7b00,_0x440dcf){return db[_0x0e04('0x29')][_0x0e04('0x44')](_0x7a7b00[_0x0e04('0x45')],{})[_0x0e04('0x22')](respondWithResult(_0x440dcf,0xc9))['catch'](handleError(_0x440dcf,null));};exports[_0x0e04('0x46')]=function(_0x252e98,_0x3a7b70){return db['AnalyticFieldReport'][_0x0e04('0x46')](_0x252e98['body'],{'raw':![],'individualHooks':!![]})['then'](respondWithResult(_0x3a7b70,0xc9))[_0x0e04('0x40')](handleError(_0x3a7b70,null));};exports['update']=function(_0x2adb0c,_0x5a6e11){if(_0x2adb0c[_0x0e04('0x45')]['id']){delete _0x2adb0c['body']['id'];}return db[_0x0e04('0x29')][_0x0e04('0x47')]({'where':{'id':_0x2adb0c[_0x0e04('0x48')]['id']}})[_0x0e04('0x22')](handleEntityNotFound(_0x5a6e11,null))[_0x0e04('0x22')](saveUpdates(_0x2adb0c[_0x0e04('0x45')],null))[_0x0e04('0x22')](respondWithResult(_0x5a6e11,null))['catch'](handleError(_0x5a6e11,null));};exports[_0x0e04('0x49')]=function(_0xe6f9ff,_0x1d2e46){return db[_0x0e04('0x29')][_0x0e04('0x47')]({'where':{'id':_0xe6f9ff['params']['id']}})[_0x0e04('0x22')](handleEntityNotFound(_0x1d2e46,null))[_0x0e04('0x22')](removeEntity(_0x1d2e46,null))[_0x0e04('0x40')](handleError(_0x1d2e46,null));};exports[_0x0e04('0x4a')]=function(_0xf1a75c,_0x5c4c5d){return db[_0x0e04('0x29')][_0x0e04('0x49')]({'where':{'id':_0xf1a75c[_0x0e04('0x2e')][_0x0e04('0x4b')]||[]},'raw':![],'individualHooks':!![]})[_0x0e04('0x22')](respondWithResult(_0x5c4c5d,0xcc))[_0x0e04('0x40')](handleError(_0x5c4c5d,null));};exports[_0x0e04('0x4c')]=function(_0x586139,_0x2c9b0e,_0x5821a7){return db['AnalyticCustomReport']['findOne']({'where':{'id':_0x586139[_0x0e04('0x48')]['id']}})[_0x0e04('0x22')](handleEntityNotFound(_0x2c9b0e,null))[_0x0e04('0x22')](function(_0x15f1a8){if(_0x15f1a8){return db[_0x0e04('0x4d')]['transaction'](function(_0x391a22){return db[_0x0e04('0x29')][_0x0e04('0x49')]({'where':{'CustomReportId':_0x586139[_0x0e04('0x48')]['id']},'transaction':_0x391a22})[_0x0e04('0x22')](function(_0x35359e){var _0x4a14f6=_['map'](_0x586139[_0x0e04('0x45')],function(_0xa9a02d){delete _0xa9a02d['id'];_0xa9a02d['CustomReportId']=_0x586139['params']['id'];return _0xa9a02d;});return db['AnalyticFieldReport'][_0x0e04('0x46')](_0x4a14f6,{'transaction':_0x391a22});});})[_0x0e04('0x22')](function(){return db[_0x0e04('0x29')][_0x0e04('0x3e')]({'where':{'CustomReportId':_0x586139['params']['id']}});});}})[_0x0e04('0x22')](respondWithResult(_0x2c9b0e,null))[_0x0e04('0x40')](handleError(_0x2c9b0e,null));};