418c6a45d5e9aae6a4a3a281a3808353e25a3cef
[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 _0xd3ef=['moment','mustache','util','sox','to-csv','ejs','lodash','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','count','offset','set','Content-Range','apply','update','then','sendStatus','error','stack','name','send','index','AnalyticFieldReport','rawAttributes','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','merge','map','type','VIRTUAL','filter','options','includeAll','findAll','rows','catch','show','params','include','find','create','bulkCreate','body','destroy','bulkDestroy','ids','addFields','AnalyticCustomReport','findOne','sequelize','transaction','html-pdf','zip-dir','fast-json-patch','request-promise'];(function(_0x48dd24,_0x51d0ab){var _0x246705=function(_0x48efc6){while(--_0x48efc6){_0x48dd24['push'](_0x48dd24['shift']());}};_0x246705(++_0x51d0ab);}(_0xd3ef,0xec));var _0xfd3e=function(_0x521a01,_0x400383){_0x521a01=_0x521a01-0x0;var _0x156998=_0xd3ef[_0x521a01];return _0x156998;};'use strict';var pdf=require(_0xfd3e('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xfd3e('0x1'));var jsonpatch=require(_0xfd3e('0x2'));var rp=require(_0xfd3e('0x3'));var moment=require(_0xfd3e('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xfd3e('0x5'));var util=require(_0xfd3e('0x6'));var path=require('path');var sox=require(_0xfd3e('0x7'));var csv=require(_0xfd3e('0x8'));var ejs=require(_0xfd3e('0x9'));var fs=require('fs');var _=require(_0xfd3e('0xa'));var squel=require('squel');var crypto=require(_0xfd3e('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xfd3e('0x8'));var querystring=require(_0xfd3e('0xc'));var Papa=require(_0xfd3e('0xd'));var Redis=require(_0xfd3e('0xe'));var authService=require(_0xfd3e('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xfd3e('0x10'))(_0xfd3e('0x11'));var utils=require(_0xfd3e('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0xfd3e('0x13'));var db=require(_0xfd3e('0x14'))['db'];function respondWithStatusCode(_0x59cf4a,_0x4e98e4){_0x4e98e4=_0x4e98e4||0xcc;return function(_0x1f7990){if(_0x1f7990){return _0x59cf4a['sendStatus'](_0x4e98e4);}return _0x59cf4a[_0xfd3e('0x15')](_0x4e98e4)[_0xfd3e('0x16')]();};}function respondWithResult(_0x3c38de,_0x10faf2){_0x10faf2=_0x10faf2||0xc8;return function(_0x51b8b5){if(_0x51b8b5){return _0x3c38de['status'](_0x10faf2)[_0xfd3e('0x17')](_0x51b8b5);}};}function respondWithFilteredResult(_0x24e730,_0x1f7851){return function(_0x49d422){if(_0x49d422){var _0x4fe409=_0x49d422[_0xfd3e('0x18')],_0x57137a=_0x1f7851[_0xfd3e('0x19')],_0x42253e=_0x1f7851[_0xfd3e('0x19')]+_0x1f7851['limit'],_0x13319a;if(_0x42253e>=_0x4fe409){_0x42253e=_0x4fe409;_0x13319a=0xc8;}else{_0x13319a=0xce;}_0x24e730[_0xfd3e('0x15')](_0x13319a);return _0x24e730[_0xfd3e('0x1a')](_0xfd3e('0x1b'),_0x57137a+'-'+_0x42253e+'/'+_0x4fe409)[_0xfd3e('0x17')](_0x49d422);}return null;};}function patchUpdates(_0x2b762d){return function(_0x50b526){try{jsonpatch[_0xfd3e('0x1c')](_0x50b526,_0x2b762d,!![]);}catch(_0x1b1841){return BPromise['reject'](_0x1b1841);}return _0x50b526['save']();};}function saveUpdates(_0x27a50f,_0x4ccb34){return function(_0x558f25){if(_0x558f25){return _0x558f25[_0xfd3e('0x1d')](_0x27a50f)['then'](function(_0x27e070){return _0x27e070;});}return null;};}function removeEntity(_0x1a8954,_0x1f6690){return function(_0x2f1c30){if(_0x2f1c30){return _0x2f1c30['destroy']()[_0xfd3e('0x1e')](function(){_0x1a8954['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x166ded,_0x36904b){return function(_0x516912){if(!_0x516912){_0x166ded[_0xfd3e('0x1f')](0x194);}return _0x516912;};}function handleError(_0x19331f,_0x1e7236){_0x1e7236=_0x1e7236||0x1f4;return function(_0x3b9420){logger[_0xfd3e('0x20')](_0x3b9420[_0xfd3e('0x21')]);if(_0x3b9420[_0xfd3e('0x22')]){delete _0x3b9420[_0xfd3e('0x22')];}_0x19331f['status'](_0x1e7236)[_0xfd3e('0x23')](_0x3b9420);};}exports[_0xfd3e('0x24')]=function(_0x3a47e6,_0x455c33){var _0x51251d={},_0x3cb44f={},_0xdee716={'count':0x0,'rows':[]};var _0x15332c=_['map'](db[_0xfd3e('0x25')][_0xfd3e('0x26')],function(_0x466fad){return{'name':_0x466fad['fieldName'],'type':_0x466fad['type'][_0xfd3e('0x27')]};});_0x3cb44f[_0xfd3e('0x28')]=_['map'](_0x15332c,'name');_0x3cb44f['query']=_[_0xfd3e('0x29')](_0x3a47e6[_0xfd3e('0x2a')]);_0x3cb44f[_0xfd3e('0x2b')]=_[_0xfd3e('0x2c')](_0x3cb44f[_0xfd3e('0x28')],_0x3cb44f['query']);_0x51251d[_0xfd3e('0x2d')]=_['intersection'](_0x3cb44f[_0xfd3e('0x28')],qs[_0xfd3e('0x2e')](_0x3a47e6[_0xfd3e('0x2a')][_0xfd3e('0x2e')]));_0x51251d[_0xfd3e('0x2d')]=_0x51251d[_0xfd3e('0x2d')][_0xfd3e('0x2f')]?_0x51251d['attributes']:_0x3cb44f['model'];if(!_0x3a47e6[_0xfd3e('0x2a')][_0xfd3e('0x30')](_0xfd3e('0x31'))){_0x51251d[_0xfd3e('0x32')]=qs[_0xfd3e('0x32')](_0x3a47e6[_0xfd3e('0x2a')]['limit']);_0x51251d[_0xfd3e('0x19')]=qs[_0xfd3e('0x19')](_0x3a47e6[_0xfd3e('0x2a')][_0xfd3e('0x19')]);}_0x51251d[_0xfd3e('0x33')]=qs[_0xfd3e('0x34')](_0x3a47e6[_0xfd3e('0x2a')]['sort']);_0x51251d[_0xfd3e('0x35')]=qs[_0xfd3e('0x2b')](_[_0xfd3e('0x36')](_0x3a47e6['query'],_0x3cb44f[_0xfd3e('0x2b')]),_0x15332c);if(_0x3a47e6[_0xfd3e('0x2a')]['filter']){_0x51251d['where']=_[_0xfd3e('0x37')](_0x51251d[_0xfd3e('0x35')],{'$or':_[_0xfd3e('0x38')](_0x15332c,function(_0x52de59){if(_0x52de59[_0xfd3e('0x39')]!==_0xfd3e('0x3a')){var _0x38f0e5={};_0x38f0e5[_0x52de59[_0xfd3e('0x22')]]={'$like':'%'+_0x3a47e6[_0xfd3e('0x2a')][_0xfd3e('0x3b')]+'%'};return _0x38f0e5;}})});}_0x51251d=_['merge']({},_0x51251d,_0x3a47e6[_0xfd3e('0x3c')]);var _0x58dc70={'where':_0x51251d['where']};return db['AnalyticFieldReport'][_0xfd3e('0x18')](_0x58dc70)[_0xfd3e('0x1e')](function(_0x2b4d02){_0xdee716[_0xfd3e('0x18')]=_0x2b4d02;if(_0x3a47e6[_0xfd3e('0x2a')][_0xfd3e('0x3d')]){_0x51251d['include']=[{'all':!![]}];}return db['AnalyticFieldReport'][_0xfd3e('0x3e')](_0x51251d);})['then'](function(_0xbba2c3){_0xdee716[_0xfd3e('0x3f')]=_0xbba2c3;return _0xdee716;})[_0xfd3e('0x1e')](respondWithFilteredResult(_0x455c33,_0x51251d))[_0xfd3e('0x40')](handleError(_0x455c33,null));};exports[_0xfd3e('0x41')]=function(_0x1a153b,_0x1014dd){var _0x68b6e2={'raw':![],'where':{'id':_0x1a153b[_0xfd3e('0x42')]['id']}},_0x1aa2a7={};_0x1aa2a7['model']=_[_0xfd3e('0x29')](db[_0xfd3e('0x25')][_0xfd3e('0x26')]);_0x1aa2a7[_0xfd3e('0x2a')]=_[_0xfd3e('0x29')](_0x1a153b['query']);_0x1aa2a7[_0xfd3e('0x2b')]=_[_0xfd3e('0x2c')](_0x1aa2a7[_0xfd3e('0x28')],_0x1aa2a7[_0xfd3e('0x2a')]);_0x68b6e2['attributes']=_[_0xfd3e('0x2c')](_0x1aa2a7[_0xfd3e('0x28')],qs[_0xfd3e('0x2e')](_0x1a153b['query'][_0xfd3e('0x2e')]));_0x68b6e2[_0xfd3e('0x2d')]=_0x68b6e2[_0xfd3e('0x2d')][_0xfd3e('0x2f')]?_0x68b6e2[_0xfd3e('0x2d')]:_0x1aa2a7[_0xfd3e('0x28')];if(_0x1a153b[_0xfd3e('0x2a')]['includeAll']){_0x68b6e2[_0xfd3e('0x43')]=[{'all':!![]}];}_0x68b6e2=_[_0xfd3e('0x37')]({},_0x68b6e2,_0x1a153b[_0xfd3e('0x3c')]);return db[_0xfd3e('0x25')][_0xfd3e('0x44')](_0x68b6e2)[_0xfd3e('0x1e')](handleEntityNotFound(_0x1014dd,null))['then'](respondWithResult(_0x1014dd,null))[_0xfd3e('0x40')](handleError(_0x1014dd,null));};exports[_0xfd3e('0x45')]=function(_0x3e79cb,_0x25ff63){return db[_0xfd3e('0x25')]['create'](_0x3e79cb['body'],{})[_0xfd3e('0x1e')](respondWithResult(_0x25ff63,0xc9))[_0xfd3e('0x40')](handleError(_0x25ff63,null));};exports[_0xfd3e('0x46')]=function(_0xf4f41e,_0x1c74c1){return db[_0xfd3e('0x25')][_0xfd3e('0x46')](_0xf4f41e[_0xfd3e('0x47')],{'raw':![],'individualHooks':!![]})[_0xfd3e('0x1e')](respondWithResult(_0x1c74c1,0xc9))['catch'](handleError(_0x1c74c1,null));};exports[_0xfd3e('0x1d')]=function(_0x31468f,_0xde678c){if(_0x31468f[_0xfd3e('0x47')]['id']){delete _0x31468f['body']['id'];}return db['AnalyticFieldReport'][_0xfd3e('0x44')]({'where':{'id':_0x31468f[_0xfd3e('0x42')]['id']}})[_0xfd3e('0x1e')](handleEntityNotFound(_0xde678c,null))['then'](saveUpdates(_0x31468f[_0xfd3e('0x47')],null))[_0xfd3e('0x1e')](respondWithResult(_0xde678c,null))[_0xfd3e('0x40')](handleError(_0xde678c,null));};exports[_0xfd3e('0x48')]=function(_0x1b3e79,_0x317437){return db['AnalyticFieldReport'][_0xfd3e('0x44')]({'where':{'id':_0x1b3e79['params']['id']}})[_0xfd3e('0x1e')](handleEntityNotFound(_0x317437,null))[_0xfd3e('0x1e')](removeEntity(_0x317437,null))['catch'](handleError(_0x317437,null));};exports[_0xfd3e('0x49')]=function(_0x320998,_0x421bf8){return db[_0xfd3e('0x25')][_0xfd3e('0x48')]({'where':{'id':_0x320998['query'][_0xfd3e('0x4a')]||[]},'raw':![],'individualHooks':!![]})[_0xfd3e('0x1e')](respondWithResult(_0x421bf8,0xcc))[_0xfd3e('0x40')](handleError(_0x421bf8,null));};exports[_0xfd3e('0x4b')]=function(_0x4cfe22,_0x41d8e2,_0x560b7e){return db[_0xfd3e('0x4c')][_0xfd3e('0x4d')]({'where':{'id':_0x4cfe22[_0xfd3e('0x42')]['id']}})['then'](handleEntityNotFound(_0x41d8e2,null))[_0xfd3e('0x1e')](function(_0x48b14f){if(_0x48b14f){return db[_0xfd3e('0x4e')][_0xfd3e('0x4f')](function(_0x24403c){return db[_0xfd3e('0x25')]['destroy']({'where':{'CustomReportId':_0x4cfe22[_0xfd3e('0x42')]['id']},'transaction':_0x24403c})[_0xfd3e('0x1e')](function(_0x2fa279){var _0x4929c1=_[_0xfd3e('0x38')](_0x4cfe22[_0xfd3e('0x47')],function(_0x444d8d){delete _0x444d8d['id'];_0x444d8d['CustomReportId']=_0x4cfe22[_0xfd3e('0x42')]['id'];return _0x444d8d;});return db[_0xfd3e('0x25')][_0xfd3e('0x46')](_0x4929c1,{'transaction':_0x24403c});});})['then'](function(){return db[_0xfd3e('0x25')][_0xfd3e('0x3e')]({'where':{'CustomReportId':_0x4cfe22['params']['id']}});});}})[_0xfd3e('0x1e')](respondWithResult(_0x41d8e2,null))['catch'](handleError(_0x41d8e2,null));};