ce68af16b6987d93cf7a6f56036dbeae061b6c67
[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 _0x10fa=['order','sort','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','rawAttributes','find','create','body','bulkCreate','bulkDestroy','addFields','findOne','sequelize','transaction','CustomReportId','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','status','end','undefined','count','offset','limit','set','json','apply','reject','update','then','destroy','sendStatus','error','stack','name','index','map','AnalyticFieldReport','type','key','model','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit'];(function(_0x58f559,_0x47a0d1){var _0x44e3e3=function(_0x317ca1){while(--_0x317ca1){_0x58f559['push'](_0x58f559['shift']());}};_0x44e3e3(++_0x47a0d1);}(_0x10fa,0x105));var _0xa10f=function(_0x478861,_0x27ce79){_0x478861=_0x478861-0x0;var _0x1e3784=_0x10fa[_0x478861];return _0x1e3784;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa10f('0x0'));var zipdir=require(_0xa10f('0x1'));var jsonpatch=require(_0xa10f('0x2'));var rp=require(_0xa10f('0x3'));var moment=require(_0xa10f('0x4'));var BPromise=require(_0xa10f('0x5'));var Mustache=require(_0xa10f('0x6'));var util=require(_0xa10f('0x7'));var path=require('path');var sox=require(_0xa10f('0x8'));var csv=require(_0xa10f('0x9'));var ejs=require(_0xa10f('0xa'));var fs=require('fs');var fs_extra=require(_0xa10f('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xa10f('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xa10f('0xd'));var Redis=require(_0xa10f('0xe'));var authService=require(_0xa10f('0xf'));var qs=require(_0xa10f('0x10'));var as=require(_0xa10f('0x11'));var hardwareService=require(_0xa10f('0x12'));var logger=require(_0xa10f('0x13'))(_0xa10f('0x14'));var utils=require(_0xa10f('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xa10f('0x16'))['db'];function respondWithStatusCode(_0x150b8c,_0xa2e88a){_0xa2e88a=_0xa2e88a||0xcc;return function(_0x538141){if(_0x538141){return _0x150b8c['sendStatus'](_0xa2e88a);}return _0x150b8c[_0xa10f('0x17')](_0xa2e88a)[_0xa10f('0x18')]();};}function respondWithResult(_0x2a28c0,_0x4e81c2){_0x4e81c2=_0x4e81c2||0xc8;return function(_0x15db01){if(_0x15db01){return _0x2a28c0['status'](_0x4e81c2)['json'](_0x15db01);}};}function respondWithFilteredResult(_0xefb0db,_0x254a9d){return function(_0x20b8ce){if(_0x20b8ce){var _0x39049b=typeof _0x254a9d['offset']===_0xa10f('0x19')&&typeof _0x254a9d['limit']===_0xa10f('0x19');var _0x5d6a81=_0x20b8ce[_0xa10f('0x1a')];var _0x1f570c=_0x39049b?0x0:_0x254a9d[_0xa10f('0x1b')];var _0x22b240=_0x39049b?_0x20b8ce['count']:_0x254a9d[_0xa10f('0x1b')]+_0x254a9d[_0xa10f('0x1c')];var _0x4df47d;if(_0x22b240>=_0x5d6a81){_0x22b240=_0x5d6a81;_0x4df47d=0xc8;}else{_0x4df47d=0xce;}_0xefb0db[_0xa10f('0x17')](_0x4df47d);return _0xefb0db[_0xa10f('0x1d')]('Content-Range',_0x1f570c+'-'+_0x22b240+'/'+_0x5d6a81)[_0xa10f('0x1e')](_0x20b8ce);}return null;};}function patchUpdates(_0x3ed6b4){return function(_0x2a64eb){try{jsonpatch[_0xa10f('0x1f')](_0x2a64eb,_0x3ed6b4,!![]);}catch(_0x541081){return BPromise[_0xa10f('0x20')](_0x541081);}return _0x2a64eb['save']();};}function saveUpdates(_0xc5ac5d,_0x3f8ab3){return function(_0x15a58b){if(_0x15a58b){return _0x15a58b[_0xa10f('0x21')](_0xc5ac5d)[_0xa10f('0x22')](function(_0x3bd2cf){return _0x3bd2cf;});}return null;};}function removeEntity(_0x4df82a,_0xee6d56){return function(_0x2848ff){if(_0x2848ff){return _0x2848ff[_0xa10f('0x23')]()[_0xa10f('0x22')](function(){_0x4df82a[_0xa10f('0x17')](0xcc)[_0xa10f('0x18')]();});}};}function handleEntityNotFound(_0x59b048,_0x94cba0){return function(_0x55fdbe){if(!_0x55fdbe){_0x59b048[_0xa10f('0x24')](0x194);}return _0x55fdbe;};}function handleError(_0x20efe9,_0x1fe51c){_0x1fe51c=_0x1fe51c||0x1f4;return function(_0x59142b){logger[_0xa10f('0x25')](_0x59142b[_0xa10f('0x26')]);if(_0x59142b['name']){delete _0x59142b[_0xa10f('0x27')];}_0x20efe9['status'](_0x1fe51c)['send'](_0x59142b);};}exports[_0xa10f('0x28')]=function(_0x252210,_0x329e60){var _0xc9c0a5={},_0x143319={},_0x1bfa75={'count':0x0,'rows':[]};var _0x4083b1=_[_0xa10f('0x29')](db[_0xa10f('0x2a')]['rawAttributes'],function(_0xd2e724){return{'name':_0xd2e724['fieldName'],'type':_0xd2e724[_0xa10f('0x2b')][_0xa10f('0x2c')]};});_0x143319[_0xa10f('0x2d')]=_[_0xa10f('0x29')](_0x4083b1,_0xa10f('0x27'));_0x143319['query']=_[_0xa10f('0x2e')](_0x252210['query']);_0x143319[_0xa10f('0x2f')]=_[_0xa10f('0x30')](_0x143319[_0xa10f('0x2d')],_0x143319[_0xa10f('0x31')]);_0xc9c0a5[_0xa10f('0x32')]=_[_0xa10f('0x30')](_0x143319[_0xa10f('0x2d')],qs[_0xa10f('0x33')](_0x252210[_0xa10f('0x31')][_0xa10f('0x33')]));_0xc9c0a5[_0xa10f('0x32')]=_0xc9c0a5[_0xa10f('0x32')][_0xa10f('0x34')]?_0xc9c0a5[_0xa10f('0x32')]:_0x143319['model'];if(!_0x252210['query'][_0xa10f('0x35')](_0xa10f('0x36'))){_0xc9c0a5['limit']=qs[_0xa10f('0x1c')](_0x252210['query'][_0xa10f('0x1c')]);_0xc9c0a5[_0xa10f('0x1b')]=qs[_0xa10f('0x1b')](_0x252210['query'][_0xa10f('0x1b')]);}_0xc9c0a5[_0xa10f('0x37')]=qs['sort'](_0x252210[_0xa10f('0x31')][_0xa10f('0x38')]);_0xc9c0a5['where']=qs[_0xa10f('0x2f')](_['pick'](_0x252210[_0xa10f('0x31')],_0x143319['filters']),_0x4083b1);if(_0x252210[_0xa10f('0x31')][_0xa10f('0x39')]){_0xc9c0a5[_0xa10f('0x3a')]=_[_0xa10f('0x3b')](_0xc9c0a5[_0xa10f('0x3a')],{'$or':_[_0xa10f('0x29')](_0x4083b1,function(_0x2b93b4){if(_0x2b93b4['type']!==_0xa10f('0x3c')){var _0x26b7a3={};_0x26b7a3[_0x2b93b4['name']]={'$like':'%'+_0x252210['query']['filter']+'%'};return _0x26b7a3;}})});}_0xc9c0a5=_['merge']({},_0xc9c0a5,_0x252210[_0xa10f('0x3d')]);var _0x223b54={'where':_0xc9c0a5[_0xa10f('0x3a')]};return db[_0xa10f('0x2a')]['count'](_0x223b54)['then'](function(_0x367d7e){_0x1bfa75[_0xa10f('0x1a')]=_0x367d7e;if(_0x252210[_0xa10f('0x31')][_0xa10f('0x3e')]){_0xc9c0a5[_0xa10f('0x3f')]=[{'all':!![]}];}return db[_0xa10f('0x2a')][_0xa10f('0x40')](_0xc9c0a5);})[_0xa10f('0x22')](function(_0x3ab5c7){_0x1bfa75[_0xa10f('0x41')]=_0x3ab5c7;return _0x1bfa75;})[_0xa10f('0x22')](respondWithFilteredResult(_0x329e60,_0xc9c0a5))[_0xa10f('0x42')](handleError(_0x329e60,null));};exports['show']=function(_0x960bc8,_0x46a0ff){var _0x39af51={'raw':![],'where':{'id':_0x960bc8[_0xa10f('0x43')]['id']}},_0x29a8ad={};_0x29a8ad[_0xa10f('0x2d')]=_[_0xa10f('0x2e')](db[_0xa10f('0x2a')][_0xa10f('0x44')]);_0x29a8ad['query']=_['keys'](_0x960bc8[_0xa10f('0x31')]);_0x29a8ad[_0xa10f('0x2f')]=_[_0xa10f('0x30')](_0x29a8ad[_0xa10f('0x2d')],_0x29a8ad['query']);_0x39af51[_0xa10f('0x32')]=_['intersection'](_0x29a8ad[_0xa10f('0x2d')],qs[_0xa10f('0x33')](_0x960bc8['query'][_0xa10f('0x33')]));_0x39af51[_0xa10f('0x32')]=_0x39af51[_0xa10f('0x32')]['length']?_0x39af51[_0xa10f('0x32')]:_0x29a8ad[_0xa10f('0x2d')];if(_0x960bc8['query'][_0xa10f('0x3e')]){_0x39af51['include']=[{'all':!![]}];}_0x39af51=_['merge']({},_0x39af51,_0x960bc8[_0xa10f('0x3d')]);return db[_0xa10f('0x2a')][_0xa10f('0x45')](_0x39af51)[_0xa10f('0x22')](handleEntityNotFound(_0x46a0ff,null))[_0xa10f('0x22')](respondWithResult(_0x46a0ff,null))[_0xa10f('0x42')](handleError(_0x46a0ff,null));};exports[_0xa10f('0x46')]=function(_0x1def30,_0x4210ca){return db['AnalyticFieldReport'][_0xa10f('0x46')](_0x1def30[_0xa10f('0x47')],{})[_0xa10f('0x22')](respondWithResult(_0x4210ca,0xc9))[_0xa10f('0x42')](handleError(_0x4210ca,null));};exports[_0xa10f('0x48')]=function(_0x34c2bb,_0x24ba44){return db[_0xa10f('0x2a')]['bulkCreate'](_0x34c2bb['body'],{'raw':![],'individualHooks':!![]})[_0xa10f('0x22')](respondWithResult(_0x24ba44,0xc9))['catch'](handleError(_0x24ba44,null));};exports[_0xa10f('0x21')]=function(_0x5b7a55,_0x5dff7b){if(_0x5b7a55[_0xa10f('0x47')]['id']){delete _0x5b7a55[_0xa10f('0x47')]['id'];}return db[_0xa10f('0x2a')][_0xa10f('0x45')]({'where':{'id':_0x5b7a55['params']['id']}})[_0xa10f('0x22')](handleEntityNotFound(_0x5dff7b,null))[_0xa10f('0x22')](saveUpdates(_0x5b7a55[_0xa10f('0x47')],null))['then'](respondWithResult(_0x5dff7b,null))[_0xa10f('0x42')](handleError(_0x5dff7b,null));};exports[_0xa10f('0x23')]=function(_0x50dd7a,_0xcdc254){return db[_0xa10f('0x2a')][_0xa10f('0x45')]({'where':{'id':_0x50dd7a[_0xa10f('0x43')]['id']}})['then'](handleEntityNotFound(_0xcdc254,null))['then'](removeEntity(_0xcdc254,null))['catch'](handleError(_0xcdc254,null));};exports[_0xa10f('0x49')]=function(_0x599ca5,_0xff6919){return db[_0xa10f('0x2a')]['destroy']({'where':{'id':_0x599ca5[_0xa10f('0x31')]['ids']||[]},'raw':![],'individualHooks':!![]})[_0xa10f('0x22')](respondWithResult(_0xff6919,0xcc))['catch'](handleError(_0xff6919,null));};exports[_0xa10f('0x4a')]=function(_0x351745,_0x5c6f46,_0x2fddda){return db['AnalyticCustomReport'][_0xa10f('0x4b')]({'where':{'id':_0x351745[_0xa10f('0x43')]['id']}})['then'](handleEntityNotFound(_0x5c6f46,null))[_0xa10f('0x22')](function(_0x16dea4){if(_0x16dea4){return db[_0xa10f('0x4c')][_0xa10f('0x4d')](function(_0x24b5ed){return db[_0xa10f('0x2a')][_0xa10f('0x23')]({'where':{'CustomReportId':_0x351745[_0xa10f('0x43')]['id']},'transaction':_0x24b5ed})['then'](function(_0x144de6){var _0x2d87d0=_[_0xa10f('0x29')](_0x351745[_0xa10f('0x47')],function(_0x33e9fe){delete _0x33e9fe['id'];_0x33e9fe[_0xa10f('0x4e')]=_0x351745[_0xa10f('0x43')]['id'];return _0x33e9fe;});return db[_0xa10f('0x2a')][_0xa10f('0x48')](_0x2d87d0,{'transaction':_0x24b5ed});});})[_0xa10f('0x22')](function(){return db[_0xa10f('0x2a')]['findAll']({'where':{'CustomReportId':_0x351745[_0xa10f('0x43')]['id']}});});}})[_0xa10f('0x22')](respondWithResult(_0x5c6f46,null))[_0xa10f('0x42')](handleError(_0x5c6f46,null));};