Built motion from commit 936e8062.|2.5.33
[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 _0x021d=['undefined','count','set','Content-Range','reject','save','update','then','destroy','sendStatus','stack','name','send','show','params','model','keys','DashboardItem','rawAttributes','query','intersection','fields','attributes','length','merge','options','find','catch','type','iframe','attrUrl','attrs','value','https://','custom','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','reportType','attrReport','attrRefresh','error','widgetAttributes:\x20%s','stringify','body','create','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./dashboardItem.socket','register','status','end','json','offset','limit'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x021d,0xfc));var _0xd021=function(_0x27fe91,_0x105c9a){_0x27fe91=_0x27fe91-0x0;var _0x69acf2=_0x021d[_0x27fe91];return _0x69acf2;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xd021('0x0'));var zipdir=require(_0xd021('0x1'));var jsonpatch=require(_0xd021('0x2'));var rp=require(_0xd021('0x3'));var moment=require(_0xd021('0x4'));var BPromise=require(_0xd021('0x5'));var Mustache=require(_0xd021('0x6'));var util=require(_0xd021('0x7'));var path=require(_0xd021('0x8'));var sox=require(_0xd021('0x9'));var csv=require(_0xd021('0xa'));var ejs=require(_0xd021('0xb'));var fs=require('fs');var fs_extra=require(_0xd021('0xc'));var _=require('lodash');var squel=require(_0xd021('0xd'));var crypto=require(_0xd021('0xe'));var jsforce=require(_0xd021('0xf'));var deskjs=require(_0xd021('0x10'));var toCsv=require(_0xd021('0xa'));var querystring=require('querystring');var Papa=require(_0xd021('0x11'));var Redis=require(_0xd021('0x12'));var authService=require(_0xd021('0x13'));var qs=require(_0xd021('0x14'));var as=require(_0xd021('0x15'));var hardwareService=require(_0xd021('0x16'));var logger=require(_0xd021('0x17'))(_0xd021('0x18'));var utils=require('../../config/utils');var config=require(_0xd021('0x19'));var licenseUtil=require(_0xd021('0x1a'));var db=require(_0xd021('0x1b'))['db'];config[_0xd021('0x1c')]=_[_0xd021('0x1d')](config['redis'],{'host':_0xd021('0x1e'),'port':0x18eb});var socket=require(_0xd021('0x1f'))(new Redis(config[_0xd021('0x1c')]));require(_0xd021('0x20'))[_0xd021('0x21')](socket);function respondWithStatusCode(_0x34272e,_0x4c5971){_0x4c5971=_0x4c5971||0xcc;return function(_0x2c6b87){if(_0x2c6b87){return _0x34272e['sendStatus'](_0x4c5971);}return _0x34272e[_0xd021('0x22')](_0x4c5971)[_0xd021('0x23')]();};}function respondWithResult(_0x31faf8,_0x51a0c2){_0x51a0c2=_0x51a0c2||0xc8;return function(_0xa9f9cd){if(_0xa9f9cd){return _0x31faf8[_0xd021('0x22')](_0x51a0c2)[_0xd021('0x24')](_0xa9f9cd);}};}function respondWithFilteredResult(_0x3ebb5a,_0x257d5e){return function(_0x1e8691){if(_0x1e8691){var _0x30ee94=typeof _0x257d5e[_0xd021('0x25')]==='undefined'&&typeof _0x257d5e[_0xd021('0x26')]===_0xd021('0x27');var _0x1d61f8=_0x1e8691['count'];var _0xd0cfd7=_0x30ee94?0x0:_0x257d5e[_0xd021('0x25')];var _0x4ba459=_0x30ee94?_0x1e8691[_0xd021('0x28')]:_0x257d5e[_0xd021('0x25')]+_0x257d5e['limit'];var _0x9b424;if(_0x4ba459>=_0x1d61f8){_0x4ba459=_0x1d61f8;_0x9b424=0xc8;}else{_0x9b424=0xce;}_0x3ebb5a[_0xd021('0x22')](_0x9b424);return _0x3ebb5a[_0xd021('0x29')](_0xd021('0x2a'),_0xd0cfd7+'-'+_0x4ba459+'/'+_0x1d61f8)[_0xd021('0x24')](_0x1e8691);}return null;};}function patchUpdates(_0x416508){return function(_0x52d643){try{jsonpatch['apply'](_0x52d643,_0x416508,!![]);}catch(_0x382c45){return BPromise[_0xd021('0x2b')](_0x382c45);}return _0x52d643[_0xd021('0x2c')]();};}function saveUpdates(_0x43de3c,_0x2e65c2){return function(_0x375dd0){if(_0x375dd0){return _0x375dd0[_0xd021('0x2d')](_0x43de3c)[_0xd021('0x2e')](function(_0x463eab){return _0x463eab;});}return null;};}function removeEntity(_0xca9dd7,_0x4338e5){return function(_0x3dd793){if(_0x3dd793){return _0x3dd793[_0xd021('0x2f')]()[_0xd021('0x2e')](function(){_0xca9dd7[_0xd021('0x22')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1a536a,_0xd4ea6a){return function(_0x57501b){if(!_0x57501b){_0x1a536a[_0xd021('0x30')](0x194);}return _0x57501b;};}function handleError(_0x15b6ec,_0x55297b){_0x55297b=_0x55297b||0x1f4;return function(_0x5d80ca){logger['error'](_0x5d80ca[_0xd021('0x31')]);if(_0x5d80ca[_0xd021('0x32')]){delete _0x5d80ca['name'];}_0x15b6ec[_0xd021('0x22')](_0x55297b)[_0xd021('0x33')](_0x5d80ca);};}exports[_0xd021('0x34')]=function(_0x49d50c,_0x3b65e6){var _0x48ef80={'raw':![],'where':{'id':_0x49d50c[_0xd021('0x35')]['id']}},_0x48a8e4={};_0x48a8e4[_0xd021('0x36')]=_[_0xd021('0x37')](db[_0xd021('0x38')][_0xd021('0x39')]);_0x48a8e4['query']=_[_0xd021('0x37')](_0x49d50c[_0xd021('0x3a')]);_0x48a8e4['filters']=_[_0xd021('0x3b')](_0x48a8e4[_0xd021('0x36')],_0x48a8e4[_0xd021('0x3a')]);_0x48ef80['attributes']=_[_0xd021('0x3b')](_0x48a8e4['model'],qs[_0xd021('0x3c')](_0x49d50c[_0xd021('0x3a')]['fields']));_0x48ef80[_0xd021('0x3d')]=_0x48ef80[_0xd021('0x3d')][_0xd021('0x3e')]?_0x48ef80[_0xd021('0x3d')]:_0x48a8e4[_0xd021('0x36')];if(_0x49d50c[_0xd021('0x3a')]['includeAll']){_0x48ef80['include']=[{'all':!![]}];}_0x48ef80=_[_0xd021('0x3f')]({},_0x48ef80,_0x49d50c[_0xd021('0x40')]);return db[_0xd021('0x38')][_0xd021('0x41')](_0x48ef80)['then'](handleEntityNotFound(_0x3b65e6,null))['then'](respondWithResult(_0x3b65e6,null))[_0xd021('0x42')](handleError(_0x3b65e6,null));};exports[_0xd021('0x2f')]=function(_0x304890,_0x8417bd){return db[_0xd021('0x38')][_0xd021('0x41')]({'where':{'id':_0x304890[_0xd021('0x35')]['id']}})[_0xd021('0x2e')](handleEntityNotFound(_0x8417bd,null))[_0xd021('0x2e')](removeEntity(_0x8417bd,null))[_0xd021('0x42')](handleError(_0x8417bd,null));};function widgetAttributes(_0xd06dae){try{switch(_0xd06dae[_0xd021('0x43')]){case _0xd021('0x44'):return[{'name':'attrUrl','value':_0xd06dae[_0xd021('0x45')]||(_0xd06dae[_0xd021('0x46')]&&_0xd06dae[_0xd021('0x46')][0x0]?_0xd06dae[_0xd021('0x46')][0x0][_0xd021('0x47')]:undefined)||_0xd021('0x48')}];case _0xd021('0x49'):return[{'name':'attrPath','value':_0xd06dae['attrPath']||(_0xd06dae[_0xd021('0x46')]&&_0xd06dae[_0xd021('0x46')][0x0]?_0xd06dae['attrs'][0x0]['value']:undefined)||''}];case _0xd021('0x4a'):return[{'name':_0xd021('0x4b'),'value':_0xd06dae['attrHourFormat']||(_0xd06dae[_0xd021('0x46')]&&_0xd06dae[_0xd021('0x46')][0x0]?_0xd06dae[_0xd021('0x46')][0x0][_0xd021('0x47')]:undefined)||_0xd021('0x4c')},{'name':'attrTimezone','value':_0xd06dae[_0xd021('0x4d')]||(_0xd06dae['attrs']&&_0xd06dae[_0xd021('0x46')][0x1]?_0xd06dae[_0xd021('0x46')][0x1][_0xd021('0x47')]:undefined)||_0xd021('0x4e')},{'name':'attrFontSize','value':_0xd06dae[_0xd021('0x4f')]||(_0xd06dae['attrs']&&_0xd06dae[_0xd021('0x46')][0x2]?_0xd06dae['attrs'][0x2][_0xd021('0x47')]:undefined)||0xc}];case _0xd021('0x50'):return[{'name':'attrMetric','value':_0xd06dae[_0xd021('0x51')]||(_0xd06dae['attrs']&&_0xd06dae[_0xd021('0x46')][0x0]?_0xd06dae['attrs'][0x0][_0xd021('0x47')]:undefined)||_0xd021('0x52')},{'name':_0xd021('0x53'),'value':_0xd06dae['attrVoiceQueues']||(_0xd06dae[_0xd021('0x46')]&&_0xd06dae[_0xd021('0x46')][0x1]?_0xd06dae['attrs'][0x1][_0xd021('0x47')]:undefined)||[]},{'name':'attrFontSize','value':_0xd06dae[_0xd021('0x4f')]||(_0xd06dae[_0xd021('0x46')]&&_0xd06dae[_0xd021('0x46')][0x2]?_0xd06dae[_0xd021('0x46')][0x2][_0xd021('0x47')]:undefined)||0x14}];case'multibar-chart':case _0xd021('0x54'):return[{'name':'attrSerie1','value':_0xd06dae[_0xd021('0x55')]||(_0xd06dae[_0xd021('0x46')]&&_0xd06dae[_0xd021('0x46')][0x0]?_0xd06dae[_0xd021('0x46')][0x0]['value']:undefined)||_0xd021('0x52')},{'name':_0xd021('0x56'),'value':_0xd06dae[_0xd021('0x56')]||(_0xd06dae[_0xd021('0x46')]&&_0xd06dae['attrs'][0x1]?_0xd06dae[_0xd021('0x46')][0x1]['value']:undefined)||null},{'name':'attrSerie3','value':_0xd06dae[_0xd021('0x57')]||(_0xd06dae[_0xd021('0x46')]&&_0xd06dae[_0xd021('0x46')][0x2]?_0xd06dae['attrs'][0x2][_0xd021('0x47')]:undefined)||null},{'name':_0xd021('0x53'),'value':_0xd06dae[_0xd021('0x53')]||(_0xd06dae[_0xd021('0x46')]&&_0xd06dae[_0xd021('0x46')][0x3]?_0xd06dae[_0xd021('0x46')][0x3][_0xd021('0x47')]:undefined)||[]}];case _0xd021('0x58'):return[{'name':'attrReport','type':_0xd06dae[_0xd021('0x59')]||(_0xd06dae['attrs']&&_0xd06dae[_0xd021('0x46')][0x0]?_0xd06dae[_0xd021('0x46')][0x0][_0xd021('0x43')]:undefined)||null,'value':_0xd06dae[_0xd021('0x5a')]||(_0xd06dae['attrs']&&_0xd06dae[_0xd021('0x46')][0x0]?_0xd06dae[_0xd021('0x46')][0x0][_0xd021('0x47')]:undefined)||null},{'name':_0xd021('0x5b'),'value':_0xd06dae[_0xd021('0x5b')]||(_0xd06dae[_0xd021('0x46')]&&_0xd06dae[_0xd021('0x46')][0x1]?_0xd06dae['attrs'][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x5689a1){logger[_0xd021('0x5c')](_0xd021('0x5d'),JSON[_0xd021('0x5e')](_0x5689a1));return[];}}exports['create']=function(_0x8d9e7d,_0xecae64){if(_0x8d9e7d['body']){_0x8d9e7d[_0xd021('0x5f')][_0xd021('0x46')]=widgetAttributes(_0x8d9e7d['body']);}return db['DashboardItem'][_0xd021('0x60')](_0x8d9e7d[_0xd021('0x5f')],{})[_0xd021('0x2e')](respondWithResult(_0xecae64,0xc9))[_0xd021('0x42')](handleError(_0xecae64,null));};exports[_0xd021('0x2d')]=function(_0x3ec634,_0x51f854){if(_0x3ec634[_0xd021('0x5f')]['id']){delete _0x3ec634[_0xd021('0x5f')]['id'];}_0x3ec634['body']['attrs']=widgetAttributes(_0x3ec634[_0xd021('0x5f')]);return db[_0xd021('0x38')][_0xd021('0x41')]({'where':{'id':_0x3ec634['params']['id']}})[_0xd021('0x2e')](handleEntityNotFound(_0x51f854,null))['then'](saveUpdates(_0x3ec634['body'],null))[_0xd021('0x2e')](respondWithResult(_0x51f854,null))[_0xd021('0x42')](handleError(_0x51f854,null));};