Built motion from commit 616d3211.|2.6.4
[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 _0x36bb=['attrMetric','total','attrVoiceQueues','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','attrSerie1','attrSerie2','attrSerie3','attrChannel','attrOpenchannelAccounts','web-report','attrReport','reportType','type','attrRefresh','stringify','create','body','update','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','apply','reject','then','destroy','error','stack','show','params','model','keys','DashboardItem','rawAttributes','query','filters','intersection','attributes','fields','length','includeAll','include','merge','options','catch','find','iframe','attrUrl','attrs','value','https://','custom','attrPath','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize'];(function(_0x5c4467,_0x2c9292){var _0x33844b=function(_0x1c49d0){while(--_0x1c49d0){_0x5c4467['push'](_0x5c4467['shift']());}};_0x33844b(++_0x2c9292);}(_0x36bb,0xe6));var _0xb36b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x36bb[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xb36b('0x0'));var rimraf=require(_0xb36b('0x1'));var zipdir=require(_0xb36b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb36b('0x3'));var moment=require(_0xb36b('0x4'));var BPromise=require(_0xb36b('0x5'));var Mustache=require(_0xb36b('0x6'));var util=require(_0xb36b('0x7'));var path=require(_0xb36b('0x8'));var sox=require(_0xb36b('0x9'));var csv=require(_0xb36b('0xa'));var ejs=require(_0xb36b('0xb'));var fs=require('fs');var fs_extra=require(_0xb36b('0xc'));var _=require(_0xb36b('0xd'));var squel=require(_0xb36b('0xe'));var crypto=require(_0xb36b('0xf'));var jsforce=require(_0xb36b('0x10'));var deskjs=require(_0xb36b('0x11'));var toCsv=require(_0xb36b('0xa'));var querystring=require(_0xb36b('0x12'));var Papa=require(_0xb36b('0x13'));var Redis=require(_0xb36b('0x14'));var authService=require('../../components/auth/service');var qs=require(_0xb36b('0x15'));var as=require(_0xb36b('0x16'));var hardwareService=require(_0xb36b('0x17'));var logger=require('../../config/logger')(_0xb36b('0x18'));var utils=require(_0xb36b('0x19'));var config=require(_0xb36b('0x1a'));var licenseUtil=require(_0xb36b('0x1b'));var db=require(_0xb36b('0x1c'))['db'];config[_0xb36b('0x1d')]=_[_0xb36b('0x1e')](config[_0xb36b('0x1d')],{'host':_0xb36b('0x1f'),'port':0x18eb});var socket=require(_0xb36b('0x20'))(new Redis(config[_0xb36b('0x1d')]));require('./dashboardItem.socket')[_0xb36b('0x21')](socket);function respondWithStatusCode(_0x4c2c46,_0x5ca650){_0x5ca650=_0x5ca650||0xcc;return function(_0x6fdebc){if(_0x6fdebc){return _0x4c2c46[_0xb36b('0x22')](_0x5ca650);}return _0x4c2c46[_0xb36b('0x23')](_0x5ca650)[_0xb36b('0x24')]();};}function respondWithResult(_0x5c7255,_0x2b6dca){_0x2b6dca=_0x2b6dca||0xc8;return function(_0x5ad8c8){if(_0x5ad8c8){return _0x5c7255[_0xb36b('0x23')](_0x2b6dca)[_0xb36b('0x25')](_0x5ad8c8);}};}function respondWithFilteredResult(_0xfe29fc,_0x1c1955){return function(_0x53ec0e){if(_0x53ec0e){var _0x154df4=typeof _0x1c1955[_0xb36b('0x26')]===_0xb36b('0x27')&&typeof _0x1c1955['limit']===_0xb36b('0x27');var _0x572d88=_0x53ec0e[_0xb36b('0x28')];var _0xac85bd=_0x154df4?0x0:_0x1c1955[_0xb36b('0x26')];var _0x3eba4b=_0x154df4?_0x53ec0e[_0xb36b('0x28')]:_0x1c1955[_0xb36b('0x26')]+_0x1c1955[_0xb36b('0x29')];var _0x5c68de;if(_0x3eba4b>=_0x572d88){_0x3eba4b=_0x572d88;_0x5c68de=0xc8;}else{_0x5c68de=0xce;}_0xfe29fc[_0xb36b('0x23')](_0x5c68de);return _0xfe29fc['set'](_0xb36b('0x2a'),_0xac85bd+'-'+_0x3eba4b+'/'+_0x572d88)['json'](_0x53ec0e);}return null;};}function patchUpdates(_0x3b8030){return function(_0x734c81){try{jsonpatch[_0xb36b('0x2b')](_0x734c81,_0x3b8030,!![]);}catch(_0x174795){return BPromise[_0xb36b('0x2c')](_0x174795);}return _0x734c81['save']();};}function saveUpdates(_0x474083,_0x245b80){return function(_0x39d790){if(_0x39d790){return _0x39d790['update'](_0x474083)[_0xb36b('0x2d')](function(_0x4a58d4){return _0x4a58d4;});}return null;};}function removeEntity(_0x5dbe3b,_0x50e8e4){return function(_0x9a9cd8){if(_0x9a9cd8){return _0x9a9cd8[_0xb36b('0x2e')]()[_0xb36b('0x2d')](function(){_0x5dbe3b[_0xb36b('0x23')](0xcc)[_0xb36b('0x24')]();});}};}function handleEntityNotFound(_0x46dfc,_0xd28a27){return function(_0xe3d519){if(!_0xe3d519){_0x46dfc['sendStatus'](0x194);}return _0xe3d519;};}function handleError(_0x5f5d1d,_0x90718e){_0x90718e=_0x90718e||0x1f4;return function(_0x2724bf){logger[_0xb36b('0x2f')](_0x2724bf[_0xb36b('0x30')]);if(_0x2724bf['name']){delete _0x2724bf['name'];}_0x5f5d1d[_0xb36b('0x23')](_0x90718e)['send'](_0x2724bf);};}exports[_0xb36b('0x31')]=function(_0xff5834,_0x48fab7){var _0x95efc5={'raw':![],'where':{'id':_0xff5834[_0xb36b('0x32')]['id']}},_0x24f8bc={};_0x24f8bc[_0xb36b('0x33')]=_[_0xb36b('0x34')](db[_0xb36b('0x35')][_0xb36b('0x36')]);_0x24f8bc[_0xb36b('0x37')]=_[_0xb36b('0x34')](_0xff5834[_0xb36b('0x37')]);_0x24f8bc[_0xb36b('0x38')]=_[_0xb36b('0x39')](_0x24f8bc['model'],_0x24f8bc['query']);_0x95efc5[_0xb36b('0x3a')]=_[_0xb36b('0x39')](_0x24f8bc['model'],qs[_0xb36b('0x3b')](_0xff5834['query']['fields']));_0x95efc5[_0xb36b('0x3a')]=_0x95efc5[_0xb36b('0x3a')][_0xb36b('0x3c')]?_0x95efc5['attributes']:_0x24f8bc['model'];if(_0xff5834[_0xb36b('0x37')][_0xb36b('0x3d')]){_0x95efc5[_0xb36b('0x3e')]=[{'all':!![]}];}_0x95efc5=_[_0xb36b('0x3f')]({},_0x95efc5,_0xff5834[_0xb36b('0x40')]);return db[_0xb36b('0x35')]['find'](_0x95efc5)[_0xb36b('0x2d')](handleEntityNotFound(_0x48fab7,null))[_0xb36b('0x2d')](respondWithResult(_0x48fab7,null))[_0xb36b('0x41')](handleError(_0x48fab7,null));};exports[_0xb36b('0x2e')]=function(_0x301e12,_0x185bb2){return db[_0xb36b('0x35')][_0xb36b('0x42')]({'where':{'id':_0x301e12[_0xb36b('0x32')]['id']}})['then'](handleEntityNotFound(_0x185bb2,null))[_0xb36b('0x2d')](removeEntity(_0x185bb2,null))[_0xb36b('0x41')](handleError(_0x185bb2,null));};function widgetAttributes(_0x2321f2){try{switch(_0x2321f2['type']){case _0xb36b('0x43'):return[{'name':_0xb36b('0x44'),'value':_0x2321f2[_0xb36b('0x44')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2['attrs'][0x0]?_0x2321f2['attrs'][0x0][_0xb36b('0x46')]:undefined)||_0xb36b('0x47')}];case _0xb36b('0x48'):return[{'name':_0xb36b('0x49'),'value':_0x2321f2[_0xb36b('0x49')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x0]?_0x2321f2['attrs'][0x0]['value']:undefined)||''}];case'clock':return[{'name':_0xb36b('0x4a'),'value':_0x2321f2[_0xb36b('0x4a')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2['attrs'][0x0]?_0x2321f2[_0xb36b('0x45')][0x0][_0xb36b('0x46')]:undefined)||_0xb36b('0x4b')},{'name':_0xb36b('0x4c'),'value':_0x2321f2[_0xb36b('0x4c')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x1]?_0x2321f2[_0xb36b('0x45')][0x1][_0xb36b('0x46')]:undefined)||_0xb36b('0x4d')},{'name':'attrFontSize','value':_0x2321f2[_0xb36b('0x4e')]||(_0x2321f2['attrs']&&_0x2321f2['attrs'][0x2]?_0x2321f2[_0xb36b('0x45')][0x2][_0xb36b('0x46')]:undefined)||0xc}];case'counter':return[{'name':'attrMetric','value':_0x2321f2[_0xb36b('0x4f')]||(_0x2321f2['attrs']&&_0x2321f2[_0xb36b('0x45')][0x0]?_0x2321f2[_0xb36b('0x45')][0x0][_0xb36b('0x46')]:undefined)||_0xb36b('0x50')},{'name':_0xb36b('0x51'),'value':_0x2321f2['attrVoiceQueues']||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x1]?_0x2321f2['attrs'][0x1]['value']:undefined)||[]},{'name':'attrFontSize','value':_0x2321f2[_0xb36b('0x4e')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x2]?_0x2321f2[_0xb36b('0x45')][0x2][_0xb36b('0x46')]:undefined)||0x14},{'name':'attrChannel','value':_0x2321f2['attrChannel']||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2['attrs'][0x3]?_0x2321f2[_0xb36b('0x45')][0x3][_0xb36b('0x46')]:undefined)||_0xb36b('0x52')},{'name':_0xb36b('0x53'),'value':_0x2321f2[_0xb36b('0x53')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2['attrs'][0x4]?_0x2321f2[_0xb36b('0x45')][0x4][_0xb36b('0x46')]:undefined)||''},{'name':_0xb36b('0x54'),'value':_0x2321f2[_0xb36b('0x54')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x5]?_0x2321f2[_0xb36b('0x45')][0x5][_0xb36b('0x46')]:undefined)||''},{'name':'attrSmsAccounts','value':_0x2321f2[_0xb36b('0x55')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x6]?_0x2321f2[_0xb36b('0x45')][0x6]['value']:undefined)||''},{'name':'attrOpenchannelAccounts','value':_0x2321f2['attrOpenchannelAccounts']||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x7]?_0x2321f2[_0xb36b('0x45')][0x7][_0xb36b('0x46')]:undefined)||''},{'name':_0xb36b('0x56'),'value':_0x2321f2['attrWhatsappAccounts']||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x8]?_0x2321f2[_0xb36b('0x45')][0x8][_0xb36b('0x46')]:undefined)||''},{'name':_0xb36b('0x57'),'value':_0x2321f2['attrChatWebsites']||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x9]?_0x2321f2[_0xb36b('0x45')][0x9][_0xb36b('0x46')]:undefined)||''}];case _0xb36b('0x58'):case'pie-chart':return[{'name':'attrSerie1','value':_0x2321f2[_0xb36b('0x59')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x0]?_0x2321f2[_0xb36b('0x45')][0x0][_0xb36b('0x46')]:undefined)||_0xb36b('0x50')},{'name':_0xb36b('0x5a'),'value':_0x2321f2[_0xb36b('0x5a')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x1]?_0x2321f2[_0xb36b('0x45')][0x1]['value']:undefined)||null},{'name':_0xb36b('0x5b'),'value':_0x2321f2[_0xb36b('0x5b')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x2]?_0x2321f2[_0xb36b('0x45')][0x2][_0xb36b('0x46')]:undefined)||null},{'name':_0xb36b('0x51'),'value':_0x2321f2[_0xb36b('0x51')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x3]?_0x2321f2[_0xb36b('0x45')][0x3]['value']:undefined)||[]},{'name':_0xb36b('0x5c'),'value':_0x2321f2[_0xb36b('0x5c')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x4]?_0x2321f2[_0xb36b('0x45')][0x4][_0xb36b('0x46')]:undefined)||'voice'},{'name':_0xb36b('0x53'),'value':_0x2321f2[_0xb36b('0x53')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x5]?_0x2321f2['attrs'][0x5][_0xb36b('0x46')]:undefined)||''},{'name':_0xb36b('0x54'),'value':_0x2321f2[_0xb36b('0x54')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x6]?_0x2321f2[_0xb36b('0x45')][0x6]['value']:undefined)||''},{'name':'attrSmsAccounts','value':_0x2321f2['attrSmsAccounts']||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x7]?_0x2321f2[_0xb36b('0x45')][0x7]['value']:undefined)||''},{'name':_0xb36b('0x5d'),'value':_0x2321f2[_0xb36b('0x5d')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x8]?_0x2321f2[_0xb36b('0x45')][0x8][_0xb36b('0x46')]:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x2321f2[_0xb36b('0x56')]||(_0x2321f2['attrs']&&_0x2321f2['attrs'][0x9]?_0x2321f2[_0xb36b('0x45')][0x9][_0xb36b('0x46')]:undefined)||''},{'name':_0xb36b('0x57'),'value':_0x2321f2['attrChatWebsites']||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2['attrs'][0xa]?_0x2321f2['attrs'][0xa]['value']:undefined)||''}];case _0xb36b('0x5e'):return[{'name':_0xb36b('0x5f'),'type':_0x2321f2[_0xb36b('0x60')]||(_0x2321f2[_0xb36b('0x45')]&&_0x2321f2[_0xb36b('0x45')][0x0]?_0x2321f2[_0xb36b('0x45')][0x0][_0xb36b('0x61')]:undefined)||null,'value':_0x2321f2[_0xb36b('0x5f')]||(_0x2321f2['attrs']&&_0x2321f2['attrs'][0x0]?_0x2321f2[_0xb36b('0x45')][0x0]['value']:undefined)||null},{'name':'attrRefresh','value':_0x2321f2[_0xb36b('0x62')]||(_0x2321f2['attrs']&&_0x2321f2[_0xb36b('0x45')][0x1]?_0x2321f2[_0xb36b('0x45')][0x1][_0xb36b('0x46')]:undefined)||0x0}];default:return[];}}catch(_0x2d0b31){logger[_0xb36b('0x2f')]('widgetAttributes:\x20%s',JSON[_0xb36b('0x63')](_0x2d0b31));return[];}}exports[_0xb36b('0x64')]=function(_0x90d269,_0x457d1b){if(_0x90d269[_0xb36b('0x65')]){_0x90d269[_0xb36b('0x65')]['attrs']=widgetAttributes(_0x90d269[_0xb36b('0x65')]);}return db['DashboardItem'][_0xb36b('0x64')](_0x90d269['body'],{})[_0xb36b('0x2d')](respondWithResult(_0x457d1b,0xc9))[_0xb36b('0x41')](handleError(_0x457d1b,null));};exports[_0xb36b('0x66')]=function(_0x5da58e,_0xd5e6a6){if(_0x5da58e['body']['id']){delete _0x5da58e[_0xb36b('0x65')]['id'];}_0x5da58e[_0xb36b('0x65')]['attrs']=widgetAttributes(_0x5da58e[_0xb36b('0x65')]);return db['DashboardItem'][_0xb36b('0x42')]({'where':{'id':_0x5da58e[_0xb36b('0x32')]['id']}})[_0xb36b('0x2d')](handleEntityNotFound(_0xd5e6a6,null))[_0xb36b('0x2d')](saveUpdates(_0x5da58e[_0xb36b('0x65')],null))[_0xb36b('0x2d')](respondWithResult(_0xd5e6a6,null))[_0xb36b('0x41')](handleError(_0xd5e6a6,null));};