Built motion from commit e02f907f.|2.6.14
[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 _0x0c42=['reportType','attrRefresh','error','stringify','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','fs-extra','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','socket.io-emitter','register','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','show','params','model','keys','rawAttributes','query','intersection','fields','attributes','length','merge','options','DashboardItem','find','catch','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport'];(function(_0x1f3f62,_0x27bdf8){var _0x53429d=function(_0x3fd16b){while(--_0x3fd16b){_0x1f3f62['push'](_0x1f3f62['shift']());}};_0x53429d(++_0x27bdf8);}(_0x0c42,0x191));var _0x20c4=function(_0x22f904,_0x1ae39a){_0x22f904=_0x22f904-0x0;var _0x31f5ec=_0x0c42[_0x22f904];return _0x31f5ec;};'use strict';var emlformat=require(_0x20c4('0x0'));var rimraf=require(_0x20c4('0x1'));var zipdir=require(_0x20c4('0x2'));var jsonpatch=require(_0x20c4('0x3'));var rp=require(_0x20c4('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x20c4('0x5'));var util=require(_0x20c4('0x6'));var path=require(_0x20c4('0x7'));var sox=require(_0x20c4('0x8'));var csv=require(_0x20c4('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x20c4('0xa'));var _=require('lodash');var squel=require(_0x20c4('0xb'));var crypto=require('crypto');var jsforce=require(_0x20c4('0xc'));var deskjs=require(_0x20c4('0xd'));var toCsv=require(_0x20c4('0x9'));var querystring=require('querystring');var Papa=require(_0x20c4('0xe'));var Redis=require(_0x20c4('0xf'));var authService=require(_0x20c4('0x10'));var qs=require(_0x20c4('0x11'));var as=require(_0x20c4('0x12'));var hardwareService=require(_0x20c4('0x13'));var logger=require(_0x20c4('0x14'))(_0x20c4('0x15'));var utils=require(_0x20c4('0x16'));var config=require(_0x20c4('0x17'));var licenseUtil=require(_0x20c4('0x18'));var db=require(_0x20c4('0x19'))['db'];config[_0x20c4('0x1a')]=_['defaults'](config[_0x20c4('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x20c4('0x1b'))(new Redis(config[_0x20c4('0x1a')]));require('./dashboardItem.socket')[_0x20c4('0x1c')](socket);function respondWithStatusCode(_0x4c6dae,_0x13213d){_0x13213d=_0x13213d||0xcc;return function(_0x3b1399){if(_0x3b1399){return _0x4c6dae[_0x20c4('0x1d')](_0x13213d);}return _0x4c6dae['status'](_0x13213d)[_0x20c4('0x1e')]();};}function respondWithResult(_0x25b671,_0x3c989a){_0x3c989a=_0x3c989a||0xc8;return function(_0x3e7c5b){if(_0x3e7c5b){return _0x25b671[_0x20c4('0x1f')](_0x3c989a)[_0x20c4('0x20')](_0x3e7c5b);}};}function respondWithFilteredResult(_0x2f79a0,_0x3fd9b7){return function(_0x3f9b92){if(_0x3f9b92){var _0x301ff1=typeof _0x3fd9b7[_0x20c4('0x21')]==='undefined'&&typeof _0x3fd9b7['limit']===_0x20c4('0x22');var _0x59c65d=_0x3f9b92[_0x20c4('0x23')];var _0x2c1892=_0x301ff1?0x0:_0x3fd9b7[_0x20c4('0x21')];var _0x294c37=_0x301ff1?_0x3f9b92[_0x20c4('0x23')]:_0x3fd9b7[_0x20c4('0x21')]+_0x3fd9b7[_0x20c4('0x24')];var _0x3fa1a5;if(_0x294c37>=_0x59c65d){_0x294c37=_0x59c65d;_0x3fa1a5=0xc8;}else{_0x3fa1a5=0xce;}_0x2f79a0[_0x20c4('0x1f')](_0x3fa1a5);return _0x2f79a0[_0x20c4('0x25')](_0x20c4('0x26'),_0x2c1892+'-'+_0x294c37+'/'+_0x59c65d)[_0x20c4('0x20')](_0x3f9b92);}return null;};}function patchUpdates(_0xbe436d){return function(_0x2d1eda){try{jsonpatch[_0x20c4('0x27')](_0x2d1eda,_0xbe436d,!![]);}catch(_0x14d2d8){return BPromise[_0x20c4('0x28')](_0x14d2d8);}return _0x2d1eda[_0x20c4('0x29')]();};}function saveUpdates(_0x20e812,_0x3e4b27){return function(_0x11cc05){if(_0x11cc05){return _0x11cc05[_0x20c4('0x2a')](_0x20e812)[_0x20c4('0x2b')](function(_0x7c7d69){return _0x7c7d69;});}return null;};}function removeEntity(_0x52bf67,_0x5efa2b){return function(_0x2192c9){if(_0x2192c9){return _0x2192c9[_0x20c4('0x2c')]()['then'](function(){_0x52bf67[_0x20c4('0x1f')](0xcc)[_0x20c4('0x1e')]();});}};}function handleEntityNotFound(_0x5bc23a,_0x18fb67){return function(_0x12e4f5){if(!_0x12e4f5){_0x5bc23a['sendStatus'](0x194);}return _0x12e4f5;};}function handleError(_0x5592dd,_0x490034){_0x490034=_0x490034||0x1f4;return function(_0x19907c){logger['error'](_0x19907c[_0x20c4('0x2d')]);if(_0x19907c[_0x20c4('0x2e')]){delete _0x19907c[_0x20c4('0x2e')];}_0x5592dd[_0x20c4('0x1f')](_0x490034)[_0x20c4('0x2f')](_0x19907c);};}exports[_0x20c4('0x30')]=function(_0x57c41d,_0x4916bb){var _0x2045ac={'raw':![],'where':{'id':_0x57c41d[_0x20c4('0x31')]['id']}},_0x1673ff={};_0x1673ff[_0x20c4('0x32')]=_[_0x20c4('0x33')](db['DashboardItem'][_0x20c4('0x34')]);_0x1673ff['query']=_[_0x20c4('0x33')](_0x57c41d['query']);_0x1673ff['filters']=_['intersection'](_0x1673ff['model'],_0x1673ff[_0x20c4('0x35')]);_0x2045ac['attributes']=_[_0x20c4('0x36')](_0x1673ff[_0x20c4('0x32')],qs[_0x20c4('0x37')](_0x57c41d['query'][_0x20c4('0x37')]));_0x2045ac[_0x20c4('0x38')]=_0x2045ac[_0x20c4('0x38')][_0x20c4('0x39')]?_0x2045ac[_0x20c4('0x38')]:_0x1673ff['model'];if(_0x57c41d['query']['includeAll']){_0x2045ac['include']=[{'all':!![]}];}_0x2045ac=_[_0x20c4('0x3a')]({},_0x2045ac,_0x57c41d[_0x20c4('0x3b')]);return db[_0x20c4('0x3c')][_0x20c4('0x3d')](_0x2045ac)[_0x20c4('0x2b')](handleEntityNotFound(_0x4916bb,null))['then'](respondWithResult(_0x4916bb,null))[_0x20c4('0x3e')](handleError(_0x4916bb,null));};exports['destroy']=function(_0x57af6c,_0x49cdb8){return db[_0x20c4('0x3c')][_0x20c4('0x3d')]({'where':{'id':_0x57af6c[_0x20c4('0x31')]['id']}})[_0x20c4('0x2b')](handleEntityNotFound(_0x49cdb8,null))[_0x20c4('0x2b')](removeEntity(_0x49cdb8,null))['catch'](handleError(_0x49cdb8,null));};function widgetAttributes(_0x39c7b1){try{switch(_0x39c7b1[_0x20c4('0x3f')]){case _0x20c4('0x40'):return[{'name':_0x20c4('0x41'),'value':_0x39c7b1[_0x20c4('0x41')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x0]?_0x39c7b1[_0x20c4('0x42')][0x0][_0x20c4('0x43')]:undefined)||_0x20c4('0x44')}];case _0x20c4('0x45'):return[{'name':'attrPath','value':_0x39c7b1[_0x20c4('0x46')]||(_0x39c7b1['attrs']&&_0x39c7b1[_0x20c4('0x42')][0x0]?_0x39c7b1[_0x20c4('0x42')][0x0][_0x20c4('0x43')]:undefined)||''}];case _0x20c4('0x47'):return[{'name':_0x20c4('0x48'),'value':_0x39c7b1[_0x20c4('0x48')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x0]?_0x39c7b1[_0x20c4('0x42')][0x0]['value']:undefined)||_0x20c4('0x49')},{'name':_0x20c4('0x4a'),'value':_0x39c7b1['attrTimezone']||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1['attrs'][0x1]?_0x39c7b1[_0x20c4('0x42')][0x1]['value']:undefined)||_0x20c4('0x4b')},{'name':'attrFontSize','value':_0x39c7b1[_0x20c4('0x4c')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x2]?_0x39c7b1['attrs'][0x2]['value']:undefined)||0xc}];case'counter':return[{'name':_0x20c4('0x4d'),'value':_0x39c7b1[_0x20c4('0x4d')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x0]?_0x39c7b1[_0x20c4('0x42')][0x0][_0x20c4('0x43')]:undefined)||_0x20c4('0x4e')},{'name':_0x20c4('0x4f'),'value':_0x39c7b1[_0x20c4('0x4f')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x1]?_0x39c7b1[_0x20c4('0x42')][0x1][_0x20c4('0x43')]:undefined)||[]},{'name':'attrFontSize','value':_0x39c7b1[_0x20c4('0x4c')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1['attrs'][0x2]?_0x39c7b1[_0x20c4('0x42')][0x2][_0x20c4('0x43')]:undefined)||0x14},{'name':_0x20c4('0x50'),'value':_0x39c7b1[_0x20c4('0x50')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x3]?_0x39c7b1['attrs'][0x3][_0x20c4('0x43')]:undefined)||_0x20c4('0x51')},{'name':_0x20c4('0x52'),'value':_0x39c7b1[_0x20c4('0x52')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x4]?_0x39c7b1[_0x20c4('0x42')][0x4][_0x20c4('0x43')]:undefined)||''},{'name':_0x20c4('0x53'),'value':_0x39c7b1['attrFaxAccounts']||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x5]?_0x39c7b1[_0x20c4('0x42')][0x5][_0x20c4('0x43')]:undefined)||''},{'name':_0x20c4('0x54'),'value':_0x39c7b1['attrSmsAccounts']||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1['attrs'][0x6]?_0x39c7b1[_0x20c4('0x42')][0x6][_0x20c4('0x43')]:undefined)||''},{'name':_0x20c4('0x55'),'value':_0x39c7b1['attrOpenchannelAccounts']||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x7]?_0x39c7b1[_0x20c4('0x42')][0x7][_0x20c4('0x43')]:undefined)||''},{'name':_0x20c4('0x56'),'value':_0x39c7b1[_0x20c4('0x56')]||(_0x39c7b1['attrs']&&_0x39c7b1[_0x20c4('0x42')][0x8]?_0x39c7b1[_0x20c4('0x42')][0x8][_0x20c4('0x43')]:undefined)||''},{'name':'attrChatWebsites','value':_0x39c7b1[_0x20c4('0x57')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x9]?_0x39c7b1[_0x20c4('0x42')][0x9]['value']:undefined)||''}];case'multibar-chart':case _0x20c4('0x58'):return[{'name':_0x20c4('0x59'),'value':_0x39c7b1[_0x20c4('0x59')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1['attrs'][0x0]?_0x39c7b1[_0x20c4('0x42')][0x0][_0x20c4('0x43')]:undefined)||_0x20c4('0x4e')},{'name':_0x20c4('0x5a'),'value':_0x39c7b1[_0x20c4('0x5a')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x1]?_0x39c7b1['attrs'][0x1]['value']:undefined)||null},{'name':_0x20c4('0x5b'),'value':_0x39c7b1[_0x20c4('0x5b')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1['attrs'][0x2]?_0x39c7b1[_0x20c4('0x42')][0x2][_0x20c4('0x43')]:undefined)||null},{'name':'attrVoiceQueues','value':_0x39c7b1[_0x20c4('0x4f')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1['attrs'][0x3]?_0x39c7b1[_0x20c4('0x42')][0x3][_0x20c4('0x43')]:undefined)||[]},{'name':_0x20c4('0x50'),'value':_0x39c7b1[_0x20c4('0x50')]||(_0x39c7b1['attrs']&&_0x39c7b1[_0x20c4('0x42')][0x4]?_0x39c7b1[_0x20c4('0x42')][0x4][_0x20c4('0x43')]:undefined)||_0x20c4('0x51')},{'name':'attrEmailAccounts','value':_0x39c7b1[_0x20c4('0x52')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x5]?_0x39c7b1['attrs'][0x5][_0x20c4('0x43')]:undefined)||''},{'name':_0x20c4('0x53'),'value':_0x39c7b1[_0x20c4('0x53')]||(_0x39c7b1['attrs']&&_0x39c7b1[_0x20c4('0x42')][0x6]?_0x39c7b1['attrs'][0x6][_0x20c4('0x43')]:undefined)||''},{'name':_0x20c4('0x54'),'value':_0x39c7b1[_0x20c4('0x54')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x7]?_0x39c7b1[_0x20c4('0x42')][0x7][_0x20c4('0x43')]:undefined)||''},{'name':'attrOpenchannelAccounts','value':_0x39c7b1[_0x20c4('0x55')]||(_0x39c7b1['attrs']&&_0x39c7b1['attrs'][0x8]?_0x39c7b1[_0x20c4('0x42')][0x8]['value']:undefined)||''},{'name':_0x20c4('0x56'),'value':_0x39c7b1[_0x20c4('0x56')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x9]?_0x39c7b1[_0x20c4('0x42')][0x9][_0x20c4('0x43')]:undefined)||''},{'name':_0x20c4('0x57'),'value':_0x39c7b1[_0x20c4('0x57')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1['attrs'][0xa]?_0x39c7b1[_0x20c4('0x42')][0xa][_0x20c4('0x43')]:undefined)||''}];case _0x20c4('0x5c'):return[{'name':_0x20c4('0x5d'),'type':_0x39c7b1[_0x20c4('0x5e')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1['attrs'][0x0]?_0x39c7b1[_0x20c4('0x42')][0x0][_0x20c4('0x3f')]:undefined)||null,'value':_0x39c7b1[_0x20c4('0x5d')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x0]?_0x39c7b1[_0x20c4('0x42')][0x0]['value']:undefined)||null},{'name':_0x20c4('0x5f'),'value':_0x39c7b1[_0x20c4('0x5f')]||(_0x39c7b1[_0x20c4('0x42')]&&_0x39c7b1[_0x20c4('0x42')][0x1]?_0x39c7b1[_0x20c4('0x42')][0x1][_0x20c4('0x43')]:undefined)||0x0}];default:return[];}}catch(_0x438b8f){logger[_0x20c4('0x60')]('widgetAttributes:\x20%s',JSON[_0x20c4('0x61')](_0x438b8f));return[];}}exports['create']=function(_0x3d81d2,_0x2ffe8b){if(_0x3d81d2[_0x20c4('0x62')]){_0x3d81d2[_0x20c4('0x62')][_0x20c4('0x42')]=widgetAttributes(_0x3d81d2['body']);}return db[_0x20c4('0x3c')]['create'](_0x3d81d2['body'],{})['then'](respondWithResult(_0x2ffe8b,0xc9))[_0x20c4('0x3e')](handleError(_0x2ffe8b,null));};exports[_0x20c4('0x2a')]=function(_0x1d210e,_0x488dde){if(_0x1d210e[_0x20c4('0x62')]['id']){delete _0x1d210e[_0x20c4('0x62')]['id'];}_0x1d210e['body'][_0x20c4('0x42')]=widgetAttributes(_0x1d210e[_0x20c4('0x62')]);return db['DashboardItem']['find']({'where':{'id':_0x1d210e[_0x20c4('0x31')]['id']}})[_0x20c4('0x2b')](handleEntityNotFound(_0x488dde,null))[_0x20c4('0x2b')](saveUpdates(_0x1d210e[_0x20c4('0x62')],null))[_0x20c4('0x2b')](respondWithResult(_0x488dde,null))[_0x20c4('0x3e')](handleError(_0x488dde,null));};