a6bde490862dc72e2bfd3db058721dc68f4a327d
[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 _0xfbce=['stack','name','send','index','map','AnalyticFieldReport','rawAttributes','fieldName','type','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','include','findAll','rows','show','keys','includeAll','find','catch','create','body','bulkCreate','params','bulkDestroy','findOne','sequelize','transaction','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','save','update','then','destroy','error'];(function(_0x80f51a,_0x32e95e){var _0x327148=function(_0x16f788){while(--_0x16f788){_0x80f51a['push'](_0x80f51a['shift']());}};_0x327148(++_0x32e95e);}(_0xfbce,0xd5));var _0xefbc=function(_0x3a2d5a,_0xd856d7){_0x3a2d5a=_0x3a2d5a-0x0;var _0x571e32=_0xfbce[_0x3a2d5a];return _0x571e32;};'use strict';var emlformat=require(_0xefbc('0x0'));var rimraf=require(_0xefbc('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xefbc('0x2'));var rp=require(_0xefbc('0x3'));var moment=require(_0xefbc('0x4'));var BPromise=require(_0xefbc('0x5'));var Mustache=require(_0xefbc('0x6'));var util=require(_0xefbc('0x7'));var path=require(_0xefbc('0x8'));var sox=require(_0xefbc('0x9'));var csv=require(_0xefbc('0xa'));var ejs=require(_0xefbc('0xb'));var fs=require('fs');var fs_extra=require(_0xefbc('0xc'));var _=require(_0xefbc('0xd'));var squel=require('squel');var crypto=require(_0xefbc('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xefbc('0xf'));var toCsv=require(_0xefbc('0xa'));var querystring=require(_0xefbc('0x10'));var Papa=require('papaparse');var Redis=require(_0xefbc('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xefbc('0x12'));var as=require(_0xefbc('0x13'));var hardwareService=require(_0xefbc('0x14'));var logger=require(_0xefbc('0x15'))(_0xefbc('0x16'));var utils=require(_0xefbc('0x17'));var config=require(_0xefbc('0x18'));var licenseUtil=require(_0xefbc('0x19'));var db=require(_0xefbc('0x1a'))['db'];function respondWithStatusCode(_0x5b661f,_0x90ad4){_0x90ad4=_0x90ad4||0xcc;return function(_0x2650b6){if(_0x2650b6){return _0x5b661f[_0xefbc('0x1b')](_0x90ad4);}return _0x5b661f[_0xefbc('0x1c')](_0x90ad4)[_0xefbc('0x1d')]();};}function respondWithResult(_0x5ae300,_0x56ab47){_0x56ab47=_0x56ab47||0xc8;return function(_0x1eed8e){if(_0x1eed8e){return _0x5ae300[_0xefbc('0x1c')](_0x56ab47)['json'](_0x1eed8e);}};}function respondWithFilteredResult(_0x3de0c0,_0x389f4f){return function(_0x57e547){if(_0x57e547){var _0x1b6e13=typeof _0x389f4f[_0xefbc('0x1e')]===_0xefbc('0x1f')&&typeof _0x389f4f[_0xefbc('0x20')]===_0xefbc('0x1f');var _0x3c1312=_0x57e547['count'];var _0x4480a7=_0x1b6e13?0x0:_0x389f4f[_0xefbc('0x1e')];var _0x497238=_0x1b6e13?_0x57e547[_0xefbc('0x21')]:_0x389f4f[_0xefbc('0x1e')]+_0x389f4f[_0xefbc('0x20')];var _0x3e7379;if(_0x497238>=_0x3c1312){_0x497238=_0x3c1312;_0x3e7379=0xc8;}else{_0x3e7379=0xce;}_0x3de0c0['status'](_0x3e7379);return _0x3de0c0[_0xefbc('0x22')](_0xefbc('0x23'),_0x4480a7+'-'+_0x497238+'/'+_0x3c1312)[_0xefbc('0x24')](_0x57e547);}return null;};}function patchUpdates(_0x18c5e7){return function(_0x1f83ec){try{jsonpatch['apply'](_0x1f83ec,_0x18c5e7,!![]);}catch(_0x7820c8){return BPromise['reject'](_0x7820c8);}return _0x1f83ec[_0xefbc('0x25')]();};}function saveUpdates(_0x57238c,_0x4e2e86){return function(_0x6f96cc){if(_0x6f96cc){return _0x6f96cc[_0xefbc('0x26')](_0x57238c)[_0xefbc('0x27')](function(_0x56e236){return _0x56e236;});}return null;};}function removeEntity(_0x1caec3,_0x511fee){return function(_0x463f5d){if(_0x463f5d){return _0x463f5d[_0xefbc('0x28')]()[_0xefbc('0x27')](function(){_0x1caec3[_0xefbc('0x1c')](0xcc)[_0xefbc('0x1d')]();});}};}function handleEntityNotFound(_0x19b178,_0x62c184){return function(_0x189aa2){if(!_0x189aa2){_0x19b178[_0xefbc('0x1b')](0x194);}return _0x189aa2;};}function handleError(_0x56a78a,_0x5a9c1f){_0x5a9c1f=_0x5a9c1f||0x1f4;return function(_0x3fa119){logger[_0xefbc('0x29')](_0x3fa119[_0xefbc('0x2a')]);if(_0x3fa119[_0xefbc('0x2b')]){delete _0x3fa119[_0xefbc('0x2b')];}_0x56a78a[_0xefbc('0x1c')](_0x5a9c1f)[_0xefbc('0x2c')](_0x3fa119);};}exports[_0xefbc('0x2d')]=function(_0x2e3bbe,_0x17e963){var _0xecbbce={},_0x4e7fff={},_0x302866={'count':0x0,'rows':[]};var _0x54d522=_[_0xefbc('0x2e')](db[_0xefbc('0x2f')][_0xefbc('0x30')],function(_0x387eef){return{'name':_0x387eef[_0xefbc('0x31')],'type':_0x387eef[_0xefbc('0x32')][_0xefbc('0x33')]};});_0x4e7fff[_0xefbc('0x34')]=_[_0xefbc('0x2e')](_0x54d522,_0xefbc('0x2b'));_0x4e7fff[_0xefbc('0x35')]=_['keys'](_0x2e3bbe[_0xefbc('0x35')]);_0x4e7fff[_0xefbc('0x36')]=_['intersection'](_0x4e7fff[_0xefbc('0x34')],_0x4e7fff[_0xefbc('0x35')]);_0xecbbce[_0xefbc('0x37')]=_[_0xefbc('0x38')](_0x4e7fff[_0xefbc('0x34')],qs['fields'](_0x2e3bbe[_0xefbc('0x35')][_0xefbc('0x39')]));_0xecbbce['attributes']=_0xecbbce[_0xefbc('0x37')][_0xefbc('0x3a')]?_0xecbbce['attributes']:_0x4e7fff[_0xefbc('0x34')];if(!_0x2e3bbe['query'][_0xefbc('0x3b')](_0xefbc('0x3c'))){_0xecbbce[_0xefbc('0x20')]=qs[_0xefbc('0x20')](_0x2e3bbe[_0xefbc('0x35')][_0xefbc('0x20')]);_0xecbbce[_0xefbc('0x1e')]=qs[_0xefbc('0x1e')](_0x2e3bbe[_0xefbc('0x35')]['offset']);}_0xecbbce[_0xefbc('0x3d')]=qs['sort'](_0x2e3bbe['query'][_0xefbc('0x3e')]);_0xecbbce['where']=qs['filters'](_[_0xefbc('0x3f')](_0x2e3bbe[_0xefbc('0x35')],_0x4e7fff[_0xefbc('0x36')]),_0x54d522);if(_0x2e3bbe[_0xefbc('0x35')][_0xefbc('0x40')]){_0xecbbce[_0xefbc('0x41')]=_[_0xefbc('0x42')](_0xecbbce[_0xefbc('0x41')],{'$or':_[_0xefbc('0x2e')](_0x54d522,function(_0x5ce77f){if(_0x5ce77f[_0xefbc('0x32')]!==_0xefbc('0x43')){var _0x41d2e1={};_0x41d2e1[_0x5ce77f[_0xefbc('0x2b')]]={'$like':'%'+_0x2e3bbe[_0xefbc('0x35')]['filter']+'%'};return _0x41d2e1;}})});}_0xecbbce=_[_0xefbc('0x42')]({},_0xecbbce,_0x2e3bbe[_0xefbc('0x44')]);var _0x43036b={'where':_0xecbbce[_0xefbc('0x41')]};return db[_0xefbc('0x2f')]['count'](_0x43036b)[_0xefbc('0x27')](function(_0x1eb23e){_0x302866[_0xefbc('0x21')]=_0x1eb23e;if(_0x2e3bbe[_0xefbc('0x35')]['includeAll']){_0xecbbce[_0xefbc('0x45')]=[{'all':!![]}];}return db[_0xefbc('0x2f')][_0xefbc('0x46')](_0xecbbce);})[_0xefbc('0x27')](function(_0x5d9e97){_0x302866[_0xefbc('0x47')]=_0x5d9e97;return _0x302866;})[_0xefbc('0x27')](respondWithFilteredResult(_0x17e963,_0xecbbce))['catch'](handleError(_0x17e963,null));};exports[_0xefbc('0x48')]=function(_0x588a41,_0xb40302){var _0x3bcdf7={'raw':![],'where':{'id':_0x588a41['params']['id']}},_0x56964d={};_0x56964d[_0xefbc('0x34')]=_[_0xefbc('0x49')](db[_0xefbc('0x2f')][_0xefbc('0x30')]);_0x56964d[_0xefbc('0x35')]=_[_0xefbc('0x49')](_0x588a41[_0xefbc('0x35')]);_0x56964d['filters']=_[_0xefbc('0x38')](_0x56964d[_0xefbc('0x34')],_0x56964d['query']);_0x3bcdf7['attributes']=_[_0xefbc('0x38')](_0x56964d['model'],qs['fields'](_0x588a41[_0xefbc('0x35')]['fields']));_0x3bcdf7['attributes']=_0x3bcdf7[_0xefbc('0x37')]['length']?_0x3bcdf7[_0xefbc('0x37')]:_0x56964d[_0xefbc('0x34')];if(_0x588a41['query'][_0xefbc('0x4a')]){_0x3bcdf7['include']=[{'all':!![]}];}_0x3bcdf7=_[_0xefbc('0x42')]({},_0x3bcdf7,_0x588a41[_0xefbc('0x44')]);return db[_0xefbc('0x2f')][_0xefbc('0x4b')](_0x3bcdf7)[_0xefbc('0x27')](handleEntityNotFound(_0xb40302,null))[_0xefbc('0x27')](respondWithResult(_0xb40302,null))[_0xefbc('0x4c')](handleError(_0xb40302,null));};exports[_0xefbc('0x4d')]=function(_0xb7c78,_0x2700ed){return db[_0xefbc('0x2f')][_0xefbc('0x4d')](_0xb7c78[_0xefbc('0x4e')],{})[_0xefbc('0x27')](respondWithResult(_0x2700ed,0xc9))[_0xefbc('0x4c')](handleError(_0x2700ed,null));};exports[_0xefbc('0x4f')]=function(_0x3ede7b,_0xab6347){return db['AnalyticFieldReport'][_0xefbc('0x4f')](_0x3ede7b[_0xefbc('0x4e')],{'raw':![],'individualHooks':!![]})[_0xefbc('0x27')](respondWithResult(_0xab6347,0xc9))[_0xefbc('0x4c')](handleError(_0xab6347,null));};exports[_0xefbc('0x26')]=function(_0x4fa83e,_0xec2c22){if(_0x4fa83e['body']['id']){delete _0x4fa83e['body']['id'];}return db[_0xefbc('0x2f')][_0xefbc('0x4b')]({'where':{'id':_0x4fa83e[_0xefbc('0x50')]['id']}})['then'](handleEntityNotFound(_0xec2c22,null))[_0xefbc('0x27')](saveUpdates(_0x4fa83e['body'],null))[_0xefbc('0x27')](respondWithResult(_0xec2c22,null))[_0xefbc('0x4c')](handleError(_0xec2c22,null));};exports[_0xefbc('0x28')]=function(_0x2f569e,_0xd314bd){return db['AnalyticFieldReport']['find']({'where':{'id':_0x2f569e[_0xefbc('0x50')]['id']}})[_0xefbc('0x27')](handleEntityNotFound(_0xd314bd,null))[_0xefbc('0x27')](removeEntity(_0xd314bd,null))[_0xefbc('0x4c')](handleError(_0xd314bd,null));};exports[_0xefbc('0x51')]=function(_0x27d9b0,_0x3fdbb7){return db[_0xefbc('0x2f')]['destroy']({'where':{'id':_0x27d9b0[_0xefbc('0x35')]['ids']||[]},'raw':![],'individualHooks':!![]})[_0xefbc('0x27')](respondWithResult(_0x3fdbb7,0xcc))[_0xefbc('0x4c')](handleError(_0x3fdbb7,null));};exports['addFields']=function(_0x3ae77d,_0x350f68,_0x509648){return db['AnalyticCustomReport'][_0xefbc('0x52')]({'where':{'id':_0x3ae77d[_0xefbc('0x50')]['id']}})[_0xefbc('0x27')](handleEntityNotFound(_0x350f68,null))['then'](function(_0x2d5346){if(_0x2d5346){return db[_0xefbc('0x53')][_0xefbc('0x54')](function(_0x153def){return db[_0xefbc('0x2f')][_0xefbc('0x28')]({'where':{'CustomReportId':_0x3ae77d[_0xefbc('0x50')]['id']},'transaction':_0x153def})[_0xefbc('0x27')](function(_0x4b1403){var _0x7aa00c=_['map'](_0x3ae77d[_0xefbc('0x4e')],function(_0x3dbbab){delete _0x3dbbab['id'];_0x3dbbab['CustomReportId']=_0x3ae77d['params']['id'];return _0x3dbbab;});return db[_0xefbc('0x2f')][_0xefbc('0x4f')](_0x7aa00c,{'transaction':_0x153def});});})[_0xefbc('0x27')](function(){return db[_0xefbc('0x2f')][_0xefbc('0x46')]({'where':{'CustomReportId':_0x3ae77d[_0xefbc('0x50')]['id']}});});}})[_0xefbc('0x27')](respondWithResult(_0x350f68,null))[_0xefbc('0x4c')](handleError(_0x350f68,null));};