5d2c1712d86f510b8eeffbebf27b81b8fcce1696
[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 _0xaedb=['rimraf','fast-json-patch','request-promise','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','save','update','then','destroy','sendStatus','error','stack','name','send','index','map','AnalyticFieldReport','rawAttributes','type','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','filter','where','merge','VIRTUAL','include','rows','catch','show','params','length','includeAll','options','find','create','bulkCreate','body','bulkDestroy','ids','addFields','AnalyticCustomReport','findOne','CustomReportId','findAll','eml-format'];(function(_0x5bf52a,_0x45b703){var _0x446877=function(_0x14090e){while(--_0x14090e){_0x5bf52a['push'](_0x5bf52a['shift']());}};_0x446877(++_0x45b703);}(_0xaedb,0x194));var _0xbaed=function(_0xb8ab,_0x407b3a){_0xb8ab=_0xb8ab-0x0;var _0x1f80c6=_0xaedb[_0xb8ab];return _0x1f80c6;};'use strict';var emlformat=require(_0xbaed('0x0'));var rimraf=require(_0xbaed('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xbaed('0x2'));var rp=require(_0xbaed('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xbaed('0x4'));var util=require(_0xbaed('0x5'));var path=require('path');var sox=require(_0xbaed('0x6'));var csv=require('to-csv');var ejs=require(_0xbaed('0x7'));var fs=require('fs');var fs_extra=require(_0xbaed('0x8'));var _=require(_0xbaed('0x9'));var squel=require(_0xbaed('0xa'));var crypto=require(_0xbaed('0xb'));var jsforce=require(_0xbaed('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xbaed('0xd'));var querystring=require('querystring');var Papa=require(_0xbaed('0xe'));var Redis=require(_0xbaed('0xf'));var authService=require(_0xbaed('0x10'));var qs=require(_0xbaed('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xbaed('0x12'))(_0xbaed('0x13'));var utils=require(_0xbaed('0x14'));var config=require(_0xbaed('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xbaed('0x16'))['db'];function respondWithStatusCode(_0x2b6966,_0x38a189){_0x38a189=_0x38a189||0xcc;return function(_0x5b7d08){if(_0x5b7d08){return _0x2b6966['sendStatus'](_0x38a189);}return _0x2b6966[_0xbaed('0x17')](_0x38a189)[_0xbaed('0x18')]();};}function respondWithResult(_0x145fa7,_0x43def3){_0x43def3=_0x43def3||0xc8;return function(_0xefd573){if(_0xefd573){return _0x145fa7['status'](_0x43def3)[_0xbaed('0x19')](_0xefd573);}};}function respondWithFilteredResult(_0x13a1f4,_0x2df41f){return function(_0xfd3ba4){if(_0xfd3ba4){var _0x2acbca=typeof _0x2df41f[_0xbaed('0x1a')]===_0xbaed('0x1b')&&typeof _0x2df41f[_0xbaed('0x1c')]===_0xbaed('0x1b');var _0x52fd6e=_0xfd3ba4[_0xbaed('0x1d')];var _0x17f0d6=_0x2acbca?0x0:_0x2df41f['offset'];var _0x16f7f6=_0x2acbca?_0xfd3ba4['count']:_0x2df41f['offset']+_0x2df41f[_0xbaed('0x1c')];var _0x5d5d46;if(_0x16f7f6>=_0x52fd6e){_0x16f7f6=_0x52fd6e;_0x5d5d46=0xc8;}else{_0x5d5d46=0xce;}_0x13a1f4[_0xbaed('0x17')](_0x5d5d46);return _0x13a1f4[_0xbaed('0x1e')](_0xbaed('0x1f'),_0x17f0d6+'-'+_0x16f7f6+'/'+_0x52fd6e)[_0xbaed('0x19')](_0xfd3ba4);}return null;};}function patchUpdates(_0xe1b0e3){return function(_0x32a698){try{jsonpatch['apply'](_0x32a698,_0xe1b0e3,!![]);}catch(_0x3d6a78){return BPromise['reject'](_0x3d6a78);}return _0x32a698[_0xbaed('0x20')]();};}function saveUpdates(_0x6fb06f,_0xb61c3e){return function(_0x1d9619){if(_0x1d9619){return _0x1d9619[_0xbaed('0x21')](_0x6fb06f)[_0xbaed('0x22')](function(_0x29707e){return _0x29707e;});}return null;};}function removeEntity(_0xb507f3,_0x5a337a){return function(_0x457661){if(_0x457661){return _0x457661[_0xbaed('0x23')]()['then'](function(){_0xb507f3['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x41a7f9,_0x295c88){return function(_0xde7eeb){if(!_0xde7eeb){_0x41a7f9[_0xbaed('0x24')](0x194);}return _0xde7eeb;};}function handleError(_0x5f4004,_0x561a8b){_0x561a8b=_0x561a8b||0x1f4;return function(_0x160028){logger[_0xbaed('0x25')](_0x160028[_0xbaed('0x26')]);if(_0x160028[_0xbaed('0x27')]){delete _0x160028[_0xbaed('0x27')];}_0x5f4004['status'](_0x561a8b)[_0xbaed('0x28')](_0x160028);};}exports[_0xbaed('0x29')]=function(_0xe98405,_0x3d8480){var _0x4e4f8b={},_0x323fb4={},_0x26f20a={'count':0x0,'rows':[]};var _0x546e05=_[_0xbaed('0x2a')](db[_0xbaed('0x2b')][_0xbaed('0x2c')],function(_0x3448e4){return{'name':_0x3448e4['fieldName'],'type':_0x3448e4[_0xbaed('0x2d')][_0xbaed('0x2e')]};});_0x323fb4[_0xbaed('0x2f')]=_[_0xbaed('0x2a')](_0x546e05,_0xbaed('0x27'));_0x323fb4[_0xbaed('0x30')]=_[_0xbaed('0x31')](_0xe98405[_0xbaed('0x30')]);_0x323fb4[_0xbaed('0x32')]=_['intersection'](_0x323fb4[_0xbaed('0x2f')],_0x323fb4['query']);_0x4e4f8b[_0xbaed('0x33')]=_[_0xbaed('0x34')](_0x323fb4['model'],qs['fields'](_0xe98405[_0xbaed('0x30')][_0xbaed('0x35')]));_0x4e4f8b[_0xbaed('0x33')]=_0x4e4f8b['attributes']['length']?_0x4e4f8b[_0xbaed('0x33')]:_0x323fb4['model'];if(!_0xe98405[_0xbaed('0x30')][_0xbaed('0x36')](_0xbaed('0x37'))){_0x4e4f8b['limit']=qs['limit'](_0xe98405[_0xbaed('0x30')][_0xbaed('0x1c')]);_0x4e4f8b['offset']=qs[_0xbaed('0x1a')](_0xe98405['query'][_0xbaed('0x1a')]);}_0x4e4f8b[_0xbaed('0x38')]=qs[_0xbaed('0x39')](_0xe98405['query']['sort']);_0x4e4f8b['where']=qs[_0xbaed('0x32')](_['pick'](_0xe98405[_0xbaed('0x30')],_0x323fb4['filters']),_0x546e05);if(_0xe98405['query'][_0xbaed('0x3a')]){_0x4e4f8b[_0xbaed('0x3b')]=_[_0xbaed('0x3c')](_0x4e4f8b[_0xbaed('0x3b')],{'$or':_[_0xbaed('0x2a')](_0x546e05,function(_0x29171f){if(_0x29171f[_0xbaed('0x2d')]!==_0xbaed('0x3d')){var _0x3b59ef={};_0x3b59ef[_0x29171f[_0xbaed('0x27')]]={'$like':'%'+_0xe98405[_0xbaed('0x30')][_0xbaed('0x3a')]+'%'};return _0x3b59ef;}})});}_0x4e4f8b=_['merge']({},_0x4e4f8b,_0xe98405['options']);var _0x34a271={'where':_0x4e4f8b[_0xbaed('0x3b')]};return db[_0xbaed('0x2b')]['count'](_0x34a271)[_0xbaed('0x22')](function(_0x5cadd8){_0x26f20a[_0xbaed('0x1d')]=_0x5cadd8;if(_0xe98405['query']['includeAll']){_0x4e4f8b[_0xbaed('0x3e')]=[{'all':!![]}];}return db[_0xbaed('0x2b')]['findAll'](_0x4e4f8b);})[_0xbaed('0x22')](function(_0x6fcdc5){_0x26f20a[_0xbaed('0x3f')]=_0x6fcdc5;return _0x26f20a;})[_0xbaed('0x22')](respondWithFilteredResult(_0x3d8480,_0x4e4f8b))[_0xbaed('0x40')](handleError(_0x3d8480,null));};exports[_0xbaed('0x41')]=function(_0x2c0e39,_0x27ee40){var _0x341119={'raw':![],'where':{'id':_0x2c0e39[_0xbaed('0x42')]['id']}},_0x6783e5={};_0x6783e5['model']=_[_0xbaed('0x31')](db[_0xbaed('0x2b')][_0xbaed('0x2c')]);_0x6783e5[_0xbaed('0x30')]=_[_0xbaed('0x31')](_0x2c0e39[_0xbaed('0x30')]);_0x6783e5[_0xbaed('0x32')]=_[_0xbaed('0x34')](_0x6783e5[_0xbaed('0x2f')],_0x6783e5[_0xbaed('0x30')]);_0x341119['attributes']=_[_0xbaed('0x34')](_0x6783e5[_0xbaed('0x2f')],qs['fields'](_0x2c0e39[_0xbaed('0x30')]['fields']));_0x341119[_0xbaed('0x33')]=_0x341119['attributes'][_0xbaed('0x43')]?_0x341119['attributes']:_0x6783e5[_0xbaed('0x2f')];if(_0x2c0e39['query'][_0xbaed('0x44')]){_0x341119[_0xbaed('0x3e')]=[{'all':!![]}];}_0x341119=_[_0xbaed('0x3c')]({},_0x341119,_0x2c0e39[_0xbaed('0x45')]);return db[_0xbaed('0x2b')][_0xbaed('0x46')](_0x341119)['then'](handleEntityNotFound(_0x27ee40,null))[_0xbaed('0x22')](respondWithResult(_0x27ee40,null))[_0xbaed('0x40')](handleError(_0x27ee40,null));};exports[_0xbaed('0x47')]=function(_0x156efa,_0x480da1){return db[_0xbaed('0x2b')][_0xbaed('0x47')](_0x156efa['body'],{})[_0xbaed('0x22')](respondWithResult(_0x480da1,0xc9))[_0xbaed('0x40')](handleError(_0x480da1,null));};exports[_0xbaed('0x48')]=function(_0x56f6c1,_0x33232b){return db['AnalyticFieldReport']['bulkCreate'](_0x56f6c1[_0xbaed('0x49')],{'raw':![],'individualHooks':!![]})[_0xbaed('0x22')](respondWithResult(_0x33232b,0xc9))[_0xbaed('0x40')](handleError(_0x33232b,null));};exports[_0xbaed('0x21')]=function(_0x244982,_0x1edec1){if(_0x244982[_0xbaed('0x49')]['id']){delete _0x244982['body']['id'];}return db['AnalyticFieldReport']['find']({'where':{'id':_0x244982[_0xbaed('0x42')]['id']}})['then'](handleEntityNotFound(_0x1edec1,null))[_0xbaed('0x22')](saveUpdates(_0x244982['body'],null))[_0xbaed('0x22')](respondWithResult(_0x1edec1,null))[_0xbaed('0x40')](handleError(_0x1edec1,null));};exports[_0xbaed('0x23')]=function(_0x134b92,_0x351046){return db[_0xbaed('0x2b')][_0xbaed('0x46')]({'where':{'id':_0x134b92[_0xbaed('0x42')]['id']}})[_0xbaed('0x22')](handleEntityNotFound(_0x351046,null))[_0xbaed('0x22')](removeEntity(_0x351046,null))[_0xbaed('0x40')](handleError(_0x351046,null));};exports[_0xbaed('0x4a')]=function(_0x3b8e6f,_0x1d801c){return db[_0xbaed('0x2b')][_0xbaed('0x23')]({'where':{'id':_0x3b8e6f['query'][_0xbaed('0x4b')]||[]},'raw':![],'individualHooks':!![]})['then'](respondWithResult(_0x1d801c,0xcc))[_0xbaed('0x40')](handleError(_0x1d801c,null));};exports[_0xbaed('0x4c')]=function(_0x271310,_0x5642e0,_0x5a89ac){return db[_0xbaed('0x4d')][_0xbaed('0x4e')]({'where':{'id':_0x271310[_0xbaed('0x42')]['id']}})['then'](handleEntityNotFound(_0x5642e0,null))[_0xbaed('0x22')](function(_0x259cc7){if(_0x259cc7){return db['sequelize']['transaction'](function(_0x1abcea){return db[_0xbaed('0x2b')][_0xbaed('0x23')]({'where':{'CustomReportId':_0x271310[_0xbaed('0x42')]['id']},'transaction':_0x1abcea})[_0xbaed('0x22')](function(_0x40b885){var _0x27ea9c=_[_0xbaed('0x2a')](_0x271310['body'],function(_0x53237a){delete _0x53237a['id'];_0x53237a[_0xbaed('0x4f')]=_0x271310['params']['id'];return _0x53237a;});return db[_0xbaed('0x2b')][_0xbaed('0x48')](_0x27ea9c,{'transaction':_0x1abcea});});})[_0xbaed('0x22')](function(){return db['AnalyticFieldReport'][_0xbaed('0x50')]({'where':{'CustomReportId':_0x271310[_0xbaed('0x42')]['id']}});});}})['then'](respondWithResult(_0x5642e0,null))['catch'](handleError(_0x5642e0,null));};