8fecd40538a6b38e265a8706957bb7e557f02f4e
[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 _0x765e=['stringify','create','body','html-pdf','eml-format','fast-json-patch','request-promise','moment','bluebird','util','to-csv','lodash','squel','crypto','jsforce','querystring','../../components/auth/service','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','end','json','count','offset','limit','apply','reject','save','update','then','destroy','stack','name','send','params','model','keys','DashboardItem','rawAttributes','query','filters','intersection','attributes','fields','length','includeAll','include','find','catch','type','attrUrl','attrs','value','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','attrFontSize','counter','attrMetric','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','total','attrSerie2','web-report','reportType','attrReport','attrRefresh','error','widgetAttributes:\x20%s'];(function(_0x1fc122,_0x5e2c17){var _0xa2cb13=function(_0x263b13){while(--_0x263b13){_0x1fc122['push'](_0x1fc122['shift']());}};_0xa2cb13(++_0x5e2c17);}(_0x765e,0xa9));var _0xe765=function(_0x53b8c2,_0x26bade){_0x53b8c2=_0x53b8c2-0x0;var _0x21113c=_0x765e[_0x53b8c2];return _0x21113c;};'use strict';var pdf=require(_0xe765('0x0'));var emlformat=require(_0xe765('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xe765('0x2'));var rp=require(_0xe765('0x3'));var moment=require(_0xe765('0x4'));var BPromise=require(_0xe765('0x5'));var Mustache=require('mustache');var util=require(_0xe765('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xe765('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xe765('0x8'));var squel=require(_0xe765('0x9'));var crypto=require(_0xe765('0xa'));var jsforce=require(_0xe765('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xe765('0x7'));var querystring=require(_0xe765('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xe765('0xd'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe765('0xe'));var logger=require('../../config/logger')('api');var utils=require(_0xe765('0xf'));var config=require(_0xe765('0x10'));var licenseUtil=require(_0xe765('0x11'));var db=require(_0xe765('0x12'))['db'];config[_0xe765('0x13')]=_[_0xe765('0x14')](config[_0xe765('0x13')],{'host':'localhost','port':0x18eb});var socket=require(_0xe765('0x15'))(new Redis(config[_0xe765('0x13')]));require(_0xe765('0x16'))[_0xe765('0x17')](socket);function respondWithStatusCode(_0x293640,_0x3c4d25){_0x3c4d25=_0x3c4d25||0xcc;return function(_0x4a0ad4){if(_0x4a0ad4){return _0x293640[_0xe765('0x18')](_0x3c4d25);}return _0x293640[_0xe765('0x19')](_0x3c4d25)[_0xe765('0x1a')]();};}function respondWithResult(_0x9f7ee7,_0xbe650c){_0xbe650c=_0xbe650c||0xc8;return function(_0x38e68f){if(_0x38e68f){return _0x9f7ee7['status'](_0xbe650c)[_0xe765('0x1b')](_0x38e68f);}};}function respondWithFilteredResult(_0x10b319,_0x5f593c){return function(_0x1223e3){if(_0x1223e3){var _0x34a67c=_0x1223e3[_0xe765('0x1c')],_0x5107f8=_0x5f593c[_0xe765('0x1d')],_0x4dde97=_0x5f593c[_0xe765('0x1d')]+_0x5f593c[_0xe765('0x1e')],_0x3d75b5;if(_0x4dde97>=_0x34a67c){_0x4dde97=_0x34a67c;_0x3d75b5=0xc8;}else{_0x3d75b5=0xce;}_0x10b319[_0xe765('0x19')](_0x3d75b5);return _0x10b319['set']('Content-Range',_0x5107f8+'-'+_0x4dde97+'/'+_0x34a67c)[_0xe765('0x1b')](_0x1223e3);}return null;};}function patchUpdates(_0x50c0a6){return function(_0x507dec){try{jsonpatch[_0xe765('0x1f')](_0x507dec,_0x50c0a6,!![]);}catch(_0x114bcb){return BPromise[_0xe765('0x20')](_0x114bcb);}return _0x507dec[_0xe765('0x21')]();};}function saveUpdates(_0xb0157,_0x407fa9){return function(_0x5cc7af){if(_0x5cc7af){return _0x5cc7af[_0xe765('0x22')](_0xb0157)[_0xe765('0x23')](function(_0x586a76){return _0x586a76;});}return null;};}function removeEntity(_0x4657ef,_0x39efe5){return function(_0x2de826){if(_0x2de826){return _0x2de826[_0xe765('0x24')]()[_0xe765('0x23')](function(){_0x4657ef['status'](0xcc)[_0xe765('0x1a')]();});}};}function handleEntityNotFound(_0x184917,_0x1d0968){return function(_0x2c7df8){if(!_0x2c7df8){_0x184917[_0xe765('0x18')](0x194);}return _0x2c7df8;};}function handleError(_0x2e9c9d,_0x3ec9af){_0x3ec9af=_0x3ec9af||0x1f4;return function(_0x155ab8){logger['error'](_0x155ab8[_0xe765('0x25')]);if(_0x155ab8[_0xe765('0x26')]){delete _0x155ab8['name'];}_0x2e9c9d[_0xe765('0x19')](_0x3ec9af)[_0xe765('0x27')](_0x155ab8);};}exports['show']=function(_0x36fe49,_0x3a551f){var _0x55637c={'raw':![],'where':{'id':_0x36fe49[_0xe765('0x28')]['id']}},_0x19b592={};_0x19b592[_0xe765('0x29')]=_[_0xe765('0x2a')](db[_0xe765('0x2b')][_0xe765('0x2c')]);_0x19b592[_0xe765('0x2d')]=_[_0xe765('0x2a')](_0x36fe49['query']);_0x19b592[_0xe765('0x2e')]=_[_0xe765('0x2f')](_0x19b592[_0xe765('0x29')],_0x19b592[_0xe765('0x2d')]);_0x55637c[_0xe765('0x30')]=_[_0xe765('0x2f')](_0x19b592[_0xe765('0x29')],qs[_0xe765('0x31')](_0x36fe49[_0xe765('0x2d')][_0xe765('0x31')]));_0x55637c[_0xe765('0x30')]=_0x55637c[_0xe765('0x30')][_0xe765('0x32')]?_0x55637c[_0xe765('0x30')]:_0x19b592[_0xe765('0x29')];if(_0x36fe49['query'][_0xe765('0x33')]){_0x55637c[_0xe765('0x34')]=[{'all':!![]}];}_0x55637c=_['merge']({},_0x55637c,_0x36fe49['options']);return db['DashboardItem'][_0xe765('0x35')](_0x55637c)[_0xe765('0x23')](handleEntityNotFound(_0x3a551f,null))[_0xe765('0x23')](respondWithResult(_0x3a551f,null))[_0xe765('0x36')](handleError(_0x3a551f,null));};exports['destroy']=function(_0x377703,_0x4fb424){return db[_0xe765('0x2b')]['find']({'where':{'id':_0x377703['params']['id']}})[_0xe765('0x23')](handleEntityNotFound(_0x4fb424,null))['then'](removeEntity(_0x4fb424,null))[_0xe765('0x36')](handleError(_0x4fb424,null));};function widgetAttributes(_0x379f2a){try{switch(_0x379f2a[_0xe765('0x37')]){case'iframe':return[{'name':_0xe765('0x38'),'value':_0x379f2a[_0xe765('0x38')]||(_0x379f2a[_0xe765('0x39')]&&_0x379f2a['attrs'][0x0]?_0x379f2a[_0xe765('0x39')][0x0][_0xe765('0x3a')]:undefined)||'https://'}];case _0xe765('0x3b'):return[{'name':_0xe765('0x3c'),'value':_0x379f2a[_0xe765('0x3c')]||(_0x379f2a[_0xe765('0x39')]&&_0x379f2a[_0xe765('0x39')][0x0]?_0x379f2a[_0xe765('0x39')][0x0][_0xe765('0x3a')]:undefined)||''}];case _0xe765('0x3d'):return[{'name':_0xe765('0x3e'),'value':_0x379f2a[_0xe765('0x3e')]||(_0x379f2a[_0xe765('0x39')]&&_0x379f2a[_0xe765('0x39')][0x0]?_0x379f2a[_0xe765('0x39')][0x0][_0xe765('0x3a')]:undefined)||_0xe765('0x3f')},{'name':'attrTimezone','value':_0x379f2a[_0xe765('0x40')]||(_0x379f2a[_0xe765('0x39')]&&_0x379f2a[_0xe765('0x39')][0x1]?_0x379f2a['attrs'][0x1][_0xe765('0x3a')]:undefined)||'0.00'},{'name':'attrFontSize','value':_0x379f2a[_0xe765('0x41')]||(_0x379f2a[_0xe765('0x39')]&&_0x379f2a['attrs'][0x2]?_0x379f2a['attrs'][0x2][_0xe765('0x3a')]:undefined)||0xc}];case _0xe765('0x42'):return[{'name':_0xe765('0x43'),'value':_0x379f2a[_0xe765('0x43')]||(_0x379f2a['attrs']&&_0x379f2a[_0xe765('0x39')][0x0]?_0x379f2a[_0xe765('0x39')][0x0][_0xe765('0x3a')]:undefined)||'total'},{'name':_0xe765('0x44'),'value':_0x379f2a[_0xe765('0x44')]||(_0x379f2a[_0xe765('0x39')]&&_0x379f2a[_0xe765('0x39')][0x1]?_0x379f2a['attrs'][0x1][_0xe765('0x3a')]:undefined)||[]},{'name':_0xe765('0x41'),'value':_0x379f2a[_0xe765('0x41')]||(_0x379f2a[_0xe765('0x39')]&&_0x379f2a[_0xe765('0x39')][0x2]?_0x379f2a[_0xe765('0x39')][0x2][_0xe765('0x3a')]:undefined)||0x14}];case _0xe765('0x45'):case _0xe765('0x46'):return[{'name':_0xe765('0x47'),'value':_0x379f2a[_0xe765('0x47')]||(_0x379f2a[_0xe765('0x39')]&&_0x379f2a['attrs'][0x0]?_0x379f2a[_0xe765('0x39')][0x0][_0xe765('0x3a')]:undefined)||_0xe765('0x48')},{'name':_0xe765('0x49'),'value':_0x379f2a[_0xe765('0x49')]||(_0x379f2a[_0xe765('0x39')]&&_0x379f2a[_0xe765('0x39')][0x1]?_0x379f2a[_0xe765('0x39')][0x1][_0xe765('0x3a')]:undefined)||null},{'name':'attrSerie3','value':_0x379f2a['attrSerie3']||(_0x379f2a['attrs']&&_0x379f2a[_0xe765('0x39')][0x2]?_0x379f2a[_0xe765('0x39')][0x2][_0xe765('0x3a')]:undefined)||null},{'name':_0xe765('0x44'),'value':_0x379f2a[_0xe765('0x44')]||(_0x379f2a[_0xe765('0x39')]&&_0x379f2a[_0xe765('0x39')][0x3]?_0x379f2a['attrs'][0x3][_0xe765('0x3a')]:undefined)||[]}];case _0xe765('0x4a'):return[{'name':'attrReport','type':_0x379f2a[_0xe765('0x4b')]||(_0x379f2a[_0xe765('0x39')]&&_0x379f2a[_0xe765('0x39')][0x0]?_0x379f2a['attrs'][0x0]['type']:undefined)||null,'value':_0x379f2a[_0xe765('0x4c')]||(_0x379f2a['attrs']&&_0x379f2a['attrs'][0x0]?_0x379f2a[_0xe765('0x39')][0x0][_0xe765('0x3a')]:undefined)||null},{'name':_0xe765('0x4d'),'value':_0x379f2a['attrRefresh']||(_0x379f2a['attrs']&&_0x379f2a[_0xe765('0x39')][0x1]?_0x379f2a['attrs'][0x1][_0xe765('0x3a')]:undefined)||0x0}];default:return[];}}catch(_0x4ceb1e){logger[_0xe765('0x4e')](_0xe765('0x4f'),JSON[_0xe765('0x50')](_0x4ceb1e));return[];}}exports[_0xe765('0x51')]=function(_0x25c024,_0x56304c){if(_0x25c024[_0xe765('0x52')]){_0x25c024['body'][_0xe765('0x39')]=widgetAttributes(_0x25c024[_0xe765('0x52')]);}return db[_0xe765('0x2b')][_0xe765('0x51')](_0x25c024[_0xe765('0x52')],{})['then'](respondWithResult(_0x56304c,0xc9))[_0xe765('0x36')](handleError(_0x56304c,null));};exports[_0xe765('0x22')]=function(_0x3ad177,_0x3764ea){if(_0x3ad177[_0xe765('0x52')]['id']){delete _0x3ad177[_0xe765('0x52')]['id'];}_0x3ad177['body'][_0xe765('0x39')]=widgetAttributes(_0x3ad177[_0xe765('0x52')]);return db[_0xe765('0x2b')][_0xe765('0x35')]({'where':{'id':_0x3ad177[_0xe765('0x28')]['id']}})[_0xe765('0x23')](handleEntityNotFound(_0x3764ea,null))[_0xe765('0x23')](saveUpdates(_0x3ad177[_0xe765('0x52')],null))[_0xe765('0x23')](respondWithResult(_0x3764ea,null))[_0xe765('0x36')](handleError(_0x3764ea,null));};