Built motion from commit 14588770.|2.5.38
[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 _0xbc0f=['stack','name','model','rawAttributes','query','intersection','fields','attributes','length','includeAll','merge','DashboardItem','catch','find','params','type','iframe','attrUrl','attrs','https://','custom','attrPath','value','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrMetric','attrVoiceQueues','attrFontSize','pie-chart','attrSerie1','attrSerie2','attrSerie3','attrReport','reportType','attrRefresh','stringify','body','create','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./dashboardItem.socket','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','destroy','then','error'];(function(_0x4a5494,_0x3ad336){var _0x57cbb5=function(_0xa5a1ac){while(--_0xa5a1ac){_0x4a5494['push'](_0x4a5494['shift']());}};_0x57cbb5(++_0x3ad336);}(_0xbc0f,0x175));var _0xfbc0=function(_0x1762b4,_0x33d836){_0x1762b4=_0x1762b4-0x0;var _0x29beda=_0xbc0f[_0x1762b4];return _0x29beda;};'use strict';var emlformat=require(_0xfbc0('0x0'));var rimraf=require(_0xfbc0('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xfbc0('0x2'));var rp=require(_0xfbc0('0x3'));var moment=require(_0xfbc0('0x4'));var BPromise=require(_0xfbc0('0x5'));var Mustache=require(_0xfbc0('0x6'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xfbc0('0x7'));var ejs=require(_0xfbc0('0x8'));var fs=require('fs');var fs_extra=require(_0xfbc0('0x9'));var _=require(_0xfbc0('0xa'));var squel=require('squel');var crypto=require(_0xfbc0('0xb'));var jsforce=require(_0xfbc0('0xc'));var deskjs=require(_0xfbc0('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xfbc0('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xfbc0('0xf'));var as=require(_0xfbc0('0x10'));var hardwareService=require(_0xfbc0('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0xfbc0('0x12'));var config=require(_0xfbc0('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0xfbc0('0x14'))['db'];config['redis']=_[_0xfbc0('0x15')](config[_0xfbc0('0x16')],{'host':_0xfbc0('0x17'),'port':0x18eb});var socket=require(_0xfbc0('0x18'))(new Redis(config[_0xfbc0('0x16')]));require(_0xfbc0('0x19'))['register'](socket);function respondWithStatusCode(_0x4fe7a9,_0x4edefe){_0x4edefe=_0x4edefe||0xcc;return function(_0x4a44c0){if(_0x4a44c0){return _0x4fe7a9[_0xfbc0('0x1a')](_0x4edefe);}return _0x4fe7a9[_0xfbc0('0x1b')](_0x4edefe)[_0xfbc0('0x1c')]();};}function respondWithResult(_0x523ba2,_0x566d58){_0x566d58=_0x566d58||0xc8;return function(_0x1586c2){if(_0x1586c2){return _0x523ba2[_0xfbc0('0x1b')](_0x566d58)[_0xfbc0('0x1d')](_0x1586c2);}};}function respondWithFilteredResult(_0x267d37,_0x31b33c){return function(_0x22fb2d){if(_0x22fb2d){var _0x2546d7=typeof _0x31b33c[_0xfbc0('0x1e')]===_0xfbc0('0x1f')&&typeof _0x31b33c[_0xfbc0('0x20')]===_0xfbc0('0x1f');var _0x5b2920=_0x22fb2d[_0xfbc0('0x21')];var _0x214795=_0x2546d7?0x0:_0x31b33c[_0xfbc0('0x1e')];var _0x23ae11=_0x2546d7?_0x22fb2d['count']:_0x31b33c[_0xfbc0('0x1e')]+_0x31b33c[_0xfbc0('0x20')];var _0xf56d67;if(_0x23ae11>=_0x5b2920){_0x23ae11=_0x5b2920;_0xf56d67=0xc8;}else{_0xf56d67=0xce;}_0x267d37[_0xfbc0('0x1b')](_0xf56d67);return _0x267d37[_0xfbc0('0x22')](_0xfbc0('0x23'),_0x214795+'-'+_0x23ae11+'/'+_0x5b2920)[_0xfbc0('0x1d')](_0x22fb2d);}return null;};}function patchUpdates(_0x2d4f29){return function(_0x2db638){try{jsonpatch['apply'](_0x2db638,_0x2d4f29,!![]);}catch(_0x3d6b39){return BPromise[_0xfbc0('0x24')](_0x3d6b39);}return _0x2db638[_0xfbc0('0x25')]();};}function saveUpdates(_0x14cdad,_0x167803){return function(_0x35d251){if(_0x35d251){return _0x35d251[_0xfbc0('0x26')](_0x14cdad)['then'](function(_0x2c5843){return _0x2c5843;});}return null;};}function removeEntity(_0x29bbca,_0x2e9f0a){return function(_0x5b4588){if(_0x5b4588){return _0x5b4588[_0xfbc0('0x27')]()[_0xfbc0('0x28')](function(){_0x29bbca[_0xfbc0('0x1b')](0xcc)[_0xfbc0('0x1c')]();});}};}function handleEntityNotFound(_0x49e00f,_0x265321){return function(_0x348c1d){if(!_0x348c1d){_0x49e00f['sendStatus'](0x194);}return _0x348c1d;};}function handleError(_0x98fc66,_0x5c3824){_0x5c3824=_0x5c3824||0x1f4;return function(_0x2f8446){logger[_0xfbc0('0x29')](_0x2f8446[_0xfbc0('0x2a')]);if(_0x2f8446[_0xfbc0('0x2b')]){delete _0x2f8446[_0xfbc0('0x2b')];}_0x98fc66[_0xfbc0('0x1b')](_0x5c3824)['send'](_0x2f8446);};}exports['show']=function(_0x3602c6,_0x140d4a){var _0x311932={'raw':![],'where':{'id':_0x3602c6['params']['id']}},_0x3f6ada={};_0x3f6ada[_0xfbc0('0x2c')]=_['keys'](db['DashboardItem'][_0xfbc0('0x2d')]);_0x3f6ada[_0xfbc0('0x2e')]=_['keys'](_0x3602c6[_0xfbc0('0x2e')]);_0x3f6ada['filters']=_[_0xfbc0('0x2f')](_0x3f6ada[_0xfbc0('0x2c')],_0x3f6ada[_0xfbc0('0x2e')]);_0x311932['attributes']=_['intersection'](_0x3f6ada[_0xfbc0('0x2c')],qs[_0xfbc0('0x30')](_0x3602c6[_0xfbc0('0x2e')][_0xfbc0('0x30')]));_0x311932[_0xfbc0('0x31')]=_0x311932['attributes'][_0xfbc0('0x32')]?_0x311932[_0xfbc0('0x31')]:_0x3f6ada['model'];if(_0x3602c6[_0xfbc0('0x2e')][_0xfbc0('0x33')]){_0x311932['include']=[{'all':!![]}];}_0x311932=_[_0xfbc0('0x34')]({},_0x311932,_0x3602c6['options']);return db[_0xfbc0('0x35')]['find'](_0x311932)[_0xfbc0('0x28')](handleEntityNotFound(_0x140d4a,null))[_0xfbc0('0x28')](respondWithResult(_0x140d4a,null))[_0xfbc0('0x36')](handleError(_0x140d4a,null));};exports[_0xfbc0('0x27')]=function(_0x2380af,_0x8a1d94){return db[_0xfbc0('0x35')][_0xfbc0('0x37')]({'where':{'id':_0x2380af[_0xfbc0('0x38')]['id']}})[_0xfbc0('0x28')](handleEntityNotFound(_0x8a1d94,null))[_0xfbc0('0x28')](removeEntity(_0x8a1d94,null))[_0xfbc0('0x36')](handleError(_0x8a1d94,null));};function widgetAttributes(_0x879a67){try{switch(_0x879a67[_0xfbc0('0x39')]){case _0xfbc0('0x3a'):return[{'name':_0xfbc0('0x3b'),'value':_0x879a67[_0xfbc0('0x3b')]||(_0x879a67[_0xfbc0('0x3c')]&&_0x879a67[_0xfbc0('0x3c')][0x0]?_0x879a67['attrs'][0x0]['value']:undefined)||_0xfbc0('0x3d')}];case _0xfbc0('0x3e'):return[{'name':_0xfbc0('0x3f'),'value':_0x879a67['attrPath']||(_0x879a67[_0xfbc0('0x3c')]&&_0x879a67[_0xfbc0('0x3c')][0x0]?_0x879a67[_0xfbc0('0x3c')][0x0][_0xfbc0('0x40')]:undefined)||''}];case _0xfbc0('0x41'):return[{'name':_0xfbc0('0x42'),'value':_0x879a67[_0xfbc0('0x42')]||(_0x879a67[_0xfbc0('0x3c')]&&_0x879a67[_0xfbc0('0x3c')][0x0]?_0x879a67[_0xfbc0('0x3c')][0x0][_0xfbc0('0x40')]:undefined)||_0xfbc0('0x43')},{'name':_0xfbc0('0x44'),'value':_0x879a67[_0xfbc0('0x44')]||(_0x879a67[_0xfbc0('0x3c')]&&_0x879a67[_0xfbc0('0x3c')][0x1]?_0x879a67[_0xfbc0('0x3c')][0x1][_0xfbc0('0x40')]:undefined)||_0xfbc0('0x45')},{'name':'attrFontSize','value':_0x879a67['attrFontSize']||(_0x879a67[_0xfbc0('0x3c')]&&_0x879a67[_0xfbc0('0x3c')][0x2]?_0x879a67[_0xfbc0('0x3c')][0x2]['value']:undefined)||0xc}];case'counter':return[{'name':_0xfbc0('0x46'),'value':_0x879a67[_0xfbc0('0x46')]||(_0x879a67[_0xfbc0('0x3c')]&&_0x879a67[_0xfbc0('0x3c')][0x0]?_0x879a67[_0xfbc0('0x3c')][0x0]['value']:undefined)||'total'},{'name':_0xfbc0('0x47'),'value':_0x879a67[_0xfbc0('0x47')]||(_0x879a67[_0xfbc0('0x3c')]&&_0x879a67[_0xfbc0('0x3c')][0x1]?_0x879a67[_0xfbc0('0x3c')][0x1]['value']:undefined)||[]},{'name':_0xfbc0('0x48'),'value':_0x879a67[_0xfbc0('0x48')]||(_0x879a67[_0xfbc0('0x3c')]&&_0x879a67['attrs'][0x2]?_0x879a67[_0xfbc0('0x3c')][0x2][_0xfbc0('0x40')]:undefined)||0x14}];case'multibar-chart':case _0xfbc0('0x49'):return[{'name':_0xfbc0('0x4a'),'value':_0x879a67['attrSerie1']||(_0x879a67['attrs']&&_0x879a67[_0xfbc0('0x3c')][0x0]?_0x879a67[_0xfbc0('0x3c')][0x0][_0xfbc0('0x40')]:undefined)||'total'},{'name':'attrSerie2','value':_0x879a67[_0xfbc0('0x4b')]||(_0x879a67[_0xfbc0('0x3c')]&&_0x879a67['attrs'][0x1]?_0x879a67['attrs'][0x1]['value']:undefined)||null},{'name':_0xfbc0('0x4c'),'value':_0x879a67[_0xfbc0('0x4c')]||(_0x879a67[_0xfbc0('0x3c')]&&_0x879a67[_0xfbc0('0x3c')][0x2]?_0x879a67[_0xfbc0('0x3c')][0x2][_0xfbc0('0x40')]:undefined)||null},{'name':'attrVoiceQueues','value':_0x879a67['attrVoiceQueues']||(_0x879a67[_0xfbc0('0x3c')]&&_0x879a67[_0xfbc0('0x3c')][0x3]?_0x879a67['attrs'][0x3]['value']:undefined)||[]}];case'web-report':return[{'name':_0xfbc0('0x4d'),'type':_0x879a67[_0xfbc0('0x4e')]||(_0x879a67[_0xfbc0('0x3c')]&&_0x879a67[_0xfbc0('0x3c')][0x0]?_0x879a67[_0xfbc0('0x3c')][0x0]['type']:undefined)||null,'value':_0x879a67['attrReport']||(_0x879a67[_0xfbc0('0x3c')]&&_0x879a67[_0xfbc0('0x3c')][0x0]?_0x879a67[_0xfbc0('0x3c')][0x0][_0xfbc0('0x40')]:undefined)||null},{'name':_0xfbc0('0x4f'),'value':_0x879a67[_0xfbc0('0x4f')]||(_0x879a67[_0xfbc0('0x3c')]&&_0x879a67[_0xfbc0('0x3c')][0x1]?_0x879a67[_0xfbc0('0x3c')][0x1][_0xfbc0('0x40')]:undefined)||0x0}];default:return[];}}catch(_0x1c1e25){logger[_0xfbc0('0x29')]('widgetAttributes:\x20%s',JSON[_0xfbc0('0x50')](_0x1c1e25));return[];}}exports['create']=function(_0x34c7db,_0x513fb1){if(_0x34c7db['body']){_0x34c7db[_0xfbc0('0x51')][_0xfbc0('0x3c')]=widgetAttributes(_0x34c7db[_0xfbc0('0x51')]);}return db['DashboardItem'][_0xfbc0('0x52')](_0x34c7db[_0xfbc0('0x51')],{})[_0xfbc0('0x28')](respondWithResult(_0x513fb1,0xc9))[_0xfbc0('0x36')](handleError(_0x513fb1,null));};exports[_0xfbc0('0x26')]=function(_0x2b2dcd,_0x10cd10){if(_0x2b2dcd['body']['id']){delete _0x2b2dcd[_0xfbc0('0x51')]['id'];}_0x2b2dcd[_0xfbc0('0x51')][_0xfbc0('0x3c')]=widgetAttributes(_0x2b2dcd['body']);return db[_0xfbc0('0x35')][_0xfbc0('0x37')]({'where':{'id':_0x2b2dcd[_0xfbc0('0x38')]['id']}})['then'](handleEntityNotFound(_0x10cd10,null))['then'](saveUpdates(_0x2b2dcd[_0xfbc0('0x51')],null))[_0xfbc0('0x28')](respondWithResult(_0x10cd10,null))[_0xfbc0('0x36')](handleError(_0x10cd10,null));};