e609be92bba99ab3273a4b7c6db2c1d53c20127f
[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 _0xc6c0=['attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','params','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./dashboardItem.socket','sendStatus','status','end','undefined','limit','offset','count','set','json','save','update','then','destroy','error','stack','name','send','model','keys','DashboardItem','rawAttributes','query','filters','intersection','attributes','fields','includeAll','options','find','catch','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts'];(function(_0x3ab9ee,_0x4a74b8){var _0x82ee88=function(_0x6ccc7e){while(--_0x6ccc7e){_0x3ab9ee['push'](_0x3ab9ee['shift']());}};_0x82ee88(++_0x4a74b8);}(_0xc6c0,0x13e));var _0x0c6c=function(_0x25c326,_0x250137){_0x25c326=_0x25c326-0x0;var _0x762452=_0xc6c0[_0x25c326];return _0x762452;};'use strict';var emlformat=require(_0x0c6c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0c6c('0x1'));var jsonpatch=require(_0x0c6c('0x2'));var rp=require(_0x0c6c('0x3'));var moment=require(_0x0c6c('0x4'));var BPromise=require(_0x0c6c('0x5'));var Mustache=require(_0x0c6c('0x6'));var util=require(_0x0c6c('0x7'));var path=require(_0x0c6c('0x8'));var sox=require(_0x0c6c('0x9'));var csv=require(_0x0c6c('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0c6c('0xb'));var squel=require(_0x0c6c('0xc'));var crypto=require(_0x0c6c('0xd'));var jsforce=require(_0x0c6c('0xe'));var deskjs=require(_0x0c6c('0xf'));var toCsv=require(_0x0c6c('0xa'));var querystring=require(_0x0c6c('0x10'));var Papa=require(_0x0c6c('0x11'));var Redis=require(_0x0c6c('0x12'));var authService=require(_0x0c6c('0x13'));var qs=require(_0x0c6c('0x14'));var as=require(_0x0c6c('0x15'));var hardwareService=require(_0x0c6c('0x16'));var logger=require(_0x0c6c('0x17'))(_0x0c6c('0x18'));var utils=require('../../config/utils');var config=require(_0x0c6c('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x0c6c('0x1a'))['db'];config[_0x0c6c('0x1b')]=_['defaults'](config[_0x0c6c('0x1b')],{'host':_0x0c6c('0x1c'),'port':0x18eb});var socket=require(_0x0c6c('0x1d'))(new Redis(config[_0x0c6c('0x1b')]));require(_0x0c6c('0x1e'))['register'](socket);function respondWithStatusCode(_0xcbf4a9,_0x128d5d){_0x128d5d=_0x128d5d||0xcc;return function(_0x410dfb){if(_0x410dfb){return _0xcbf4a9[_0x0c6c('0x1f')](_0x128d5d);}return _0xcbf4a9[_0x0c6c('0x20')](_0x128d5d)[_0x0c6c('0x21')]();};}function respondWithResult(_0x2a8819,_0x576156){_0x576156=_0x576156||0xc8;return function(_0x2d635c){if(_0x2d635c){return _0x2a8819['status'](_0x576156)['json'](_0x2d635c);}};}function respondWithFilteredResult(_0x502597,_0x27cc46){return function(_0x530333){if(_0x530333){var _0x9463e8=typeof _0x27cc46['offset']===_0x0c6c('0x22')&&typeof _0x27cc46[_0x0c6c('0x23')]===_0x0c6c('0x22');var _0x40ad85=_0x530333['count'];var _0x1b9ed4=_0x9463e8?0x0:_0x27cc46[_0x0c6c('0x24')];var _0x326945=_0x9463e8?_0x530333[_0x0c6c('0x25')]:_0x27cc46[_0x0c6c('0x24')]+_0x27cc46[_0x0c6c('0x23')];var _0x1d5536;if(_0x326945>=_0x40ad85){_0x326945=_0x40ad85;_0x1d5536=0xc8;}else{_0x1d5536=0xce;}_0x502597[_0x0c6c('0x20')](_0x1d5536);return _0x502597[_0x0c6c('0x26')]('Content-Range',_0x1b9ed4+'-'+_0x326945+'/'+_0x40ad85)[_0x0c6c('0x27')](_0x530333);}return null;};}function patchUpdates(_0xc33069){return function(_0x6d291f){try{jsonpatch['apply'](_0x6d291f,_0xc33069,!![]);}catch(_0x4681eb){return BPromise['reject'](_0x4681eb);}return _0x6d291f[_0x0c6c('0x28')]();};}function saveUpdates(_0x35f4ad,_0x4140e0){return function(_0x56469d){if(_0x56469d){return _0x56469d[_0x0c6c('0x29')](_0x35f4ad)[_0x0c6c('0x2a')](function(_0x200a47){return _0x200a47;});}return null;};}function removeEntity(_0x99b725,_0xb46694){return function(_0xe74a25){if(_0xe74a25){return _0xe74a25[_0x0c6c('0x2b')]()[_0x0c6c('0x2a')](function(){_0x99b725[_0x0c6c('0x20')](0xcc)[_0x0c6c('0x21')]();});}};}function handleEntityNotFound(_0x54adeb,_0x194b59){return function(_0x557046){if(!_0x557046){_0x54adeb[_0x0c6c('0x1f')](0x194);}return _0x557046;};}function handleError(_0x53edb3,_0x272a08){_0x272a08=_0x272a08||0x1f4;return function(_0x45fcad){logger[_0x0c6c('0x2c')](_0x45fcad[_0x0c6c('0x2d')]);if(_0x45fcad[_0x0c6c('0x2e')]){delete _0x45fcad[_0x0c6c('0x2e')];}_0x53edb3[_0x0c6c('0x20')](_0x272a08)[_0x0c6c('0x2f')](_0x45fcad);};}exports['show']=function(_0x452d93,_0x1d86bc){var _0x5ec5bc={'raw':![],'where':{'id':_0x452d93['params']['id']}},_0x40d708={};_0x40d708[_0x0c6c('0x30')]=_[_0x0c6c('0x31')](db[_0x0c6c('0x32')][_0x0c6c('0x33')]);_0x40d708[_0x0c6c('0x34')]=_[_0x0c6c('0x31')](_0x452d93[_0x0c6c('0x34')]);_0x40d708[_0x0c6c('0x35')]=_[_0x0c6c('0x36')](_0x40d708['model'],_0x40d708['query']);_0x5ec5bc[_0x0c6c('0x37')]=_[_0x0c6c('0x36')](_0x40d708[_0x0c6c('0x30')],qs[_0x0c6c('0x38')](_0x452d93[_0x0c6c('0x34')][_0x0c6c('0x38')]));_0x5ec5bc['attributes']=_0x5ec5bc[_0x0c6c('0x37')]['length']?_0x5ec5bc[_0x0c6c('0x37')]:_0x40d708['model'];if(_0x452d93[_0x0c6c('0x34')][_0x0c6c('0x39')]){_0x5ec5bc['include']=[{'all':!![]}];}_0x5ec5bc=_['merge']({},_0x5ec5bc,_0x452d93[_0x0c6c('0x3a')]);return db[_0x0c6c('0x32')][_0x0c6c('0x3b')](_0x5ec5bc)[_0x0c6c('0x2a')](handleEntityNotFound(_0x1d86bc,null))['then'](respondWithResult(_0x1d86bc,null))[_0x0c6c('0x3c')](handleError(_0x1d86bc,null));};exports[_0x0c6c('0x2b')]=function(_0x49e05d,_0x9d6ee8){return db[_0x0c6c('0x32')][_0x0c6c('0x3b')]({'where':{'id':_0x49e05d['params']['id']}})[_0x0c6c('0x2a')](handleEntityNotFound(_0x9d6ee8,null))[_0x0c6c('0x2a')](removeEntity(_0x9d6ee8,null))[_0x0c6c('0x3c')](handleError(_0x9d6ee8,null));};function widgetAttributes(_0x93e98a){try{switch(_0x93e98a[_0x0c6c('0x3d')]){case _0x0c6c('0x3e'):return[{'name':_0x0c6c('0x3f'),'value':_0x93e98a[_0x0c6c('0x3f')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x0]?_0x93e98a[_0x0c6c('0x40')][0x0][_0x0c6c('0x41')]:undefined)||_0x0c6c('0x42')}];case _0x0c6c('0x43'):return[{'name':_0x0c6c('0x44'),'value':_0x93e98a[_0x0c6c('0x44')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x0]?_0x93e98a[_0x0c6c('0x40')][0x0][_0x0c6c('0x41')]:undefined)||''}];case _0x0c6c('0x45'):return[{'name':_0x0c6c('0x46'),'value':_0x93e98a[_0x0c6c('0x46')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x0]?_0x93e98a[_0x0c6c('0x40')][0x0]['value']:undefined)||_0x0c6c('0x47')},{'name':_0x0c6c('0x48'),'value':_0x93e98a['attrTimezone']||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x1]?_0x93e98a[_0x0c6c('0x40')][0x1][_0x0c6c('0x41')]:undefined)||_0x0c6c('0x49')},{'name':_0x0c6c('0x4a'),'value':_0x93e98a[_0x0c6c('0x4a')]||(_0x93e98a['attrs']&&_0x93e98a['attrs'][0x2]?_0x93e98a[_0x0c6c('0x40')][0x2][_0x0c6c('0x41')]:undefined)||0xc}];case _0x0c6c('0x4b'):return[{'name':_0x0c6c('0x4c'),'value':_0x93e98a[_0x0c6c('0x4c')]||(_0x93e98a['attrs']&&_0x93e98a[_0x0c6c('0x40')][0x0]?_0x93e98a[_0x0c6c('0x40')][0x0][_0x0c6c('0x41')]:undefined)||_0x0c6c('0x4d')},{'name':_0x0c6c('0x4e'),'value':_0x93e98a[_0x0c6c('0x4e')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a['attrs'][0x1]?_0x93e98a[_0x0c6c('0x40')][0x1][_0x0c6c('0x41')]:undefined)||[]},{'name':'attrFontSize','value':_0x93e98a[_0x0c6c('0x4a')]||(_0x93e98a['attrs']&&_0x93e98a[_0x0c6c('0x40')][0x2]?_0x93e98a[_0x0c6c('0x40')][0x2]['value']:undefined)||0x14},{'name':_0x0c6c('0x4f'),'value':_0x93e98a[_0x0c6c('0x4f')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a['attrs'][0x3]?_0x93e98a[_0x0c6c('0x40')][0x3][_0x0c6c('0x41')]:undefined)||_0x0c6c('0x50')},{'name':_0x0c6c('0x51'),'value':_0x93e98a['attrEmailAccounts']||(_0x93e98a['attrs']&&_0x93e98a[_0x0c6c('0x40')][0x4]?_0x93e98a[_0x0c6c('0x40')][0x4][_0x0c6c('0x41')]:undefined)||''},{'name':_0x0c6c('0x52'),'value':_0x93e98a[_0x0c6c('0x52')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x5]?_0x93e98a[_0x0c6c('0x40')][0x5][_0x0c6c('0x41')]:undefined)||''},{'name':'attrSmsAccounts','value':_0x93e98a[_0x0c6c('0x53')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x6]?_0x93e98a[_0x0c6c('0x40')][0x6][_0x0c6c('0x41')]:undefined)||''},{'name':_0x0c6c('0x54'),'value':_0x93e98a[_0x0c6c('0x54')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x7]?_0x93e98a[_0x0c6c('0x40')][0x7][_0x0c6c('0x41')]:undefined)||''},{'name':_0x0c6c('0x55'),'value':_0x93e98a[_0x0c6c('0x55')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a['attrs'][0x8]?_0x93e98a[_0x0c6c('0x40')][0x8][_0x0c6c('0x41')]:undefined)||''},{'name':_0x0c6c('0x56'),'value':_0x93e98a['attrChatWebsites']||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x9]?_0x93e98a[_0x0c6c('0x40')][0x9][_0x0c6c('0x41')]:undefined)||''}];case'multibar-chart':case _0x0c6c('0x57'):return[{'name':'attrSerie1','value':_0x93e98a[_0x0c6c('0x58')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x0]?_0x93e98a[_0x0c6c('0x40')][0x0]['value']:undefined)||_0x0c6c('0x4d')},{'name':_0x0c6c('0x59'),'value':_0x93e98a[_0x0c6c('0x59')]||(_0x93e98a['attrs']&&_0x93e98a[_0x0c6c('0x40')][0x1]?_0x93e98a[_0x0c6c('0x40')][0x1][_0x0c6c('0x41')]:undefined)||null},{'name':'attrSerie3','value':_0x93e98a[_0x0c6c('0x5a')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x2]?_0x93e98a[_0x0c6c('0x40')][0x2][_0x0c6c('0x41')]:undefined)||null},{'name':_0x0c6c('0x4e'),'value':_0x93e98a[_0x0c6c('0x4e')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a['attrs'][0x3]?_0x93e98a[_0x0c6c('0x40')][0x3][_0x0c6c('0x41')]:undefined)||[]},{'name':_0x0c6c('0x4f'),'value':_0x93e98a[_0x0c6c('0x4f')]||(_0x93e98a['attrs']&&_0x93e98a[_0x0c6c('0x40')][0x4]?_0x93e98a[_0x0c6c('0x40')][0x4][_0x0c6c('0x41')]:undefined)||_0x0c6c('0x50')},{'name':'attrEmailAccounts','value':_0x93e98a[_0x0c6c('0x51')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a['attrs'][0x5]?_0x93e98a[_0x0c6c('0x40')][0x5][_0x0c6c('0x41')]:undefined)||''},{'name':_0x0c6c('0x52'),'value':_0x93e98a[_0x0c6c('0x52')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x6]?_0x93e98a['attrs'][0x6][_0x0c6c('0x41')]:undefined)||''},{'name':_0x0c6c('0x53'),'value':_0x93e98a[_0x0c6c('0x53')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x7]?_0x93e98a[_0x0c6c('0x40')][0x7][_0x0c6c('0x41')]:undefined)||''},{'name':_0x0c6c('0x54'),'value':_0x93e98a[_0x0c6c('0x54')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x8]?_0x93e98a[_0x0c6c('0x40')][0x8][_0x0c6c('0x41')]:undefined)||''},{'name':_0x0c6c('0x55'),'value':_0x93e98a[_0x0c6c('0x55')]||(_0x93e98a['attrs']&&_0x93e98a[_0x0c6c('0x40')][0x9]?_0x93e98a['attrs'][0x9][_0x0c6c('0x41')]:undefined)||''},{'name':_0x0c6c('0x56'),'value':_0x93e98a['attrChatWebsites']||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a['attrs'][0xa]?_0x93e98a[_0x0c6c('0x40')][0xa][_0x0c6c('0x41')]:undefined)||''}];case _0x0c6c('0x5b'):return[{'name':_0x0c6c('0x5c'),'type':_0x93e98a[_0x0c6c('0x5d')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x0]?_0x93e98a[_0x0c6c('0x40')][0x0][_0x0c6c('0x3d')]:undefined)||null,'value':_0x93e98a['attrReport']||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x0]?_0x93e98a['attrs'][0x0][_0x0c6c('0x41')]:undefined)||null},{'name':_0x0c6c('0x5e'),'value':_0x93e98a[_0x0c6c('0x5e')]||(_0x93e98a[_0x0c6c('0x40')]&&_0x93e98a[_0x0c6c('0x40')][0x1]?_0x93e98a['attrs'][0x1][_0x0c6c('0x41')]:undefined)||0x0}];default:return[];}}catch(_0x5af6ad){logger[_0x0c6c('0x2c')](_0x0c6c('0x5f'),JSON[_0x0c6c('0x60')](_0x5af6ad));return[];}}exports[_0x0c6c('0x61')]=function(_0x5515d7,_0x954c67){if(_0x5515d7[_0x0c6c('0x62')]){_0x5515d7['body'][_0x0c6c('0x40')]=widgetAttributes(_0x5515d7[_0x0c6c('0x62')]);}return db['DashboardItem'][_0x0c6c('0x61')](_0x5515d7[_0x0c6c('0x62')],{})[_0x0c6c('0x2a')](respondWithResult(_0x954c67,0xc9))['catch'](handleError(_0x954c67,null));};exports['update']=function(_0x2799f6,_0x34cd72){if(_0x2799f6[_0x0c6c('0x62')]['id']){delete _0x2799f6['body']['id'];}_0x2799f6['body'][_0x0c6c('0x40')]=widgetAttributes(_0x2799f6['body']);return db[_0x0c6c('0x32')][_0x0c6c('0x3b')]({'where':{'id':_0x2799f6[_0x0c6c('0x63')]['id']}})[_0x0c6c('0x2a')](handleEntityNotFound(_0x34cd72,null))[_0x0c6c('0x2a')](saveUpdates(_0x2799f6['body'],null))['then'](respondWithResult(_0x34cd72,null))[_0x0c6c('0x3c')](handleError(_0x34cd72,null));};