Built motion from commit (unavailable).|2.5.31
[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 _0x22b9=['show','params','DashboardItem','query','keys','filters','model','fields','length','attributes','includeAll','include','merge','options','find','catch','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','attrTimezone','0.00','attrFontSize','counter','attrMetric','attrVoiceQueues','pie-chart','attrSerie1','total','attrSerie2','attrSerie3','web-report','attrReport','reportType','type','attrRefresh','create','body','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','redis','localhost','socket.io-emitter','register','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','sendStatus','error','stack','name'];(function(_0x2998db,_0x3424f1){var _0x115fea=function(_0x3b493c){while(--_0x3b493c){_0x2998db['push'](_0x2998db['shift']());}};_0x115fea(++_0x3424f1);}(_0x22b9,0x87));var _0x922b=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x22b9[_0x2f5ac5];return _0x37c9a8;};'use strict';var emlformat=require(_0x922b('0x0'));var rimraf=require(_0x922b('0x1'));var zipdir=require(_0x922b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x922b('0x3'));var moment=require(_0x922b('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x922b('0x5'));var util=require(_0x922b('0x6'));var path=require(_0x922b('0x7'));var sox=require(_0x922b('0x8'));var csv=require(_0x922b('0x9'));var ejs=require(_0x922b('0xa'));var fs=require('fs');var fs_extra=require(_0x922b('0xb'));var _=require('lodash');var squel=require(_0x922b('0xc'));var crypto=require(_0x922b('0xd'));var jsforce=require(_0x922b('0xe'));var deskjs=require(_0x922b('0xf'));var toCsv=require(_0x922b('0x9'));var querystring=require(_0x922b('0x10'));var Papa=require(_0x922b('0x11'));var Redis=require(_0x922b('0x12'));var authService=require(_0x922b('0x13'));var qs=require(_0x922b('0x14'));var as=require(_0x922b('0x15'));var hardwareService=require(_0x922b('0x16'));var logger=require('../../config/logger')(_0x922b('0x17'));var utils=require(_0x922b('0x18'));var config=require(_0x922b('0x19'));var licenseUtil=require(_0x922b('0x1a'));var db=require('../../mysqldb')['db'];config[_0x922b('0x1b')]=_['defaults'](config['redis'],{'host':_0x922b('0x1c'),'port':0x18eb});var socket=require(_0x922b('0x1d'))(new Redis(config['redis']));require('./dashboardItem.socket')[_0x922b('0x1e')](socket);function respondWithStatusCode(_0x25a471,_0x4f5035){_0x4f5035=_0x4f5035||0xcc;return function(_0x55e8d6){if(_0x55e8d6){return _0x25a471['sendStatus'](_0x4f5035);}return _0x25a471[_0x922b('0x1f')](_0x4f5035)[_0x922b('0x20')]();};}function respondWithResult(_0x1c12e0,_0x4577e2){_0x4577e2=_0x4577e2||0xc8;return function(_0x4df421){if(_0x4df421){return _0x1c12e0[_0x922b('0x1f')](_0x4577e2)[_0x922b('0x21')](_0x4df421);}};}function respondWithFilteredResult(_0x501465,_0x4234ee){return function(_0x273338){if(_0x273338){var _0x565311=typeof _0x4234ee[_0x922b('0x22')]===_0x922b('0x23')&&typeof _0x4234ee[_0x922b('0x24')]===_0x922b('0x23');var _0x8e541a=_0x273338[_0x922b('0x25')];var _0x244440=_0x565311?0x0:_0x4234ee['offset'];var _0x325f5e=_0x565311?_0x273338[_0x922b('0x25')]:_0x4234ee['offset']+_0x4234ee[_0x922b('0x24')];var _0x56e712;if(_0x325f5e>=_0x8e541a){_0x325f5e=_0x8e541a;_0x56e712=0xc8;}else{_0x56e712=0xce;}_0x501465[_0x922b('0x1f')](_0x56e712);return _0x501465[_0x922b('0x26')](_0x922b('0x27'),_0x244440+'-'+_0x325f5e+'/'+_0x8e541a)[_0x922b('0x21')](_0x273338);}return null;};}function patchUpdates(_0x54e811){return function(_0x19e631){try{jsonpatch[_0x922b('0x28')](_0x19e631,_0x54e811,!![]);}catch(_0x369252){return BPromise['reject'](_0x369252);}return _0x19e631[_0x922b('0x29')]();};}function saveUpdates(_0x4b4c3e,_0x401ab8){return function(_0x464dbf){if(_0x464dbf){return _0x464dbf[_0x922b('0x2a')](_0x4b4c3e)[_0x922b('0x2b')](function(_0x24c62e){return _0x24c62e;});}return null;};}function removeEntity(_0x1c0e89,_0x3eca33){return function(_0x28b0e8){if(_0x28b0e8){return _0x28b0e8[_0x922b('0x2c')]()[_0x922b('0x2b')](function(){_0x1c0e89[_0x922b('0x1f')](0xcc)[_0x922b('0x20')]();});}};}function handleEntityNotFound(_0x298808,_0x576195){return function(_0x212fb5){if(!_0x212fb5){_0x298808[_0x922b('0x2d')](0x194);}return _0x212fb5;};}function handleError(_0x3d804e,_0x2f864f){_0x2f864f=_0x2f864f||0x1f4;return function(_0x4d9ab9){logger[_0x922b('0x2e')](_0x4d9ab9[_0x922b('0x2f')]);if(_0x4d9ab9[_0x922b('0x30')]){delete _0x4d9ab9['name'];}_0x3d804e['status'](_0x2f864f)['send'](_0x4d9ab9);};}exports[_0x922b('0x31')]=function(_0x4dc08c,_0x327333){var _0x1d4208={'raw':![],'where':{'id':_0x4dc08c[_0x922b('0x32')]['id']}},_0x812a41={};_0x812a41['model']=_['keys'](db[_0x922b('0x33')]['rawAttributes']);_0x812a41[_0x922b('0x34')]=_[_0x922b('0x35')](_0x4dc08c[_0x922b('0x34')]);_0x812a41[_0x922b('0x36')]=_['intersection'](_0x812a41[_0x922b('0x37')],_0x812a41[_0x922b('0x34')]);_0x1d4208['attributes']=_['intersection'](_0x812a41[_0x922b('0x37')],qs[_0x922b('0x38')](_0x4dc08c[_0x922b('0x34')]['fields']));_0x1d4208['attributes']=_0x1d4208['attributes'][_0x922b('0x39')]?_0x1d4208[_0x922b('0x3a')]:_0x812a41[_0x922b('0x37')];if(_0x4dc08c[_0x922b('0x34')][_0x922b('0x3b')]){_0x1d4208[_0x922b('0x3c')]=[{'all':!![]}];}_0x1d4208=_[_0x922b('0x3d')]({},_0x1d4208,_0x4dc08c[_0x922b('0x3e')]);return db[_0x922b('0x33')][_0x922b('0x3f')](_0x1d4208)[_0x922b('0x2b')](handleEntityNotFound(_0x327333,null))[_0x922b('0x2b')](respondWithResult(_0x327333,null))[_0x922b('0x40')](handleError(_0x327333,null));};exports[_0x922b('0x2c')]=function(_0x45a4b3,_0x58d23e){return db['DashboardItem'][_0x922b('0x3f')]({'where':{'id':_0x45a4b3[_0x922b('0x32')]['id']}})[_0x922b('0x2b')](handleEntityNotFound(_0x58d23e,null))[_0x922b('0x2b')](removeEntity(_0x58d23e,null))['catch'](handleError(_0x58d23e,null));};function widgetAttributes(_0x4ee925){try{switch(_0x4ee925['type']){case _0x922b('0x41'):return[{'name':'attrUrl','value':_0x4ee925[_0x922b('0x42')]||(_0x4ee925[_0x922b('0x43')]&&_0x4ee925[_0x922b('0x43')][0x0]?_0x4ee925[_0x922b('0x43')][0x0][_0x922b('0x44')]:undefined)||_0x922b('0x45')}];case _0x922b('0x46'):return[{'name':_0x922b('0x47'),'value':_0x4ee925['attrPath']||(_0x4ee925[_0x922b('0x43')]&&_0x4ee925[_0x922b('0x43')][0x0]?_0x4ee925[_0x922b('0x43')][0x0][_0x922b('0x44')]:undefined)||''}];case _0x922b('0x48'):return[{'name':_0x922b('0x49'),'value':_0x4ee925[_0x922b('0x49')]||(_0x4ee925[_0x922b('0x43')]&&_0x4ee925[_0x922b('0x43')][0x0]?_0x4ee925[_0x922b('0x43')][0x0][_0x922b('0x44')]:undefined)||'HH:mm:ss'},{'name':'attrTimezone','value':_0x4ee925[_0x922b('0x4a')]||(_0x4ee925[_0x922b('0x43')]&&_0x4ee925[_0x922b('0x43')][0x1]?_0x4ee925[_0x922b('0x43')][0x1][_0x922b('0x44')]:undefined)||_0x922b('0x4b')},{'name':_0x922b('0x4c'),'value':_0x4ee925[_0x922b('0x4c')]||(_0x4ee925['attrs']&&_0x4ee925[_0x922b('0x43')][0x2]?_0x4ee925['attrs'][0x2][_0x922b('0x44')]:undefined)||0xc}];case _0x922b('0x4d'):return[{'name':_0x922b('0x4e'),'value':_0x4ee925[_0x922b('0x4e')]||(_0x4ee925[_0x922b('0x43')]&&_0x4ee925[_0x922b('0x43')][0x0]?_0x4ee925['attrs'][0x0][_0x922b('0x44')]:undefined)||'total'},{'name':_0x922b('0x4f'),'value':_0x4ee925[_0x922b('0x4f')]||(_0x4ee925[_0x922b('0x43')]&&_0x4ee925[_0x922b('0x43')][0x1]?_0x4ee925[_0x922b('0x43')][0x1][_0x922b('0x44')]:undefined)||[]},{'name':_0x922b('0x4c'),'value':_0x4ee925[_0x922b('0x4c')]||(_0x4ee925['attrs']&&_0x4ee925[_0x922b('0x43')][0x2]?_0x4ee925[_0x922b('0x43')][0x2][_0x922b('0x44')]:undefined)||0x14}];case'multibar-chart':case _0x922b('0x50'):return[{'name':_0x922b('0x51'),'value':_0x4ee925[_0x922b('0x51')]||(_0x4ee925['attrs']&&_0x4ee925['attrs'][0x0]?_0x4ee925['attrs'][0x0][_0x922b('0x44')]:undefined)||_0x922b('0x52')},{'name':_0x922b('0x53'),'value':_0x4ee925[_0x922b('0x53')]||(_0x4ee925['attrs']&&_0x4ee925[_0x922b('0x43')][0x1]?_0x4ee925[_0x922b('0x43')][0x1]['value']:undefined)||null},{'name':_0x922b('0x54'),'value':_0x4ee925[_0x922b('0x54')]||(_0x4ee925[_0x922b('0x43')]&&_0x4ee925['attrs'][0x2]?_0x4ee925[_0x922b('0x43')][0x2][_0x922b('0x44')]:undefined)||null},{'name':_0x922b('0x4f'),'value':_0x4ee925[_0x922b('0x4f')]||(_0x4ee925['attrs']&&_0x4ee925[_0x922b('0x43')][0x3]?_0x4ee925['attrs'][0x3][_0x922b('0x44')]:undefined)||[]}];case _0x922b('0x55'):return[{'name':_0x922b('0x56'),'type':_0x4ee925[_0x922b('0x57')]||(_0x4ee925[_0x922b('0x43')]&&_0x4ee925['attrs'][0x0]?_0x4ee925[_0x922b('0x43')][0x0][_0x922b('0x58')]:undefined)||null,'value':_0x4ee925['attrReport']||(_0x4ee925[_0x922b('0x43')]&&_0x4ee925[_0x922b('0x43')][0x0]?_0x4ee925[_0x922b('0x43')][0x0][_0x922b('0x44')]:undefined)||null},{'name':_0x922b('0x59'),'value':_0x4ee925['attrRefresh']||(_0x4ee925[_0x922b('0x43')]&&_0x4ee925[_0x922b('0x43')][0x1]?_0x4ee925[_0x922b('0x43')][0x1][_0x922b('0x44')]:undefined)||0x0}];default:return[];}}catch(_0x319721){logger[_0x922b('0x2e')]('widgetAttributes:\x20%s',JSON['stringify'](_0x319721));return[];}}exports[_0x922b('0x5a')]=function(_0x5aa490,_0x5a3be6){if(_0x5aa490[_0x922b('0x5b')]){_0x5aa490[_0x922b('0x5b')][_0x922b('0x43')]=widgetAttributes(_0x5aa490['body']);}return db[_0x922b('0x33')][_0x922b('0x5a')](_0x5aa490[_0x922b('0x5b')],{})[_0x922b('0x2b')](respondWithResult(_0x5a3be6,0xc9))[_0x922b('0x40')](handleError(_0x5a3be6,null));};exports[_0x922b('0x2a')]=function(_0x346094,_0x13063c){if(_0x346094[_0x922b('0x5b')]['id']){delete _0x346094[_0x922b('0x5b')]['id'];}_0x346094[_0x922b('0x5b')]['attrs']=widgetAttributes(_0x346094[_0x922b('0x5b')]);return db['DashboardItem']['find']({'where':{'id':_0x346094[_0x922b('0x32')]['id']}})[_0x922b('0x2b')](handleEntityNotFound(_0x13063c,null))[_0x922b('0x2b')](saveUpdates(_0x346094[_0x922b('0x5b')],null))[_0x922b('0x2b')](respondWithResult(_0x13063c,null))[_0x922b('0x40')](handleError(_0x13063c,null));};