1c756650de28be254c0dd058071a0058023d24ec
[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 _0x596c=['fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','type','VIRTUAL','options','count','includeAll','include','findAll','catch','params','rawAttributes','find','create','body','bulkCreate','bulkDestroy','ids','addFields','findOne','sequelize','CustomReportId','request-promise','bluebird','mustache','to-csv','fs-extra','lodash','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','index','map','AnalyticFieldReport','fieldName','key','model','query','keys','filters','intersection','attributes'];(function(_0x2d6efb,_0x4cadf8){var _0x31654d=function(_0xead211){while(--_0xead211){_0x2d6efb['push'](_0x2d6efb['shift']());}};_0x31654d(++_0x4cadf8);}(_0x596c,0x1cd));var _0xc596=function(_0x402eac,_0x465ce5){_0x402eac=_0x402eac-0x0;var _0x441ae2=_0x596c[_0x402eac];return _0x441ae2;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xc596('0x0'));var moment=require('moment');var BPromise=require(_0xc596('0x1'));var Mustache=require(_0xc596('0x2'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xc596('0x3'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc596('0x4'));var _=require(_0xc596('0x5'));var squel=require('squel');var crypto=require(_0xc596('0x6'));var jsforce=require('jsforce');var deskjs=require(_0xc596('0x7'));var toCsv=require(_0xc596('0x3'));var querystring=require('querystring');var Papa=require(_0xc596('0x8'));var Redis=require(_0xc596('0x9'));var authService=require(_0xc596('0xa'));var qs=require('../../components/parsers/qs');var as=require(_0xc596('0xb'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc596('0xc'))('api');var utils=require(_0xc596('0xd'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xc596('0xe'))['db'];function respondWithStatusCode(_0x5b8211,_0x53c8da){_0x53c8da=_0x53c8da||0xcc;return function(_0x1605f0){if(_0x1605f0){return _0x5b8211[_0xc596('0xf')](_0x53c8da);}return _0x5b8211['status'](_0x53c8da)[_0xc596('0x10')]();};}function respondWithResult(_0x2adaa2,_0x2cd4ef){_0x2cd4ef=_0x2cd4ef||0xc8;return function(_0x33f653){if(_0x33f653){return _0x2adaa2[_0xc596('0x11')](_0x2cd4ef)[_0xc596('0x12')](_0x33f653);}};}function respondWithFilteredResult(_0x2318c5,_0xf8bfa7){return function(_0x15c644){if(_0x15c644){var _0x4d8bc7=typeof _0xf8bfa7[_0xc596('0x13')]===_0xc596('0x14')&&typeof _0xf8bfa7[_0xc596('0x15')]===_0xc596('0x14');var _0x5aec08=_0x15c644['count'];var _0x39a19e=_0x4d8bc7?0x0:_0xf8bfa7[_0xc596('0x13')];var _0x4713c4=_0x4d8bc7?_0x15c644['count']:_0xf8bfa7[_0xc596('0x13')]+_0xf8bfa7[_0xc596('0x15')];var _0x1d8f8a;if(_0x4713c4>=_0x5aec08){_0x4713c4=_0x5aec08;_0x1d8f8a=0xc8;}else{_0x1d8f8a=0xce;}_0x2318c5[_0xc596('0x11')](_0x1d8f8a);return _0x2318c5[_0xc596('0x16')](_0xc596('0x17'),_0x39a19e+'-'+_0x4713c4+'/'+_0x5aec08)[_0xc596('0x12')](_0x15c644);}return null;};}function patchUpdates(_0x3b214c){return function(_0x2e8af5){try{jsonpatch[_0xc596('0x18')](_0x2e8af5,_0x3b214c,!![]);}catch(_0x5703ec){return BPromise[_0xc596('0x19')](_0x5703ec);}return _0x2e8af5[_0xc596('0x1a')]();};}function saveUpdates(_0x12b730,_0x2ab766){return function(_0x4cd5af){if(_0x4cd5af){return _0x4cd5af['update'](_0x12b730)[_0xc596('0x1b')](function(_0x486c3d){return _0x486c3d;});}return null;};}function removeEntity(_0x16d548,_0x6c0e53){return function(_0x37b3a6){if(_0x37b3a6){return _0x37b3a6[_0xc596('0x1c')]()[_0xc596('0x1b')](function(){_0x16d548[_0xc596('0x11')](0xcc)[_0xc596('0x10')]();});}};}function handleEntityNotFound(_0x1cd892,_0x596774){return function(_0x2a39a2){if(!_0x2a39a2){_0x1cd892[_0xc596('0xf')](0x194);}return _0x2a39a2;};}function handleError(_0x220f3e,_0x38eab8){_0x38eab8=_0x38eab8||0x1f4;return function(_0x12152f){logger[_0xc596('0x1d')](_0x12152f[_0xc596('0x1e')]);if(_0x12152f[_0xc596('0x1f')]){delete _0x12152f[_0xc596('0x1f')];}_0x220f3e[_0xc596('0x11')](_0x38eab8)['send'](_0x12152f);};}exports[_0xc596('0x20')]=function(_0x27df77,_0x57159d){var _0x38baa9={},_0x43f23b={},_0x1f32ca={'count':0x0,'rows':[]};var _0x59f155=_[_0xc596('0x21')](db[_0xc596('0x22')]['rawAttributes'],function(_0x5980fc){return{'name':_0x5980fc[_0xc596('0x23')],'type':_0x5980fc['type'][_0xc596('0x24')]};});_0x43f23b[_0xc596('0x25')]=_[_0xc596('0x21')](_0x59f155,'name');_0x43f23b[_0xc596('0x26')]=_[_0xc596('0x27')](_0x27df77[_0xc596('0x26')]);_0x43f23b[_0xc596('0x28')]=_[_0xc596('0x29')](_0x43f23b[_0xc596('0x25')],_0x43f23b['query']);_0x38baa9[_0xc596('0x2a')]=_['intersection'](_0x43f23b[_0xc596('0x25')],qs[_0xc596('0x2b')](_0x27df77[_0xc596('0x26')][_0xc596('0x2b')]));_0x38baa9[_0xc596('0x2a')]=_0x38baa9[_0xc596('0x2a')][_0xc596('0x2c')]?_0x38baa9[_0xc596('0x2a')]:_0x43f23b['model'];if(!_0x27df77[_0xc596('0x26')][_0xc596('0x2d')](_0xc596('0x2e'))){_0x38baa9[_0xc596('0x15')]=qs['limit'](_0x27df77['query'][_0xc596('0x15')]);_0x38baa9[_0xc596('0x13')]=qs[_0xc596('0x13')](_0x27df77[_0xc596('0x26')][_0xc596('0x13')]);}_0x38baa9[_0xc596('0x2f')]=qs['sort'](_0x27df77[_0xc596('0x26')][_0xc596('0x30')]);_0x38baa9[_0xc596('0x31')]=qs[_0xc596('0x28')](_['pick'](_0x27df77[_0xc596('0x26')],_0x43f23b[_0xc596('0x28')]),_0x59f155);if(_0x27df77[_0xc596('0x26')][_0xc596('0x32')]){_0x38baa9['where']=_[_0xc596('0x33')](_0x38baa9[_0xc596('0x31')],{'$or':_[_0xc596('0x21')](_0x59f155,function(_0x231b77){if(_0x231b77[_0xc596('0x34')]!==_0xc596('0x35')){var _0x3d512f={};_0x3d512f[_0x231b77[_0xc596('0x1f')]]={'$like':'%'+_0x27df77[_0xc596('0x26')][_0xc596('0x32')]+'%'};return _0x3d512f;}})});}_0x38baa9=_[_0xc596('0x33')]({},_0x38baa9,_0x27df77[_0xc596('0x36')]);var _0x40585f={'where':_0x38baa9[_0xc596('0x31')]};return db[_0xc596('0x22')]['count'](_0x40585f)['then'](function(_0x252011){_0x1f32ca[_0xc596('0x37')]=_0x252011;if(_0x27df77[_0xc596('0x26')][_0xc596('0x38')]){_0x38baa9[_0xc596('0x39')]=[{'all':!![]}];}return db[_0xc596('0x22')][_0xc596('0x3a')](_0x38baa9);})['then'](function(_0x5b474a){_0x1f32ca['rows']=_0x5b474a;return _0x1f32ca;})[_0xc596('0x1b')](respondWithFilteredResult(_0x57159d,_0x38baa9))[_0xc596('0x3b')](handleError(_0x57159d,null));};exports['show']=function(_0xae943b,_0x46d8d5){var _0x5b979f={'raw':![],'where':{'id':_0xae943b[_0xc596('0x3c')]['id']}},_0x399048={};_0x399048[_0xc596('0x25')]=_[_0xc596('0x27')](db['AnalyticFieldReport'][_0xc596('0x3d')]);_0x399048[_0xc596('0x26')]=_[_0xc596('0x27')](_0xae943b[_0xc596('0x26')]);_0x399048['filters']=_['intersection'](_0x399048[_0xc596('0x25')],_0x399048[_0xc596('0x26')]);_0x5b979f['attributes']=_[_0xc596('0x29')](_0x399048['model'],qs[_0xc596('0x2b')](_0xae943b[_0xc596('0x26')][_0xc596('0x2b')]));_0x5b979f[_0xc596('0x2a')]=_0x5b979f['attributes'][_0xc596('0x2c')]?_0x5b979f[_0xc596('0x2a')]:_0x399048[_0xc596('0x25')];if(_0xae943b['query'][_0xc596('0x38')]){_0x5b979f[_0xc596('0x39')]=[{'all':!![]}];}_0x5b979f=_['merge']({},_0x5b979f,_0xae943b['options']);return db[_0xc596('0x22')][_0xc596('0x3e')](_0x5b979f)['then'](handleEntityNotFound(_0x46d8d5,null))[_0xc596('0x1b')](respondWithResult(_0x46d8d5,null))[_0xc596('0x3b')](handleError(_0x46d8d5,null));};exports[_0xc596('0x3f')]=function(_0x2848ec,_0x4a9fed){return db[_0xc596('0x22')][_0xc596('0x3f')](_0x2848ec[_0xc596('0x40')],{})[_0xc596('0x1b')](respondWithResult(_0x4a9fed,0xc9))[_0xc596('0x3b')](handleError(_0x4a9fed,null));};exports['bulkCreate']=function(_0x5ba9ca,_0x486f86){return db[_0xc596('0x22')][_0xc596('0x41')](_0x5ba9ca[_0xc596('0x40')],{'raw':![],'individualHooks':!![]})[_0xc596('0x1b')](respondWithResult(_0x486f86,0xc9))[_0xc596('0x3b')](handleError(_0x486f86,null));};exports['update']=function(_0x58cf44,_0x4390d6){if(_0x58cf44[_0xc596('0x40')]['id']){delete _0x58cf44[_0xc596('0x40')]['id'];}return db[_0xc596('0x22')][_0xc596('0x3e')]({'where':{'id':_0x58cf44[_0xc596('0x3c')]['id']}})[_0xc596('0x1b')](handleEntityNotFound(_0x4390d6,null))[_0xc596('0x1b')](saveUpdates(_0x58cf44[_0xc596('0x40')],null))[_0xc596('0x1b')](respondWithResult(_0x4390d6,null))[_0xc596('0x3b')](handleError(_0x4390d6,null));};exports[_0xc596('0x1c')]=function(_0x4396b7,_0x2e5dfa){return db[_0xc596('0x22')][_0xc596('0x3e')]({'where':{'id':_0x4396b7[_0xc596('0x3c')]['id']}})[_0xc596('0x1b')](handleEntityNotFound(_0x2e5dfa,null))[_0xc596('0x1b')](removeEntity(_0x2e5dfa,null))['catch'](handleError(_0x2e5dfa,null));};exports[_0xc596('0x42')]=function(_0x2a85fd,_0xb47c0e){return db[_0xc596('0x22')]['destroy']({'where':{'id':_0x2a85fd[_0xc596('0x26')][_0xc596('0x43')]||[]},'raw':![],'individualHooks':!![]})[_0xc596('0x1b')](respondWithResult(_0xb47c0e,0xcc))['catch'](handleError(_0xb47c0e,null));};exports[_0xc596('0x44')]=function(_0x5552ef,_0x186e5f,_0x103535){return db['AnalyticCustomReport'][_0xc596('0x45')]({'where':{'id':_0x5552ef[_0xc596('0x3c')]['id']}})[_0xc596('0x1b')](handleEntityNotFound(_0x186e5f,null))[_0xc596('0x1b')](function(_0x520937){if(_0x520937){return db[_0xc596('0x46')]['transaction'](function(_0x1fff2d){return db[_0xc596('0x22')][_0xc596('0x1c')]({'where':{'CustomReportId':_0x5552ef[_0xc596('0x3c')]['id']},'transaction':_0x1fff2d})[_0xc596('0x1b')](function(_0x3768a8){var _0x28d3af=_[_0xc596('0x21')](_0x5552ef[_0xc596('0x40')],function(_0x2fef1d){delete _0x2fef1d['id'];_0x2fef1d[_0xc596('0x47')]=_0x5552ef[_0xc596('0x3c')]['id'];return _0x2fef1d;});return db[_0xc596('0x22')][_0xc596('0x41')](_0x28d3af,{'transaction':_0x1fff2d});});})[_0xc596('0x1b')](function(){return db[_0xc596('0x22')][_0xc596('0x3a')]({'where':{'CustomReportId':_0x5552ef['params']['id']}});});}})[_0xc596('0x1b')](respondWithResult(_0x186e5f,null))[_0xc596('0x3b')](handleError(_0x186e5f,null));};