19e212837be20ae119eeca86029062f80f39993f
[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 _0xf248=['attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','stringify','create','body','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','end','json','count','limit','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','show','params','keys','query','filters','model','attributes','intersection','fields','length','includeAll','merge','options','DashboardItem','find','catch','destroy','type','iframe','attrUrl','attrs','value','https://','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','counter','total','attrVoiceQueues','multibar-chart','pie-chart'];(function(_0x420d85,_0xec6ca2){var _0x4f1ac6=function(_0x15abe9){while(--_0x15abe9){_0x420d85['push'](_0x420d85['shift']());}};_0x4f1ac6(++_0xec6ca2);}(_0xf248,0x65));var _0x8f24=function(_0x5b9685,_0x499016){_0x5b9685=_0x5b9685-0x0;var _0x3b4f3b=_0xf248[_0x5b9685];return _0x3b4f3b;};'use strict';var pdf=require(_0x8f24('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x8f24('0x1'));var zipdir=require(_0x8f24('0x2'));var jsonpatch=require(_0x8f24('0x3'));var rp=require(_0x8f24('0x4'));var moment=require('moment');var BPromise=require(_0x8f24('0x5'));var Mustache=require('mustache');var util=require(_0x8f24('0x6'));var path=require(_0x8f24('0x7'));var sox=require(_0x8f24('0x8'));var csv=require(_0x8f24('0x9'));var ejs=require(_0x8f24('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x8f24('0xb'));var crypto=require(_0x8f24('0xc'));var jsforce=require(_0x8f24('0xd'));var deskjs=require(_0x8f24('0xe'));var toCsv=require(_0x8f24('0x9'));var querystring=require(_0x8f24('0xf'));var Papa=require(_0x8f24('0x10'));var Redis=require(_0x8f24('0x11'));var authService=require(_0x8f24('0x12'));var qs=require(_0x8f24('0x13'));var as=require(_0x8f24('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x8f24('0x15'));var config=require(_0x8f24('0x16'));var licenseUtil=require(_0x8f24('0x17'));var db=require(_0x8f24('0x18'))['db'];config['redis']=_[_0x8f24('0x19')](config[_0x8f24('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x8f24('0x1b'))(new Redis(config['redis']));require(_0x8f24('0x1c'))[_0x8f24('0x1d')](socket);function respondWithStatusCode(_0x1e2638,_0xf4dd57){_0xf4dd57=_0xf4dd57||0xcc;return function(_0x5ef5f0){if(_0x5ef5f0){return _0x1e2638[_0x8f24('0x1e')](_0xf4dd57);}return _0x1e2638[_0x8f24('0x1f')](_0xf4dd57)[_0x8f24('0x20')]();};}function respondWithResult(_0x280b55,_0x5f42ff){_0x5f42ff=_0x5f42ff||0xc8;return function(_0x3b0ccb){if(_0x3b0ccb){return _0x280b55[_0x8f24('0x1f')](_0x5f42ff)[_0x8f24('0x21')](_0x3b0ccb);}};}function respondWithFilteredResult(_0x58563c,_0x4e3400){return function(_0x3595dc){if(_0x3595dc){var _0x4ebfb4=_0x3595dc[_0x8f24('0x22')],_0x540d61=_0x4e3400['offset'],_0x12947b=_0x4e3400['offset']+_0x4e3400[_0x8f24('0x23')],_0x55d2d4;if(_0x12947b>=_0x4ebfb4){_0x12947b=_0x4ebfb4;_0x55d2d4=0xc8;}else{_0x55d2d4=0xce;}_0x58563c[_0x8f24('0x1f')](_0x55d2d4);return _0x58563c[_0x8f24('0x24')](_0x8f24('0x25'),_0x540d61+'-'+_0x12947b+'/'+_0x4ebfb4)[_0x8f24('0x21')](_0x3595dc);}return null;};}function patchUpdates(_0x5331fa){return function(_0xe3b2e3){try{jsonpatch[_0x8f24('0x26')](_0xe3b2e3,_0x5331fa,!![]);}catch(_0x45ad44){return BPromise[_0x8f24('0x27')](_0x45ad44);}return _0xe3b2e3[_0x8f24('0x28')]();};}function saveUpdates(_0x23eba3,_0x1c98ee){return function(_0x327098){if(_0x327098){return _0x327098[_0x8f24('0x29')](_0x23eba3)[_0x8f24('0x2a')](function(_0x1c35d1){return _0x1c35d1;});}return null;};}function removeEntity(_0x359929,_0x5b367a){return function(_0x3d4369){if(_0x3d4369){return _0x3d4369['destroy']()[_0x8f24('0x2a')](function(){_0x359929[_0x8f24('0x1f')](0xcc)[_0x8f24('0x20')]();});}};}function handleEntityNotFound(_0x39e19a,_0x5c9e63){return function(_0x3408f4){if(!_0x3408f4){_0x39e19a[_0x8f24('0x1e')](0x194);}return _0x3408f4;};}function handleError(_0x46116f,_0x12ca6){_0x12ca6=_0x12ca6||0x1f4;return function(_0x426d9b){logger[_0x8f24('0x2b')](_0x426d9b[_0x8f24('0x2c')]);if(_0x426d9b[_0x8f24('0x2d')]){delete _0x426d9b[_0x8f24('0x2d')];}_0x46116f[_0x8f24('0x1f')](_0x12ca6)[_0x8f24('0x2e')](_0x426d9b);};}exports[_0x8f24('0x2f')]=function(_0x122d91,_0x32b25f){var _0x1bb950={'raw':![],'where':{'id':_0x122d91[_0x8f24('0x30')]['id']}},_0x4a87b5={};_0x4a87b5['model']=_['keys'](db['DashboardItem']['rawAttributes']);_0x4a87b5['query']=_[_0x8f24('0x31')](_0x122d91[_0x8f24('0x32')]);_0x4a87b5[_0x8f24('0x33')]=_['intersection'](_0x4a87b5[_0x8f24('0x34')],_0x4a87b5[_0x8f24('0x32')]);_0x1bb950[_0x8f24('0x35')]=_[_0x8f24('0x36')](_0x4a87b5['model'],qs[_0x8f24('0x37')](_0x122d91['query'][_0x8f24('0x37')]));_0x1bb950[_0x8f24('0x35')]=_0x1bb950['attributes'][_0x8f24('0x38')]?_0x1bb950[_0x8f24('0x35')]:_0x4a87b5[_0x8f24('0x34')];if(_0x122d91[_0x8f24('0x32')][_0x8f24('0x39')]){_0x1bb950['include']=[{'all':!![]}];}_0x1bb950=_[_0x8f24('0x3a')]({},_0x1bb950,_0x122d91[_0x8f24('0x3b')]);return db[_0x8f24('0x3c')][_0x8f24('0x3d')](_0x1bb950)[_0x8f24('0x2a')](handleEntityNotFound(_0x32b25f,null))[_0x8f24('0x2a')](respondWithResult(_0x32b25f,null))[_0x8f24('0x3e')](handleError(_0x32b25f,null));};exports[_0x8f24('0x3f')]=function(_0x44f10e,_0x5ace50){return db['DashboardItem']['find']({'where':{'id':_0x44f10e[_0x8f24('0x30')]['id']}})[_0x8f24('0x2a')](handleEntityNotFound(_0x5ace50,null))['then'](removeEntity(_0x5ace50,null))[_0x8f24('0x3e')](handleError(_0x5ace50,null));};function widgetAttributes(_0x5ad65b){try{switch(_0x5ad65b[_0x8f24('0x40')]){case _0x8f24('0x41'):return[{'name':_0x8f24('0x42'),'value':_0x5ad65b[_0x8f24('0x42')]||(_0x5ad65b['attrs']&&_0x5ad65b[_0x8f24('0x43')][0x0]?_0x5ad65b['attrs'][0x0][_0x8f24('0x44')]:undefined)||_0x8f24('0x45')}];case'custom':return[{'name':'attrPath','value':_0x5ad65b[_0x8f24('0x46')]||(_0x5ad65b[_0x8f24('0x43')]&&_0x5ad65b[_0x8f24('0x43')][0x0]?_0x5ad65b[_0x8f24('0x43')][0x0][_0x8f24('0x44')]:undefined)||''}];case _0x8f24('0x47'):return[{'name':_0x8f24('0x48'),'value':_0x5ad65b[_0x8f24('0x48')]||(_0x5ad65b[_0x8f24('0x43')]&&_0x5ad65b[_0x8f24('0x43')][0x0]?_0x5ad65b[_0x8f24('0x43')][0x0][_0x8f24('0x44')]:undefined)||_0x8f24('0x49')},{'name':_0x8f24('0x4a'),'value':_0x5ad65b[_0x8f24('0x4a')]||(_0x5ad65b[_0x8f24('0x43')]&&_0x5ad65b[_0x8f24('0x43')][0x1]?_0x5ad65b[_0x8f24('0x43')][0x1]['value']:undefined)||_0x8f24('0x4b')},{'name':'attrFontSize','value':_0x5ad65b['attrFontSize']||(_0x5ad65b['attrs']&&_0x5ad65b[_0x8f24('0x43')][0x2]?_0x5ad65b[_0x8f24('0x43')][0x2][_0x8f24('0x44')]:undefined)||0xc}];case _0x8f24('0x4c'):return[{'name':'attrMetric','value':_0x5ad65b['attrMetric']||(_0x5ad65b[_0x8f24('0x43')]&&_0x5ad65b['attrs'][0x0]?_0x5ad65b[_0x8f24('0x43')][0x0]['value']:undefined)||_0x8f24('0x4d')},{'name':_0x8f24('0x4e'),'value':_0x5ad65b[_0x8f24('0x4e')]||(_0x5ad65b[_0x8f24('0x43')]&&_0x5ad65b[_0x8f24('0x43')][0x1]?_0x5ad65b['attrs'][0x1][_0x8f24('0x44')]:undefined)||[]},{'name':'attrFontSize','value':_0x5ad65b['attrFontSize']||(_0x5ad65b[_0x8f24('0x43')]&&_0x5ad65b[_0x8f24('0x43')][0x2]?_0x5ad65b[_0x8f24('0x43')][0x2][_0x8f24('0x44')]:undefined)||0x14}];case _0x8f24('0x4f'):case _0x8f24('0x50'):return[{'name':_0x8f24('0x51'),'value':_0x5ad65b[_0x8f24('0x51')]||(_0x5ad65b[_0x8f24('0x43')]&&_0x5ad65b[_0x8f24('0x43')][0x0]?_0x5ad65b[_0x8f24('0x43')][0x0][_0x8f24('0x44')]:undefined)||_0x8f24('0x4d')},{'name':_0x8f24('0x52'),'value':_0x5ad65b['attrSerie2']||(_0x5ad65b['attrs']&&_0x5ad65b['attrs'][0x1]?_0x5ad65b[_0x8f24('0x43')][0x1][_0x8f24('0x44')]:undefined)||null},{'name':_0x8f24('0x53'),'value':_0x5ad65b[_0x8f24('0x53')]||(_0x5ad65b[_0x8f24('0x43')]&&_0x5ad65b[_0x8f24('0x43')][0x2]?_0x5ad65b[_0x8f24('0x43')][0x2]['value']:undefined)||null},{'name':_0x8f24('0x4e'),'value':_0x5ad65b[_0x8f24('0x4e')]||(_0x5ad65b['attrs']&&_0x5ad65b[_0x8f24('0x43')][0x3]?_0x5ad65b[_0x8f24('0x43')][0x3]['value']:undefined)||[]}];case _0x8f24('0x54'):return[{'name':_0x8f24('0x55'),'type':_0x5ad65b[_0x8f24('0x56')]||(_0x5ad65b['attrs']&&_0x5ad65b[_0x8f24('0x43')][0x0]?_0x5ad65b[_0x8f24('0x43')][0x0][_0x8f24('0x40')]:undefined)||null,'value':_0x5ad65b[_0x8f24('0x55')]||(_0x5ad65b[_0x8f24('0x43')]&&_0x5ad65b['attrs'][0x0]?_0x5ad65b[_0x8f24('0x43')][0x0][_0x8f24('0x44')]:undefined)||null},{'name':_0x8f24('0x57'),'value':_0x5ad65b['attrRefresh']||(_0x5ad65b['attrs']&&_0x5ad65b['attrs'][0x1]?_0x5ad65b[_0x8f24('0x43')][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x4d29b7){logger[_0x8f24('0x2b')]('widgetAttributes:\x20%s',JSON[_0x8f24('0x58')](_0x4d29b7));return[];}}exports[_0x8f24('0x59')]=function(_0x49f6b0,_0xa66f7d){if(_0x49f6b0[_0x8f24('0x5a')]){_0x49f6b0['body']['attrs']=widgetAttributes(_0x49f6b0[_0x8f24('0x5a')]);}return db[_0x8f24('0x3c')][_0x8f24('0x59')](_0x49f6b0[_0x8f24('0x5a')],{})[_0x8f24('0x2a')](respondWithResult(_0xa66f7d,0xc9))[_0x8f24('0x3e')](handleError(_0xa66f7d,null));};exports['update']=function(_0x304923,_0x4c4433){if(_0x304923['body']['id']){delete _0x304923[_0x8f24('0x5a')]['id'];}_0x304923[_0x8f24('0x5a')][_0x8f24('0x43')]=widgetAttributes(_0x304923['body']);return db[_0x8f24('0x3c')][_0x8f24('0x3d')]({'where':{'id':_0x304923[_0x8f24('0x30')]['id']}})[_0x8f24('0x2a')](handleEntityNotFound(_0x4c4433,null))[_0x8f24('0x2a')](saveUpdates(_0x304923[_0x8f24('0x5a')],null))[_0x8f24('0x2a')](respondWithResult(_0x4c4433,null))[_0x8f24('0x3e')](handleError(_0x4c4433,null));};