964edd8b8d868a780853796faca6aa17c981cbd1
[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 _0x07c2=['lodash','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','offset','undefined','count','limit','Content-Range','apply','reject','save','update','destroy','then','sendStatus','error','stack','send','index','AnalyticFieldReport','rawAttributes','fieldName','key','model','map','name','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','type','VIRTUAL','filter','merge','options','findAll','catch','show','params','length','includeAll','include','find','create','body','bulkCreate','bulkDestroy','ids','AnalyticCustomReport','findOne','sequelize','transaction','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra'];(function(_0x5da52e,_0x12e17c){var _0x3265cd=function(_0x3a2500){while(--_0x3a2500){_0x5da52e['push'](_0x5da52e['shift']());}};_0x3265cd(++_0x12e17c);}(_0x07c2,0xf1));var _0x207c=function(_0x268b06,_0x446ed1){_0x268b06=_0x268b06-0x0;var _0x31d48b=_0x07c2[_0x268b06];return _0x31d48b;};'use strict';var emlformat=require(_0x207c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x207c('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x207c('0x2'));var moment=require(_0x207c('0x3'));var BPromise=require(_0x207c('0x4'));var Mustache=require(_0x207c('0x5'));var util=require(_0x207c('0x6'));var path=require(_0x207c('0x7'));var sox=require('sox');var csv=require(_0x207c('0x8'));var ejs=require(_0x207c('0x9'));var fs=require('fs');var fs_extra=require(_0x207c('0xa'));var _=require(_0x207c('0xb'));var squel=require('squel');var crypto=require(_0x207c('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x207c('0x8'));var querystring=require(_0x207c('0xd'));var Papa=require(_0x207c('0xe'));var Redis=require(_0x207c('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x207c('0x10'));var as=require(_0x207c('0x11'));var hardwareService=require(_0x207c('0x12'));var logger=require(_0x207c('0x13'))(_0x207c('0x14'));var utils=require(_0x207c('0x15'));var config=require(_0x207c('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x207c('0x17'))['db'];function respondWithStatusCode(_0x542ba8,_0x9f5604){_0x9f5604=_0x9f5604||0xcc;return function(_0x5cb038){if(_0x5cb038){return _0x542ba8['sendStatus'](_0x9f5604);}return _0x542ba8[_0x207c('0x18')](_0x9f5604)[_0x207c('0x19')]();};}function respondWithResult(_0x5ac7bc,_0x209f2c){_0x209f2c=_0x209f2c||0xc8;return function(_0x2d296c){if(_0x2d296c){return _0x5ac7bc[_0x207c('0x18')](_0x209f2c)[_0x207c('0x1a')](_0x2d296c);}};}function respondWithFilteredResult(_0x417000,_0x4d4f2b){return function(_0x8da5f8){if(_0x8da5f8){var _0x4ade90=typeof _0x4d4f2b[_0x207c('0x1b')]===_0x207c('0x1c')&&typeof _0x4d4f2b['limit']==='undefined';var _0x1ddcb3=_0x8da5f8[_0x207c('0x1d')];var _0x4d245e=_0x4ade90?0x0:_0x4d4f2b[_0x207c('0x1b')];var _0x2f03bc=_0x4ade90?_0x8da5f8[_0x207c('0x1d')]:_0x4d4f2b[_0x207c('0x1b')]+_0x4d4f2b[_0x207c('0x1e')];var _0x327bd0;if(_0x2f03bc>=_0x1ddcb3){_0x2f03bc=_0x1ddcb3;_0x327bd0=0xc8;}else{_0x327bd0=0xce;}_0x417000[_0x207c('0x18')](_0x327bd0);return _0x417000['set'](_0x207c('0x1f'),_0x4d245e+'-'+_0x2f03bc+'/'+_0x1ddcb3)[_0x207c('0x1a')](_0x8da5f8);}return null;};}function patchUpdates(_0x19ce80){return function(_0xe80172){try{jsonpatch[_0x207c('0x20')](_0xe80172,_0x19ce80,!![]);}catch(_0xc94ef3){return BPromise[_0x207c('0x21')](_0xc94ef3);}return _0xe80172[_0x207c('0x22')]();};}function saveUpdates(_0x30c1de,_0x1fd868){return function(_0x1e5eff){if(_0x1e5eff){return _0x1e5eff[_0x207c('0x23')](_0x30c1de)['then'](function(_0x5f3401){return _0x5f3401;});}return null;};}function removeEntity(_0x421e87,_0x4fe300){return function(_0x447821){if(_0x447821){return _0x447821[_0x207c('0x24')]()[_0x207c('0x25')](function(){_0x421e87[_0x207c('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x277b73,_0x1a1a6a){return function(_0x18a3d5){if(!_0x18a3d5){_0x277b73[_0x207c('0x26')](0x194);}return _0x18a3d5;};}function handleError(_0x2ceb79,_0x273794){_0x273794=_0x273794||0x1f4;return function(_0x5708d0){logger[_0x207c('0x27')](_0x5708d0[_0x207c('0x28')]);if(_0x5708d0['name']){delete _0x5708d0['name'];}_0x2ceb79[_0x207c('0x18')](_0x273794)[_0x207c('0x29')](_0x5708d0);};}exports[_0x207c('0x2a')]=function(_0x53d82b,_0x11217c){var _0x5dee74={},_0x466de8={},_0xeafa01={'count':0x0,'rows':[]};var _0x3aa0fe=_['map'](db[_0x207c('0x2b')][_0x207c('0x2c')],function(_0x2d43ce){return{'name':_0x2d43ce[_0x207c('0x2d')],'type':_0x2d43ce['type'][_0x207c('0x2e')]};});_0x466de8[_0x207c('0x2f')]=_[_0x207c('0x30')](_0x3aa0fe,_0x207c('0x31'));_0x466de8[_0x207c('0x32')]=_[_0x207c('0x33')](_0x53d82b['query']);_0x466de8[_0x207c('0x34')]=_[_0x207c('0x35')](_0x466de8[_0x207c('0x2f')],_0x466de8[_0x207c('0x32')]);_0x5dee74[_0x207c('0x36')]=_[_0x207c('0x35')](_0x466de8[_0x207c('0x2f')],qs[_0x207c('0x37')](_0x53d82b[_0x207c('0x32')][_0x207c('0x37')]));_0x5dee74[_0x207c('0x36')]=_0x5dee74[_0x207c('0x36')]['length']?_0x5dee74[_0x207c('0x36')]:_0x466de8[_0x207c('0x2f')];if(!_0x53d82b[_0x207c('0x32')][_0x207c('0x38')](_0x207c('0x39'))){_0x5dee74[_0x207c('0x1e')]=qs['limit'](_0x53d82b[_0x207c('0x32')][_0x207c('0x1e')]);_0x5dee74[_0x207c('0x1b')]=qs[_0x207c('0x1b')](_0x53d82b[_0x207c('0x32')][_0x207c('0x1b')]);}_0x5dee74[_0x207c('0x3a')]=qs[_0x207c('0x3b')](_0x53d82b['query'][_0x207c('0x3b')]);_0x5dee74[_0x207c('0x3c')]=qs[_0x207c('0x34')](_[_0x207c('0x3d')](_0x53d82b['query'],_0x466de8[_0x207c('0x34')]),_0x3aa0fe);if(_0x53d82b['query']['filter']){_0x5dee74[_0x207c('0x3c')]=_['merge'](_0x5dee74['where'],{'$or':_[_0x207c('0x30')](_0x3aa0fe,function(_0x35b55c){if(_0x35b55c[_0x207c('0x3e')]!==_0x207c('0x3f')){var _0x1fc615={};_0x1fc615[_0x35b55c['name']]={'$like':'%'+_0x53d82b[_0x207c('0x32')][_0x207c('0x40')]+'%'};return _0x1fc615;}})});}_0x5dee74=_[_0x207c('0x41')]({},_0x5dee74,_0x53d82b[_0x207c('0x42')]);var _0x4391b4={'where':_0x5dee74[_0x207c('0x3c')]};return db[_0x207c('0x2b')][_0x207c('0x1d')](_0x4391b4)[_0x207c('0x25')](function(_0x3a9001){_0xeafa01['count']=_0x3a9001;if(_0x53d82b['query']['includeAll']){_0x5dee74['include']=[{'all':!![]}];}return db[_0x207c('0x2b')][_0x207c('0x43')](_0x5dee74);})[_0x207c('0x25')](function(_0x3dc7fe){_0xeafa01['rows']=_0x3dc7fe;return _0xeafa01;})[_0x207c('0x25')](respondWithFilteredResult(_0x11217c,_0x5dee74))[_0x207c('0x44')](handleError(_0x11217c,null));};exports[_0x207c('0x45')]=function(_0x5dea31,_0xf18826){var _0x3058b8={'raw':![],'where':{'id':_0x5dea31[_0x207c('0x46')]['id']}},_0x4821a8={};_0x4821a8[_0x207c('0x2f')]=_['keys'](db[_0x207c('0x2b')][_0x207c('0x2c')]);_0x4821a8[_0x207c('0x32')]=_['keys'](_0x5dea31[_0x207c('0x32')]);_0x4821a8['filters']=_[_0x207c('0x35')](_0x4821a8['model'],_0x4821a8[_0x207c('0x32')]);_0x3058b8[_0x207c('0x36')]=_[_0x207c('0x35')](_0x4821a8['model'],qs[_0x207c('0x37')](_0x5dea31[_0x207c('0x32')][_0x207c('0x37')]));_0x3058b8['attributes']=_0x3058b8['attributes'][_0x207c('0x47')]?_0x3058b8['attributes']:_0x4821a8[_0x207c('0x2f')];if(_0x5dea31[_0x207c('0x32')][_0x207c('0x48')]){_0x3058b8[_0x207c('0x49')]=[{'all':!![]}];}_0x3058b8=_[_0x207c('0x41')]({},_0x3058b8,_0x5dea31['options']);return db[_0x207c('0x2b')][_0x207c('0x4a')](_0x3058b8)['then'](handleEntityNotFound(_0xf18826,null))[_0x207c('0x25')](respondWithResult(_0xf18826,null))['catch'](handleError(_0xf18826,null));};exports['create']=function(_0x377a6e,_0x297415){return db[_0x207c('0x2b')][_0x207c('0x4b')](_0x377a6e[_0x207c('0x4c')],{})['then'](respondWithResult(_0x297415,0xc9))[_0x207c('0x44')](handleError(_0x297415,null));};exports['bulkCreate']=function(_0x2f847e,_0x4930cb){return db[_0x207c('0x2b')][_0x207c('0x4d')](_0x2f847e[_0x207c('0x4c')],{'raw':![],'individualHooks':!![]})['then'](respondWithResult(_0x4930cb,0xc9))['catch'](handleError(_0x4930cb,null));};exports[_0x207c('0x23')]=function(_0x1a6154,_0x31e3e5){if(_0x1a6154[_0x207c('0x4c')]['id']){delete _0x1a6154[_0x207c('0x4c')]['id'];}return db[_0x207c('0x2b')][_0x207c('0x4a')]({'where':{'id':_0x1a6154[_0x207c('0x46')]['id']}})[_0x207c('0x25')](handleEntityNotFound(_0x31e3e5,null))[_0x207c('0x25')](saveUpdates(_0x1a6154[_0x207c('0x4c')],null))[_0x207c('0x25')](respondWithResult(_0x31e3e5,null))[_0x207c('0x44')](handleError(_0x31e3e5,null));};exports[_0x207c('0x24')]=function(_0x462b43,_0x10e335){return db[_0x207c('0x2b')]['find']({'where':{'id':_0x462b43[_0x207c('0x46')]['id']}})['then'](handleEntityNotFound(_0x10e335,null))[_0x207c('0x25')](removeEntity(_0x10e335,null))[_0x207c('0x44')](handleError(_0x10e335,null));};exports[_0x207c('0x4e')]=function(_0x1d332b,_0x2274e2){return db[_0x207c('0x2b')][_0x207c('0x24')]({'where':{'id':_0x1d332b[_0x207c('0x32')][_0x207c('0x4f')]||[]},'raw':![],'individualHooks':!![]})[_0x207c('0x25')](respondWithResult(_0x2274e2,0xcc))[_0x207c('0x44')](handleError(_0x2274e2,null));};exports['addFields']=function(_0x5897d5,_0x1cd405,_0x5cc019){return db[_0x207c('0x50')][_0x207c('0x51')]({'where':{'id':_0x5897d5[_0x207c('0x46')]['id']}})[_0x207c('0x25')](handleEntityNotFound(_0x1cd405,null))[_0x207c('0x25')](function(_0x2e8ab6){if(_0x2e8ab6){return db[_0x207c('0x52')][_0x207c('0x53')](function(_0x22861f){return db[_0x207c('0x2b')][_0x207c('0x24')]({'where':{'CustomReportId':_0x5897d5[_0x207c('0x46')]['id']},'transaction':_0x22861f})[_0x207c('0x25')](function(_0x4c8b66){var _0x142e6f=_[_0x207c('0x30')](_0x5897d5[_0x207c('0x4c')],function(_0xe302cd){delete _0xe302cd['id'];_0xe302cd['CustomReportId']=_0x5897d5[_0x207c('0x46')]['id'];return _0xe302cd;});return db[_0x207c('0x2b')][_0x207c('0x4d')](_0x142e6f,{'transaction':_0x22861f});});})[_0x207c('0x25')](function(){return db[_0x207c('0x2b')]['findAll']({'where':{'CustomReportId':_0x5897d5[_0x207c('0x46')]['id']}});});}})[_0x207c('0x25')](respondWithResult(_0x1cd405,null))[_0x207c('0x44')](handleError(_0x1cd405,null));};