62693e9d26d52bfb0a2958ceae19a2ac36334543
[motion2.git] / server / api / dashboardItem / dashboardItem.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 _0x92c8=['attributes','intersection','model','fields','length','includeAll','include','options','find','catch','iframe','attrUrl','attrs','value','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','stringify','create','body','html-pdf','eml-format','rimraf','moment','bluebird','mustache','util','sox','to-csv','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../mysqldb','redis','defaults','localhost','./dashboardItem.socket','register','sendStatus','end','status','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','show','params','keys','DashboardItem','query','filters'];(function(_0x133c78,_0x531845){var _0x399a4b=function(_0x29e2f0){while(--_0x29e2f0){_0x133c78['push'](_0x133c78['shift']());}};_0x399a4b(++_0x531845);}(_0x92c8,0x12e));var _0x892c=function(_0x4edc12,_0x244c5f){_0x4edc12=_0x4edc12-0x0;var _0x3564a7=_0x92c8[_0x4edc12];return _0x3564a7;};'use strict';var pdf=require(_0x892c('0x0'));var emlformat=require(_0x892c('0x1'));var rimraf=require(_0x892c('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x892c('0x3'));var BPromise=require(_0x892c('0x4'));var Mustache=require(_0x892c('0x5'));var util=require(_0x892c('0x6'));var path=require('path');var sox=require(_0x892c('0x7'));var csv=require(_0x892c('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x892c('0x9'));var crypto=require(_0x892c('0xa'));var jsforce=require(_0x892c('0xb'));var deskjs=require(_0x892c('0xc'));var toCsv=require(_0x892c('0x8'));var querystring=require(_0x892c('0xd'));var Papa=require('papaparse');var Redis=require(_0x892c('0xe'));var authService=require(_0x892c('0xf'));var qs=require(_0x892c('0x10'));var as=require(_0x892c('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x892c('0x12'));var utils=require(_0x892c('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x892c('0x14'))['db'];config[_0x892c('0x15')]=_[_0x892c('0x16')](config[_0x892c('0x15')],{'host':_0x892c('0x17'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x892c('0x15')]));require(_0x892c('0x18'))[_0x892c('0x19')](socket);function respondWithStatusCode(_0x5500f4,_0x1da56a){_0x1da56a=_0x1da56a||0xcc;return function(_0x219beb){if(_0x219beb){return _0x5500f4[_0x892c('0x1a')](_0x1da56a);}return _0x5500f4['status'](_0x1da56a)[_0x892c('0x1b')]();};}function respondWithResult(_0x412958,_0x1f38e5){_0x1f38e5=_0x1f38e5||0xc8;return function(_0x25cefb){if(_0x25cefb){return _0x412958[_0x892c('0x1c')](_0x1f38e5)[_0x892c('0x1d')](_0x25cefb);}};}function respondWithFilteredResult(_0x144277,_0x241eab){return function(_0xc562c0){if(_0xc562c0){var _0x1ebe29=_0xc562c0[_0x892c('0x1e')],_0x11aa43=_0x241eab[_0x892c('0x1f')],_0x279569=_0x241eab[_0x892c('0x1f')]+_0x241eab[_0x892c('0x20')],_0xc9b9f0;if(_0x279569>=_0x1ebe29){_0x279569=_0x1ebe29;_0xc9b9f0=0xc8;}else{_0xc9b9f0=0xce;}_0x144277['status'](_0xc9b9f0);return _0x144277[_0x892c('0x21')](_0x892c('0x22'),_0x11aa43+'-'+_0x279569+'/'+_0x1ebe29)[_0x892c('0x1d')](_0xc562c0);}return null;};}function patchUpdates(_0x1e9615){return function(_0x5ce888){try{jsonpatch[_0x892c('0x23')](_0x5ce888,_0x1e9615,!![]);}catch(_0x2d0c40){return BPromise['reject'](_0x2d0c40);}return _0x5ce888[_0x892c('0x24')]();};}function saveUpdates(_0x4ce21c,_0x3d6fb8){return function(_0x5ac348){if(_0x5ac348){return _0x5ac348[_0x892c('0x25')](_0x4ce21c)[_0x892c('0x26')](function(_0x4896e1){return _0x4896e1;});}return null;};}function removeEntity(_0x217eed,_0x3f99ad){return function(_0x5198b8){if(_0x5198b8){return _0x5198b8[_0x892c('0x27')]()[_0x892c('0x26')](function(){_0x217eed[_0x892c('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x36189f,_0x5a45a0){return function(_0x50f940){if(!_0x50f940){_0x36189f['sendStatus'](0x194);}return _0x50f940;};}function handleError(_0xb83400,_0x3f1df8){_0x3f1df8=_0x3f1df8||0x1f4;return function(_0x20a689){logger[_0x892c('0x28')](_0x20a689[_0x892c('0x29')]);if(_0x20a689['name']){delete _0x20a689[_0x892c('0x2a')];}_0xb83400[_0x892c('0x1c')](_0x3f1df8)[_0x892c('0x2b')](_0x20a689);};}exports[_0x892c('0x2c')]=function(_0x337b48,_0x49021f){var _0x45d409={'raw':![],'where':{'id':_0x337b48[_0x892c('0x2d')]['id']}},_0x965754={};_0x965754['model']=_[_0x892c('0x2e')](db[_0x892c('0x2f')]['rawAttributes']);_0x965754[_0x892c('0x30')]=_[_0x892c('0x2e')](_0x337b48[_0x892c('0x30')]);_0x965754[_0x892c('0x31')]=_['intersection'](_0x965754['model'],_0x965754[_0x892c('0x30')]);_0x45d409[_0x892c('0x32')]=_[_0x892c('0x33')](_0x965754[_0x892c('0x34')],qs['fields'](_0x337b48['query'][_0x892c('0x35')]));_0x45d409[_0x892c('0x32')]=_0x45d409[_0x892c('0x32')][_0x892c('0x36')]?_0x45d409[_0x892c('0x32')]:_0x965754[_0x892c('0x34')];if(_0x337b48[_0x892c('0x30')][_0x892c('0x37')]){_0x45d409[_0x892c('0x38')]=[{'all':!![]}];}_0x45d409=_['merge']({},_0x45d409,_0x337b48[_0x892c('0x39')]);return db['DashboardItem'][_0x892c('0x3a')](_0x45d409)[_0x892c('0x26')](handleEntityNotFound(_0x49021f,null))[_0x892c('0x26')](respondWithResult(_0x49021f,null))[_0x892c('0x3b')](handleError(_0x49021f,null));};exports[_0x892c('0x27')]=function(_0x461562,_0x461dba){return db['DashboardItem'][_0x892c('0x3a')]({'where':{'id':_0x461562[_0x892c('0x2d')]['id']}})['then'](handleEntityNotFound(_0x461dba,null))['then'](removeEntity(_0x461dba,null))[_0x892c('0x3b')](handleError(_0x461dba,null));};function widgetAttributes(_0x1427b5){try{switch(_0x1427b5['type']){case _0x892c('0x3c'):return[{'name':_0x892c('0x3d'),'value':_0x1427b5['attrUrl']||(_0x1427b5[_0x892c('0x3e')]&&_0x1427b5[_0x892c('0x3e')][0x0]?_0x1427b5[_0x892c('0x3e')][0x0][_0x892c('0x3f')]:undefined)||'https://'}];case _0x892c('0x40'):return[{'name':_0x892c('0x41'),'value':_0x1427b5[_0x892c('0x41')]||(_0x1427b5[_0x892c('0x3e')]&&_0x1427b5['attrs'][0x0]?_0x1427b5[_0x892c('0x3e')][0x0][_0x892c('0x3f')]:undefined)||''}];case _0x892c('0x42'):return[{'name':'attrHourFormat','value':_0x1427b5[_0x892c('0x43')]||(_0x1427b5[_0x892c('0x3e')]&&_0x1427b5[_0x892c('0x3e')][0x0]?_0x1427b5['attrs'][0x0][_0x892c('0x3f')]:undefined)||_0x892c('0x44')},{'name':_0x892c('0x45'),'value':_0x1427b5['attrTimezone']||(_0x1427b5['attrs']&&_0x1427b5[_0x892c('0x3e')][0x1]?_0x1427b5[_0x892c('0x3e')][0x1]['value']:undefined)||_0x892c('0x46')},{'name':'attrFontSize','value':_0x1427b5[_0x892c('0x47')]||(_0x1427b5[_0x892c('0x3e')]&&_0x1427b5['attrs'][0x2]?_0x1427b5[_0x892c('0x3e')][0x2]['value']:undefined)||0xc}];case _0x892c('0x48'):return[{'name':_0x892c('0x49'),'value':_0x1427b5['attrMetric']||(_0x1427b5['attrs']&&_0x1427b5[_0x892c('0x3e')][0x0]?_0x1427b5['attrs'][0x0][_0x892c('0x3f')]:undefined)||_0x892c('0x4a')},{'name':_0x892c('0x4b'),'value':_0x1427b5[_0x892c('0x4b')]||(_0x1427b5[_0x892c('0x3e')]&&_0x1427b5[_0x892c('0x3e')][0x1]?_0x1427b5['attrs'][0x1][_0x892c('0x3f')]:undefined)||[]},{'name':_0x892c('0x47'),'value':_0x1427b5['attrFontSize']||(_0x1427b5[_0x892c('0x3e')]&&_0x1427b5[_0x892c('0x3e')][0x2]?_0x1427b5[_0x892c('0x3e')][0x2][_0x892c('0x3f')]:undefined)||0x14}];case _0x892c('0x4c'):case _0x892c('0x4d'):return[{'name':_0x892c('0x4e'),'value':_0x1427b5[_0x892c('0x4e')]||(_0x1427b5[_0x892c('0x3e')]&&_0x1427b5[_0x892c('0x3e')][0x0]?_0x1427b5['attrs'][0x0][_0x892c('0x3f')]:undefined)||'total'},{'name':_0x892c('0x4f'),'value':_0x1427b5[_0x892c('0x4f')]||(_0x1427b5[_0x892c('0x3e')]&&_0x1427b5[_0x892c('0x3e')][0x1]?_0x1427b5[_0x892c('0x3e')][0x1][_0x892c('0x3f')]:undefined)||null},{'name':'attrSerie3','value':_0x1427b5[_0x892c('0x50')]||(_0x1427b5[_0x892c('0x3e')]&&_0x1427b5[_0x892c('0x3e')][0x2]?_0x1427b5[_0x892c('0x3e')][0x2][_0x892c('0x3f')]:undefined)||null},{'name':_0x892c('0x4b'),'value':_0x1427b5[_0x892c('0x4b')]||(_0x1427b5[_0x892c('0x3e')]&&_0x1427b5['attrs'][0x3]?_0x1427b5['attrs'][0x3][_0x892c('0x3f')]:undefined)||[]}];case _0x892c('0x51'):return[{'name':_0x892c('0x52'),'type':_0x1427b5[_0x892c('0x53')]||(_0x1427b5[_0x892c('0x3e')]&&_0x1427b5[_0x892c('0x3e')][0x0]?_0x1427b5['attrs'][0x0]['type']:undefined)||null,'value':_0x1427b5[_0x892c('0x52')]||(_0x1427b5[_0x892c('0x3e')]&&_0x1427b5[_0x892c('0x3e')][0x0]?_0x1427b5[_0x892c('0x3e')][0x0][_0x892c('0x3f')]:undefined)||null},{'name':_0x892c('0x54'),'value':_0x1427b5[_0x892c('0x54')]||(_0x1427b5['attrs']&&_0x1427b5[_0x892c('0x3e')][0x1]?_0x1427b5['attrs'][0x1][_0x892c('0x3f')]:undefined)||0x0}];default:return[];}}catch(_0x472dfe){logger[_0x892c('0x28')]('widgetAttributes:\x20%s',JSON[_0x892c('0x55')](_0x472dfe));return[];}}exports[_0x892c('0x56')]=function(_0xecb4d8,_0x2632ec){if(_0xecb4d8[_0x892c('0x57')]){_0xecb4d8[_0x892c('0x57')][_0x892c('0x3e')]=widgetAttributes(_0xecb4d8[_0x892c('0x57')]);}return db[_0x892c('0x2f')][_0x892c('0x56')](_0xecb4d8[_0x892c('0x57')],{})['then'](respondWithResult(_0x2632ec,0xc9))[_0x892c('0x3b')](handleError(_0x2632ec,null));};exports['update']=function(_0x45a605,_0x3a865a){if(_0x45a605[_0x892c('0x57')]['id']){delete _0x45a605[_0x892c('0x57')]['id'];}_0x45a605['body']['attrs']=widgetAttributes(_0x45a605[_0x892c('0x57')]);return db['DashboardItem']['find']({'where':{'id':_0x45a605['params']['id']}})[_0x892c('0x26')](handleEntityNotFound(_0x3a865a,null))['then'](saveUpdates(_0x45a605[_0x892c('0x57')],null))['then'](respondWithResult(_0x3a865a,null))[_0x892c('0x3b')](handleError(_0x3a865a,null));};