b5ed2ed55ba5ee3a7dfbcd654e123511ab4ad494
[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 _0x5c00=['apply','reject','destroy','then','error','stack','name','send','index','map','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','AnalyticFieldReport','catch','show','rawAttributes','length','find','create','body','bulkCreate','update','bulkDestroy','AnalyticCustomReport','findOne','params','sequelize','transaction','CustomReportId','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','set','Content-Range'];(function(_0x1cb81c,_0x127d94){var _0xf27552=function(_0x399e98){while(--_0x399e98){_0x1cb81c['push'](_0x1cb81c['shift']());}};_0xf27552(++_0x127d94);}(_0x5c00,0x17e));var _0x05c0=function(_0x5d0eb8,_0x40c598){_0x5d0eb8=_0x5d0eb8-0x0;var _0x32d89b=_0x5c00[_0x5d0eb8];return _0x32d89b;};'use strict';var emlformat=require(_0x05c0('0x0'));var rimraf=require(_0x05c0('0x1'));var zipdir=require(_0x05c0('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x05c0('0x3'));var moment=require('moment');var BPromise=require(_0x05c0('0x4'));var Mustache=require(_0x05c0('0x5'));var util=require(_0x05c0('0x6'));var path=require(_0x05c0('0x7'));var sox=require('sox');var csv=require(_0x05c0('0x8'));var ejs=require(_0x05c0('0x9'));var fs=require('fs');var fs_extra=require(_0x05c0('0xa'));var _=require(_0x05c0('0xb'));var squel=require('squel');var crypto=require(_0x05c0('0xc'));var jsforce=require(_0x05c0('0xd'));var deskjs=require(_0x05c0('0xe'));var toCsv=require('to-csv');var querystring=require(_0x05c0('0xf'));var Papa=require(_0x05c0('0x10'));var Redis=require(_0x05c0('0x11'));var authService=require(_0x05c0('0x12'));var qs=require(_0x05c0('0x13'));var as=require(_0x05c0('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x05c0('0x15'));var utils=require('../../config/utils');var config=require(_0x05c0('0x16'));var licenseUtil=require(_0x05c0('0x17'));var db=require(_0x05c0('0x18'))['db'];function respondWithStatusCode(_0x5a3e65,_0x4e39d4){_0x4e39d4=_0x4e39d4||0xcc;return function(_0x5eec41){if(_0x5eec41){return _0x5a3e65[_0x05c0('0x19')](_0x4e39d4);}return _0x5a3e65[_0x05c0('0x1a')](_0x4e39d4)[_0x05c0('0x1b')]();};}function respondWithResult(_0x12deeb,_0x25764b){_0x25764b=_0x25764b||0xc8;return function(_0xe57ed0){if(_0xe57ed0){return _0x12deeb[_0x05c0('0x1a')](_0x25764b)[_0x05c0('0x1c')](_0xe57ed0);}};}function respondWithFilteredResult(_0x4c3e54,_0x238e25){return function(_0x161a5f){if(_0x161a5f){var _0x4bb164=_0x161a5f[_0x05c0('0x1d')],_0x29e6b0=_0x238e25[_0x05c0('0x1e')],_0x27c7bd=_0x238e25[_0x05c0('0x1e')]+_0x238e25['limit'],_0x40153e;if(_0x27c7bd>=_0x4bb164){_0x27c7bd=_0x4bb164;_0x40153e=0xc8;}else{_0x40153e=0xce;}_0x4c3e54[_0x05c0('0x1a')](_0x40153e);return _0x4c3e54[_0x05c0('0x1f')](_0x05c0('0x20'),_0x29e6b0+'-'+_0x27c7bd+'/'+_0x4bb164)['json'](_0x161a5f);}return null;};}function patchUpdates(_0x40d905){return function(_0x2023d6){try{jsonpatch[_0x05c0('0x21')](_0x2023d6,_0x40d905,!![]);}catch(_0x23164c){return BPromise[_0x05c0('0x22')](_0x23164c);}return _0x2023d6['save']();};}function saveUpdates(_0x407c1f,_0x1014ef){return function(_0x5313b0){if(_0x5313b0){return _0x5313b0['update'](_0x407c1f)['then'](function(_0x1c448b){return _0x1c448b;});}return null;};}function removeEntity(_0x2055a3,_0x83f29){return function(_0x8e2d4){if(_0x8e2d4){return _0x8e2d4[_0x05c0('0x23')]()[_0x05c0('0x24')](function(){_0x2055a3[_0x05c0('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x9b4930,_0x1abbf3){return function(_0x4ba978){if(!_0x4ba978){_0x9b4930['sendStatus'](0x194);}return _0x4ba978;};}function handleError(_0x4da6d6,_0x5dc2b7){_0x5dc2b7=_0x5dc2b7||0x1f4;return function(_0x56aa78){logger[_0x05c0('0x25')](_0x56aa78[_0x05c0('0x26')]);if(_0x56aa78['name']){delete _0x56aa78[_0x05c0('0x27')];}_0x4da6d6[_0x05c0('0x1a')](_0x5dc2b7)[_0x05c0('0x28')](_0x56aa78);};}exports[_0x05c0('0x29')]=function(_0x58769a,_0x7d5ccd){var _0x1c14b1={},_0x2ceaed={},_0x200e80={'count':0x0,'rows':[]};var _0x216a5c=_[_0x05c0('0x2a')](db['AnalyticFieldReport']['rawAttributes'],function(_0x2df109){return{'name':_0x2df109[_0x05c0('0x2b')],'type':_0x2df109[_0x05c0('0x2c')][_0x05c0('0x2d')]};});_0x2ceaed[_0x05c0('0x2e')]=_[_0x05c0('0x2a')](_0x216a5c,_0x05c0('0x27'));_0x2ceaed[_0x05c0('0x2f')]=_[_0x05c0('0x30')](_0x58769a[_0x05c0('0x2f')]);_0x2ceaed[_0x05c0('0x31')]=_[_0x05c0('0x32')](_0x2ceaed['model'],_0x2ceaed['query']);_0x1c14b1[_0x05c0('0x33')]=_[_0x05c0('0x32')](_0x2ceaed[_0x05c0('0x2e')],qs['fields'](_0x58769a[_0x05c0('0x2f')][_0x05c0('0x34')]));_0x1c14b1['attributes']=_0x1c14b1[_0x05c0('0x33')]['length']?_0x1c14b1[_0x05c0('0x33')]:_0x2ceaed[_0x05c0('0x2e')];if(!_0x58769a[_0x05c0('0x2f')][_0x05c0('0x35')](_0x05c0('0x36'))){_0x1c14b1[_0x05c0('0x37')]=qs[_0x05c0('0x37')](_0x58769a[_0x05c0('0x2f')][_0x05c0('0x37')]);_0x1c14b1[_0x05c0('0x1e')]=qs[_0x05c0('0x1e')](_0x58769a[_0x05c0('0x2f')][_0x05c0('0x1e')]);}_0x1c14b1[_0x05c0('0x38')]=qs[_0x05c0('0x39')](_0x58769a[_0x05c0('0x2f')][_0x05c0('0x39')]);_0x1c14b1[_0x05c0('0x3a')]=qs[_0x05c0('0x31')](_[_0x05c0('0x3b')](_0x58769a[_0x05c0('0x2f')],_0x2ceaed[_0x05c0('0x31')]),_0x216a5c);if(_0x58769a[_0x05c0('0x2f')][_0x05c0('0x3c')]){_0x1c14b1[_0x05c0('0x3a')]=_[_0x05c0('0x3d')](_0x1c14b1[_0x05c0('0x3a')],{'$or':_[_0x05c0('0x2a')](_0x216a5c,function(_0x40d4db){if(_0x40d4db[_0x05c0('0x2c')]!==_0x05c0('0x3e')){var _0x251d56={};_0x251d56[_0x40d4db[_0x05c0('0x27')]]={'$like':'%'+_0x58769a['query'][_0x05c0('0x3c')]+'%'};return _0x251d56;}})});}_0x1c14b1=_[_0x05c0('0x3d')]({},_0x1c14b1,_0x58769a[_0x05c0('0x3f')]);var _0x3eff9e={'where':_0x1c14b1['where']};return db['AnalyticFieldReport'][_0x05c0('0x1d')](_0x3eff9e)[_0x05c0('0x24')](function(_0x3c5620){_0x200e80['count']=_0x3c5620;if(_0x58769a[_0x05c0('0x2f')][_0x05c0('0x40')]){_0x1c14b1[_0x05c0('0x41')]=[{'all':!![]}];}return db[_0x05c0('0x42')]['findAll'](_0x1c14b1);})[_0x05c0('0x24')](function(_0x32f25c){_0x200e80['rows']=_0x32f25c;return _0x200e80;})[_0x05c0('0x24')](respondWithFilteredResult(_0x7d5ccd,_0x1c14b1))[_0x05c0('0x43')](handleError(_0x7d5ccd,null));};exports[_0x05c0('0x44')]=function(_0xcbd98,_0x164e3a){var _0x398a6e={'raw':![],'where':{'id':_0xcbd98['params']['id']}},_0x322fd1={};_0x322fd1['model']=_[_0x05c0('0x30')](db[_0x05c0('0x42')][_0x05c0('0x45')]);_0x322fd1[_0x05c0('0x2f')]=_[_0x05c0('0x30')](_0xcbd98['query']);_0x322fd1[_0x05c0('0x31')]=_[_0x05c0('0x32')](_0x322fd1[_0x05c0('0x2e')],_0x322fd1[_0x05c0('0x2f')]);_0x398a6e[_0x05c0('0x33')]=_[_0x05c0('0x32')](_0x322fd1[_0x05c0('0x2e')],qs['fields'](_0xcbd98[_0x05c0('0x2f')][_0x05c0('0x34')]));_0x398a6e[_0x05c0('0x33')]=_0x398a6e[_0x05c0('0x33')][_0x05c0('0x46')]?_0x398a6e[_0x05c0('0x33')]:_0x322fd1[_0x05c0('0x2e')];if(_0xcbd98[_0x05c0('0x2f')][_0x05c0('0x40')]){_0x398a6e[_0x05c0('0x41')]=[{'all':!![]}];}_0x398a6e=_[_0x05c0('0x3d')]({},_0x398a6e,_0xcbd98['options']);return db['AnalyticFieldReport'][_0x05c0('0x47')](_0x398a6e)[_0x05c0('0x24')](handleEntityNotFound(_0x164e3a,null))[_0x05c0('0x24')](respondWithResult(_0x164e3a,null))[_0x05c0('0x43')](handleError(_0x164e3a,null));};exports[_0x05c0('0x48')]=function(_0x856372,_0x54a1f6){return db[_0x05c0('0x42')][_0x05c0('0x48')](_0x856372[_0x05c0('0x49')],{})[_0x05c0('0x24')](respondWithResult(_0x54a1f6,0xc9))['catch'](handleError(_0x54a1f6,null));};exports[_0x05c0('0x4a')]=function(_0x2440e8,_0x3ec0bf){return db[_0x05c0('0x42')]['bulkCreate'](_0x2440e8[_0x05c0('0x49')],{'raw':![],'individualHooks':!![]})[_0x05c0('0x24')](respondWithResult(_0x3ec0bf,0xc9))[_0x05c0('0x43')](handleError(_0x3ec0bf,null));};exports[_0x05c0('0x4b')]=function(_0x5ef6cf,_0x230ffa){if(_0x5ef6cf[_0x05c0('0x49')]['id']){delete _0x5ef6cf['body']['id'];}return db[_0x05c0('0x42')]['find']({'where':{'id':_0x5ef6cf['params']['id']}})[_0x05c0('0x24')](handleEntityNotFound(_0x230ffa,null))['then'](saveUpdates(_0x5ef6cf[_0x05c0('0x49')],null))[_0x05c0('0x24')](respondWithResult(_0x230ffa,null))[_0x05c0('0x43')](handleError(_0x230ffa,null));};exports[_0x05c0('0x23')]=function(_0x3ccae9,_0x2affe8){return db['AnalyticFieldReport'][_0x05c0('0x47')]({'where':{'id':_0x3ccae9['params']['id']}})[_0x05c0('0x24')](handleEntityNotFound(_0x2affe8,null))[_0x05c0('0x24')](removeEntity(_0x2affe8,null))[_0x05c0('0x43')](handleError(_0x2affe8,null));};exports[_0x05c0('0x4c')]=function(_0x1496d4,_0x37ad50){return db[_0x05c0('0x42')]['destroy']({'where':{'id':_0x1496d4['query']['ids']||[]},'raw':![],'individualHooks':!![]})[_0x05c0('0x24')](respondWithResult(_0x37ad50,0xcc))[_0x05c0('0x43')](handleError(_0x37ad50,null));};exports['addFields']=function(_0x5d8e8d,_0xbfb9cb,_0x1a72d6){return db[_0x05c0('0x4d')][_0x05c0('0x4e')]({'where':{'id':_0x5d8e8d[_0x05c0('0x4f')]['id']}})[_0x05c0('0x24')](handleEntityNotFound(_0xbfb9cb,null))[_0x05c0('0x24')](function(_0x48155d){if(_0x48155d){return db[_0x05c0('0x50')][_0x05c0('0x51')](function(_0x189a9a){return db[_0x05c0('0x42')]['destroy']({'where':{'CustomReportId':_0x5d8e8d[_0x05c0('0x4f')]['id']},'transaction':_0x189a9a})['then'](function(_0x1edf4f){var _0x30bc90=_['map'](_0x5d8e8d[_0x05c0('0x49')],function(_0x58bf78){delete _0x58bf78['id'];_0x58bf78[_0x05c0('0x52')]=_0x5d8e8d[_0x05c0('0x4f')]['id'];return _0x58bf78;});return db[_0x05c0('0x42')][_0x05c0('0x4a')](_0x30bc90,{'transaction':_0x189a9a});});})[_0x05c0('0x24')](function(){return db[_0x05c0('0x42')]['findAll']({'where':{'CustomReportId':_0x5d8e8d[_0x05c0('0x4f')]['id']}});});}})[_0x05c0('0x24')](respondWithResult(_0xbfb9cb,null))[_0x05c0('0x43')](handleError(_0xbfb9cb,null));};