70b40f85b2f2de51067734dd48cf0ddb6b4d62ac
[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 _0x6b3d=['jsforce','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','then','error','name','send','index','map','AnalyticFieldReport','rawAttributes','type','key','query','keys','intersection','model','attributes','hasOwnProperty','nolimit','order','sort','filters','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','fields','length','find','create','body','bulkCreate','update','bulkDestroy','destroy','ids','addFields','AnalyticCustomReport','sequelize','transaction','CustomReportId','rimraf','zip-dir','request-promise','moment','path','sox','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x8a09ac,_0x3b4333){var _0x3bf7c3=function(_0x11d3fb){while(--_0x11d3fb){_0x8a09ac['push'](_0x8a09ac['shift']());}};_0x3bf7c3(++_0x3b4333);}(_0x6b3d,0x1d5));var _0xd6b3=function(_0x16b63a,_0xece529){_0x16b63a=_0x16b63a-0x0;var _0x3c0d19=_0x6b3d[_0x16b63a];return _0x3c0d19;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xd6b3('0x0'));var zipdir=require(_0xd6b3('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd6b3('0x2'));var moment=require(_0xd6b3('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xd6b3('0x4'));var sox=require(_0xd6b3('0x5'));var csv=require(_0xd6b3('0x6'));var ejs=require(_0xd6b3('0x7'));var fs=require('fs');var fs_extra=require(_0xd6b3('0x8'));var _=require(_0xd6b3('0x9'));var squel=require(_0xd6b3('0xa'));var crypto=require('crypto');var jsforce=require(_0xd6b3('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xd6b3('0x6'));var querystring=require('querystring');var Papa=require(_0xd6b3('0xc'));var Redis=require(_0xd6b3('0xd'));var authService=require('../../components/auth/service');var qs=require(_0xd6b3('0xe'));var as=require(_0xd6b3('0xf'));var hardwareService=require(_0xd6b3('0x10'));var logger=require(_0xd6b3('0x11'))(_0xd6b3('0x12'));var utils=require(_0xd6b3('0x13'));var config=require(_0xd6b3('0x14'));var licenseUtil=require(_0xd6b3('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x313058,_0x44553f){_0x44553f=_0x44553f||0xcc;return function(_0x2061e8){if(_0x2061e8){return _0x313058[_0xd6b3('0x16')](_0x44553f);}return _0x313058[_0xd6b3('0x17')](_0x44553f)[_0xd6b3('0x18')]();};}function respondWithResult(_0x5ece82,_0xfb53f0){_0xfb53f0=_0xfb53f0||0xc8;return function(_0x2a5c28){if(_0x2a5c28){return _0x5ece82[_0xd6b3('0x17')](_0xfb53f0)[_0xd6b3('0x19')](_0x2a5c28);}};}function respondWithFilteredResult(_0x5f4f13,_0x3f0aac){return function(_0x3e9f1b){if(_0x3e9f1b){var _0xfd88a=typeof _0x3f0aac[_0xd6b3('0x1a')]===_0xd6b3('0x1b')&&typeof _0x3f0aac[_0xd6b3('0x1c')]===_0xd6b3('0x1b');var _0x524893=_0x3e9f1b[_0xd6b3('0x1d')];var _0x939fc1=_0xfd88a?0x0:_0x3f0aac['offset'];var _0x390b4f=_0xfd88a?_0x3e9f1b[_0xd6b3('0x1d')]:_0x3f0aac['offset']+_0x3f0aac['limit'];var _0xa6f71f;if(_0x390b4f>=_0x524893){_0x390b4f=_0x524893;_0xa6f71f=0xc8;}else{_0xa6f71f=0xce;}_0x5f4f13['status'](_0xa6f71f);return _0x5f4f13[_0xd6b3('0x1e')](_0xd6b3('0x1f'),_0x939fc1+'-'+_0x390b4f+'/'+_0x524893)[_0xd6b3('0x19')](_0x3e9f1b);}return null;};}function patchUpdates(_0x3c2047){return function(_0x3d43d2){try{jsonpatch['apply'](_0x3d43d2,_0x3c2047,!![]);}catch(_0x41437b){return BPromise[_0xd6b3('0x20')](_0x41437b);}return _0x3d43d2['save']();};}function saveUpdates(_0x287cf2,_0x12aa66){return function(_0x2b4358){if(_0x2b4358){return _0x2b4358['update'](_0x287cf2)['then'](function(_0x4d4182){return _0x4d4182;});}return null;};}function removeEntity(_0x464953,_0x37ad56){return function(_0x54c5aa){if(_0x54c5aa){return _0x54c5aa['destroy']()[_0xd6b3('0x21')](function(){_0x464953[_0xd6b3('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1b506c,_0x4a0d7e){return function(_0x3f338d){if(!_0x3f338d){_0x1b506c[_0xd6b3('0x16')](0x194);}return _0x3f338d;};}function handleError(_0x1626e5,_0x5df44f){_0x5df44f=_0x5df44f||0x1f4;return function(_0x2e328a){logger[_0xd6b3('0x22')](_0x2e328a['stack']);if(_0x2e328a[_0xd6b3('0x23')]){delete _0x2e328a[_0xd6b3('0x23')];}_0x1626e5[_0xd6b3('0x17')](_0x5df44f)[_0xd6b3('0x24')](_0x2e328a);};}exports[_0xd6b3('0x25')]=function(_0x345347,_0x3e2f26){var _0x1ee60c={},_0x477a99={},_0x29b0e4={'count':0x0,'rows':[]};var _0x19637c=_[_0xd6b3('0x26')](db[_0xd6b3('0x27')][_0xd6b3('0x28')],function(_0x4311c2){return{'name':_0x4311c2['fieldName'],'type':_0x4311c2[_0xd6b3('0x29')][_0xd6b3('0x2a')]};});_0x477a99['model']=_[_0xd6b3('0x26')](_0x19637c,'name');_0x477a99[_0xd6b3('0x2b')]=_[_0xd6b3('0x2c')](_0x345347[_0xd6b3('0x2b')]);_0x477a99['filters']=_[_0xd6b3('0x2d')](_0x477a99[_0xd6b3('0x2e')],_0x477a99[_0xd6b3('0x2b')]);_0x1ee60c[_0xd6b3('0x2f')]=_[_0xd6b3('0x2d')](_0x477a99[_0xd6b3('0x2e')],qs['fields'](_0x345347[_0xd6b3('0x2b')]['fields']));_0x1ee60c['attributes']=_0x1ee60c[_0xd6b3('0x2f')]['length']?_0x1ee60c['attributes']:_0x477a99['model'];if(!_0x345347['query'][_0xd6b3('0x30')](_0xd6b3('0x31'))){_0x1ee60c[_0xd6b3('0x1c')]=qs[_0xd6b3('0x1c')](_0x345347[_0xd6b3('0x2b')]['limit']);_0x1ee60c['offset']=qs[_0xd6b3('0x1a')](_0x345347[_0xd6b3('0x2b')]['offset']);}_0x1ee60c[_0xd6b3('0x32')]=qs['sort'](_0x345347[_0xd6b3('0x2b')][_0xd6b3('0x33')]);_0x1ee60c['where']=qs[_0xd6b3('0x34')](_['pick'](_0x345347['query'],_0x477a99[_0xd6b3('0x34')]),_0x19637c);if(_0x345347[_0xd6b3('0x2b')][_0xd6b3('0x35')]){_0x1ee60c[_0xd6b3('0x36')]=_[_0xd6b3('0x37')](_0x1ee60c[_0xd6b3('0x36')],{'$or':_['map'](_0x19637c,function(_0x3e8c01){if(_0x3e8c01['type']!==_0xd6b3('0x38')){var _0x55e677={};_0x55e677[_0x3e8c01['name']]={'$like':'%'+_0x345347[_0xd6b3('0x2b')][_0xd6b3('0x35')]+'%'};return _0x55e677;}})});}_0x1ee60c=_[_0xd6b3('0x37')]({},_0x1ee60c,_0x345347[_0xd6b3('0x39')]);var _0xb19cfd={'where':_0x1ee60c['where']};return db[_0xd6b3('0x27')]['count'](_0xb19cfd)[_0xd6b3('0x21')](function(_0x844e1d){_0x29b0e4['count']=_0x844e1d;if(_0x345347['query'][_0xd6b3('0x3a')]){_0x1ee60c[_0xd6b3('0x3b')]=[{'all':!![]}];}return db[_0xd6b3('0x27')][_0xd6b3('0x3c')](_0x1ee60c);})[_0xd6b3('0x21')](function(_0x7ceecc){_0x29b0e4[_0xd6b3('0x3d')]=_0x7ceecc;return _0x29b0e4;})[_0xd6b3('0x21')](respondWithFilteredResult(_0x3e2f26,_0x1ee60c))[_0xd6b3('0x3e')](handleError(_0x3e2f26,null));};exports[_0xd6b3('0x3f')]=function(_0x3e090a,_0x2144c9){var _0x4db27b={'raw':![],'where':{'id':_0x3e090a[_0xd6b3('0x40')]['id']}},_0xec106e={};_0xec106e[_0xd6b3('0x2e')]=_[_0xd6b3('0x2c')](db[_0xd6b3('0x27')][_0xd6b3('0x28')]);_0xec106e[_0xd6b3('0x2b')]=_['keys'](_0x3e090a[_0xd6b3('0x2b')]);_0xec106e[_0xd6b3('0x34')]=_['intersection'](_0xec106e[_0xd6b3('0x2e')],_0xec106e['query']);_0x4db27b[_0xd6b3('0x2f')]=_[_0xd6b3('0x2d')](_0xec106e[_0xd6b3('0x2e')],qs['fields'](_0x3e090a['query'][_0xd6b3('0x41')]));_0x4db27b['attributes']=_0x4db27b[_0xd6b3('0x2f')][_0xd6b3('0x42')]?_0x4db27b['attributes']:_0xec106e[_0xd6b3('0x2e')];if(_0x3e090a[_0xd6b3('0x2b')][_0xd6b3('0x3a')]){_0x4db27b[_0xd6b3('0x3b')]=[{'all':!![]}];}_0x4db27b=_[_0xd6b3('0x37')]({},_0x4db27b,_0x3e090a['options']);return db[_0xd6b3('0x27')][_0xd6b3('0x43')](_0x4db27b)['then'](handleEntityNotFound(_0x2144c9,null))[_0xd6b3('0x21')](respondWithResult(_0x2144c9,null))[_0xd6b3('0x3e')](handleError(_0x2144c9,null));};exports[_0xd6b3('0x44')]=function(_0x2081ea,_0x304525){return db[_0xd6b3('0x27')][_0xd6b3('0x44')](_0x2081ea[_0xd6b3('0x45')],{})[_0xd6b3('0x21')](respondWithResult(_0x304525,0xc9))[_0xd6b3('0x3e')](handleError(_0x304525,null));};exports['bulkCreate']=function(_0x591431,_0x1c41dd){return db[_0xd6b3('0x27')][_0xd6b3('0x46')](_0x591431[_0xd6b3('0x45')],{'raw':![],'individualHooks':!![]})['then'](respondWithResult(_0x1c41dd,0xc9))['catch'](handleError(_0x1c41dd,null));};exports[_0xd6b3('0x47')]=function(_0x98fc26,_0x2dd5d7){if(_0x98fc26[_0xd6b3('0x45')]['id']){delete _0x98fc26['body']['id'];}return db[_0xd6b3('0x27')][_0xd6b3('0x43')]({'where':{'id':_0x98fc26['params']['id']}})['then'](handleEntityNotFound(_0x2dd5d7,null))[_0xd6b3('0x21')](saveUpdates(_0x98fc26['body'],null))['then'](respondWithResult(_0x2dd5d7,null))['catch'](handleError(_0x2dd5d7,null));};exports['destroy']=function(_0x5171cf,_0x334d47){return db[_0xd6b3('0x27')][_0xd6b3('0x43')]({'where':{'id':_0x5171cf[_0xd6b3('0x40')]['id']}})[_0xd6b3('0x21')](handleEntityNotFound(_0x334d47,null))[_0xd6b3('0x21')](removeEntity(_0x334d47,null))[_0xd6b3('0x3e')](handleError(_0x334d47,null));};exports[_0xd6b3('0x48')]=function(_0x60c639,_0x1e12c6){return db[_0xd6b3('0x27')][_0xd6b3('0x49')]({'where':{'id':_0x60c639[_0xd6b3('0x2b')][_0xd6b3('0x4a')]||[]},'raw':![],'individualHooks':!![]})[_0xd6b3('0x21')](respondWithResult(_0x1e12c6,0xcc))[_0xd6b3('0x3e')](handleError(_0x1e12c6,null));};exports[_0xd6b3('0x4b')]=function(_0x3fd728,_0x5d0a13,_0x539250){return db[_0xd6b3('0x4c')]['findOne']({'where':{'id':_0x3fd728[_0xd6b3('0x40')]['id']}})[_0xd6b3('0x21')](handleEntityNotFound(_0x5d0a13,null))[_0xd6b3('0x21')](function(_0x14caa9){if(_0x14caa9){return db[_0xd6b3('0x4d')][_0xd6b3('0x4e')](function(_0x316fa2){return db[_0xd6b3('0x27')][_0xd6b3('0x49')]({'where':{'CustomReportId':_0x3fd728[_0xd6b3('0x40')]['id']},'transaction':_0x316fa2})['then'](function(_0x2d81a4){var _0x41dcf4=_['map'](_0x3fd728[_0xd6b3('0x45')],function(_0x12029c){delete _0x12029c['id'];_0x12029c[_0xd6b3('0x4f')]=_0x3fd728['params']['id'];return _0x12029c;});return db[_0xd6b3('0x27')][_0xd6b3('0x46')](_0x41dcf4,{'transaction':_0x316fa2});});})[_0xd6b3('0x21')](function(){return db[_0xd6b3('0x27')]['findAll']({'where':{'CustomReportId':_0x3fd728[_0xd6b3('0x40')]['id']}});});}})[_0xd6b3('0x21')](respondWithResult(_0x5d0a13,null))[_0xd6b3('0x3e')](handleError(_0x5d0a13,null));};