28286c5cb8eb9dfa788815c50ccd34f856a2a361
[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 _0x6d45=['../../mysqldb','status','end','json','undefined','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','name','send','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','merge','filter','where','AnalyticFieldReport','findAll','rows','catch','show','params','includeAll','include','options','find','create','bulkCreate','body','bulkDestroy','AnalyticCustomReport','findOne','sequelize','transaction','eml-format','rimraf','request-promise','moment','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util'];(function(_0x3dadef,_0x2ac9f5){var _0x42b867=function(_0x973c82){while(--_0x973c82){_0x3dadef['push'](_0x3dadef['shift']());}};_0x42b867(++_0x2ac9f5);}(_0x6d45,0xde));var _0x56d4=function(_0x3799cd,_0x131494){_0x3799cd=_0x3799cd-0x0;var _0x3410d3=_0x6d45[_0x3799cd];return _0x3410d3;};'use strict';var emlformat=require(_0x56d4('0x0'));var rimraf=require(_0x56d4('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x56d4('0x2'));var moment=require(_0x56d4('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x56d4('0x4'));var util=require(_0x56d4('0x5'));var path=require('path');var sox=require(_0x56d4('0x6'));var csv=require(_0x56d4('0x7'));var ejs=require(_0x56d4('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x56d4('0x9'));var squel=require(_0x56d4('0xa'));var crypto=require(_0x56d4('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x56d4('0xc'));var toCsv=require(_0x56d4('0x7'));var querystring=require(_0x56d4('0xd'));var Papa=require(_0x56d4('0xe'));var Redis=require(_0x56d4('0xf'));var authService=require(_0x56d4('0x10'));var qs=require(_0x56d4('0x11'));var as=require(_0x56d4('0x12'));var hardwareService=require(_0x56d4('0x13'));var logger=require(_0x56d4('0x14'))('api');var utils=require(_0x56d4('0x15'));var config=require(_0x56d4('0x16'));var licenseUtil=require(_0x56d4('0x17'));var db=require(_0x56d4('0x18'))['db'];function respondWithStatusCode(_0x5172b7,_0x7e45f3){_0x7e45f3=_0x7e45f3||0xcc;return function(_0x53781e){if(_0x53781e){return _0x5172b7['sendStatus'](_0x7e45f3);}return _0x5172b7[_0x56d4('0x19')](_0x7e45f3)[_0x56d4('0x1a')]();};}function respondWithResult(_0x238ea5,_0x114bea){_0x114bea=_0x114bea||0xc8;return function(_0x44361d){if(_0x44361d){return _0x238ea5[_0x56d4('0x19')](_0x114bea)[_0x56d4('0x1b')](_0x44361d);}};}function respondWithFilteredResult(_0x5944e9,_0x59faab){return function(_0x1fca52){if(_0x1fca52){var _0x428641=typeof _0x59faab['offset']===_0x56d4('0x1c')&&typeof _0x59faab['limit']==='undefined';var _0x19fb3b=_0x1fca52[_0x56d4('0x1d')];var _0x1a6a9a=_0x428641?0x0:_0x59faab['offset'];var _0x35ae27=_0x428641?_0x1fca52[_0x56d4('0x1d')]:_0x59faab[_0x56d4('0x1e')]+_0x59faab[_0x56d4('0x1f')];var _0xf525ff;if(_0x35ae27>=_0x19fb3b){_0x35ae27=_0x19fb3b;_0xf525ff=0xc8;}else{_0xf525ff=0xce;}_0x5944e9[_0x56d4('0x19')](_0xf525ff);return _0x5944e9[_0x56d4('0x20')](_0x56d4('0x21'),_0x1a6a9a+'-'+_0x35ae27+'/'+_0x19fb3b)[_0x56d4('0x1b')](_0x1fca52);}return null;};}function patchUpdates(_0x4065c2){return function(_0x24a38a){try{jsonpatch[_0x56d4('0x22')](_0x24a38a,_0x4065c2,!![]);}catch(_0x3947e7){return BPromise[_0x56d4('0x23')](_0x3947e7);}return _0x24a38a[_0x56d4('0x24')]();};}function saveUpdates(_0x477172,_0x34ea73){return function(_0x21f14c){if(_0x21f14c){return _0x21f14c[_0x56d4('0x25')](_0x477172)[_0x56d4('0x26')](function(_0x5e88b5){return _0x5e88b5;});}return null;};}function removeEntity(_0x108dc4,_0x40ec92){return function(_0x2746ca){if(_0x2746ca){return _0x2746ca[_0x56d4('0x27')]()[_0x56d4('0x26')](function(){_0x108dc4['status'](0xcc)[_0x56d4('0x1a')]();});}};}function handleEntityNotFound(_0x569695,_0x70b88f){return function(_0x271f34){if(!_0x271f34){_0x569695['sendStatus'](0x194);}return _0x271f34;};}function handleError(_0x5c66bb,_0x11ec2c){_0x11ec2c=_0x11ec2c||0x1f4;return function(_0x3bff2e){logger[_0x56d4('0x28')](_0x3bff2e['stack']);if(_0x3bff2e[_0x56d4('0x29')]){delete _0x3bff2e[_0x56d4('0x29')];}_0x5c66bb[_0x56d4('0x19')](_0x11ec2c)[_0x56d4('0x2a')](_0x3bff2e);};}exports['index']=function(_0x446813,_0x2645da){var _0xb00278={},_0x574b4a={},_0x2246c2={'count':0x0,'rows':[]};var _0x361574=_[_0x56d4('0x2b')](db['AnalyticFieldReport'][_0x56d4('0x2c')],function(_0x5a3a88){return{'name':_0x5a3a88[_0x56d4('0x2d')],'type':_0x5a3a88[_0x56d4('0x2e')][_0x56d4('0x2f')]};});_0x574b4a[_0x56d4('0x30')]=_[_0x56d4('0x2b')](_0x361574,_0x56d4('0x29'));_0x574b4a[_0x56d4('0x31')]=_[_0x56d4('0x32')](_0x446813[_0x56d4('0x31')]);_0x574b4a[_0x56d4('0x33')]=_[_0x56d4('0x34')](_0x574b4a[_0x56d4('0x30')],_0x574b4a[_0x56d4('0x31')]);_0xb00278[_0x56d4('0x35')]=_[_0x56d4('0x34')](_0x574b4a['model'],qs[_0x56d4('0x36')](_0x446813[_0x56d4('0x31')]['fields']));_0xb00278['attributes']=_0xb00278['attributes'][_0x56d4('0x37')]?_0xb00278[_0x56d4('0x35')]:_0x574b4a['model'];if(!_0x446813[_0x56d4('0x31')][_0x56d4('0x38')](_0x56d4('0x39'))){_0xb00278['limit']=qs['limit'](_0x446813[_0x56d4('0x31')][_0x56d4('0x1f')]);_0xb00278[_0x56d4('0x1e')]=qs[_0x56d4('0x1e')](_0x446813[_0x56d4('0x31')][_0x56d4('0x1e')]);}_0xb00278[_0x56d4('0x3a')]=qs[_0x56d4('0x3b')](_0x446813[_0x56d4('0x31')][_0x56d4('0x3b')]);_0xb00278['where']=qs[_0x56d4('0x33')](_[_0x56d4('0x3c')](_0x446813[_0x56d4('0x31')],_0x574b4a['filters']),_0x361574);if(_0x446813[_0x56d4('0x31')]['filter']){_0xb00278['where']=_[_0x56d4('0x3d')](_0xb00278['where'],{'$or':_[_0x56d4('0x2b')](_0x361574,function(_0x43a4f6){if(_0x43a4f6[_0x56d4('0x2e')]!=='VIRTUAL'){var _0x4ce940={};_0x4ce940[_0x43a4f6[_0x56d4('0x29')]]={'$like':'%'+_0x446813['query'][_0x56d4('0x3e')]+'%'};return _0x4ce940;}})});}_0xb00278=_[_0x56d4('0x3d')]({},_0xb00278,_0x446813['options']);var _0x4af306={'where':_0xb00278[_0x56d4('0x3f')]};return db[_0x56d4('0x40')][_0x56d4('0x1d')](_0x4af306)[_0x56d4('0x26')](function(_0x1d63df){_0x2246c2[_0x56d4('0x1d')]=_0x1d63df;if(_0x446813[_0x56d4('0x31')]['includeAll']){_0xb00278['include']=[{'all':!![]}];}return db[_0x56d4('0x40')][_0x56d4('0x41')](_0xb00278);})[_0x56d4('0x26')](function(_0x33b8b2){_0x2246c2[_0x56d4('0x42')]=_0x33b8b2;return _0x2246c2;})[_0x56d4('0x26')](respondWithFilteredResult(_0x2645da,_0xb00278))[_0x56d4('0x43')](handleError(_0x2645da,null));};exports[_0x56d4('0x44')]=function(_0x552d73,_0x3efd76){var _0x22a30a={'raw':![],'where':{'id':_0x552d73[_0x56d4('0x45')]['id']}},_0x5b799b={};_0x5b799b[_0x56d4('0x30')]=_[_0x56d4('0x32')](db[_0x56d4('0x40')][_0x56d4('0x2c')]);_0x5b799b[_0x56d4('0x31')]=_[_0x56d4('0x32')](_0x552d73['query']);_0x5b799b[_0x56d4('0x33')]=_['intersection'](_0x5b799b[_0x56d4('0x30')],_0x5b799b['query']);_0x22a30a[_0x56d4('0x35')]=_[_0x56d4('0x34')](_0x5b799b[_0x56d4('0x30')],qs[_0x56d4('0x36')](_0x552d73[_0x56d4('0x31')][_0x56d4('0x36')]));_0x22a30a[_0x56d4('0x35')]=_0x22a30a[_0x56d4('0x35')][_0x56d4('0x37')]?_0x22a30a[_0x56d4('0x35')]:_0x5b799b[_0x56d4('0x30')];if(_0x552d73[_0x56d4('0x31')][_0x56d4('0x46')]){_0x22a30a[_0x56d4('0x47')]=[{'all':!![]}];}_0x22a30a=_[_0x56d4('0x3d')]({},_0x22a30a,_0x552d73[_0x56d4('0x48')]);return db[_0x56d4('0x40')][_0x56d4('0x49')](_0x22a30a)['then'](handleEntityNotFound(_0x3efd76,null))[_0x56d4('0x26')](respondWithResult(_0x3efd76,null))[_0x56d4('0x43')](handleError(_0x3efd76,null));};exports[_0x56d4('0x4a')]=function(_0x41d061,_0x9ca008){return db['AnalyticFieldReport'][_0x56d4('0x4a')](_0x41d061['body'],{})[_0x56d4('0x26')](respondWithResult(_0x9ca008,0xc9))['catch'](handleError(_0x9ca008,null));};exports[_0x56d4('0x4b')]=function(_0xf221ab,_0x707ad9){return db[_0x56d4('0x40')][_0x56d4('0x4b')](_0xf221ab['body'],{'raw':![],'individualHooks':!![]})[_0x56d4('0x26')](respondWithResult(_0x707ad9,0xc9))['catch'](handleError(_0x707ad9,null));};exports[_0x56d4('0x25')]=function(_0x421f05,_0x3d9913){if(_0x421f05[_0x56d4('0x4c')]['id']){delete _0x421f05[_0x56d4('0x4c')]['id'];}return db['AnalyticFieldReport'][_0x56d4('0x49')]({'where':{'id':_0x421f05[_0x56d4('0x45')]['id']}})['then'](handleEntityNotFound(_0x3d9913,null))[_0x56d4('0x26')](saveUpdates(_0x421f05['body'],null))['then'](respondWithResult(_0x3d9913,null))[_0x56d4('0x43')](handleError(_0x3d9913,null));};exports[_0x56d4('0x27')]=function(_0x5c352f,_0x253e00){return db['AnalyticFieldReport'][_0x56d4('0x49')]({'where':{'id':_0x5c352f[_0x56d4('0x45')]['id']}})[_0x56d4('0x26')](handleEntityNotFound(_0x253e00,null))[_0x56d4('0x26')](removeEntity(_0x253e00,null))[_0x56d4('0x43')](handleError(_0x253e00,null));};exports[_0x56d4('0x4d')]=function(_0x152188,_0x17f231){return db[_0x56d4('0x40')][_0x56d4('0x27')]({'where':{'id':_0x152188[_0x56d4('0x31')]['ids']||[]},'raw':![],'individualHooks':!![]})[_0x56d4('0x26')](respondWithResult(_0x17f231,0xcc))[_0x56d4('0x43')](handleError(_0x17f231,null));};exports['addFields']=function(_0x48c0cc,_0x56edaa,_0x429165){return db[_0x56d4('0x4e')][_0x56d4('0x4f')]({'where':{'id':_0x48c0cc['params']['id']}})[_0x56d4('0x26')](handleEntityNotFound(_0x56edaa,null))[_0x56d4('0x26')](function(_0x4c9944){if(_0x4c9944){return db[_0x56d4('0x50')][_0x56d4('0x51')](function(_0x1ae5f6){return db[_0x56d4('0x40')]['destroy']({'where':{'CustomReportId':_0x48c0cc[_0x56d4('0x45')]['id']},'transaction':_0x1ae5f6})[_0x56d4('0x26')](function(_0x1167f6){var _0x17d551=_[_0x56d4('0x2b')](_0x48c0cc[_0x56d4('0x4c')],function(_0x5aaf66){delete _0x5aaf66['id'];_0x5aaf66['CustomReportId']=_0x48c0cc[_0x56d4('0x45')]['id'];return _0x5aaf66;});return db[_0x56d4('0x40')]['bulkCreate'](_0x17d551,{'transaction':_0x1ae5f6});});})['then'](function(){return db['AnalyticFieldReport'][_0x56d4('0x41')]({'where':{'CustomReportId':_0x48c0cc['params']['id']}});});}})[_0x56d4('0x26')](respondWithResult(_0x56edaa,null))['catch'](handleError(_0x56edaa,null));};