ae02e3bbda0403c6bd5a321bb51b37c032a596f1
[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 _0x553a=['merge','find','catch','DashboardItem','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','attrVoiceQueues','attrChannel','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','attrSerie1','total','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','update','rimraf','fast-json-patch','request-promise','moment','util','to-csv','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','register','status','offset','undefined','count','limit','set','Content-Range','reject','then','destroy','sendStatus','error','name','send','show','params','keys','rawAttributes','intersection','model','query','attributes','fields','includeAll','include'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x553a,0x192));var _0xa553=function(_0x272ed5,_0x174b1a){_0x272ed5=_0x272ed5-0x0;var _0x2e3657=_0x553a[_0x272ed5];return _0x2e3657;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa553('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa553('0x1'));var rp=require(_0xa553('0x2'));var moment=require(_0xa553('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xa553('0x4'));var path=require('path');var sox=require('sox');var csv=require(_0xa553('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa553('0x6'));var squel=require(_0xa553('0x7'));var crypto=require(_0xa553('0x8'));var jsforce=require('jsforce');var deskjs=require(_0xa553('0x9'));var toCsv=require('to-csv');var querystring=require(_0xa553('0xa'));var Papa=require(_0xa553('0xb'));var Redis=require(_0xa553('0xc'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xa553('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa553('0xe'))(_0xa553('0xf'));var utils=require(_0xa553('0x10'));var config=require('../../config/environment');var licenseUtil=require(_0xa553('0x11'));var db=require(_0xa553('0x12'))['db'];config[_0xa553('0x13')]=_['defaults'](config[_0xa553('0x13')],{'host':_0xa553('0x14'),'port':0x18eb});var socket=require(_0xa553('0x15'))(new Redis(config['redis']));require('./dashboardItem.socket')[_0xa553('0x16')](socket);function respondWithStatusCode(_0x26dcc5,_0x14b019){_0x14b019=_0x14b019||0xcc;return function(_0x37dd93){if(_0x37dd93){return _0x26dcc5['sendStatus'](_0x14b019);}return _0x26dcc5[_0xa553('0x17')](_0x14b019)['end']();};}function respondWithResult(_0xaedbbc,_0x5a1270){_0x5a1270=_0x5a1270||0xc8;return function(_0x509342){if(_0x509342){return _0xaedbbc[_0xa553('0x17')](_0x5a1270)['json'](_0x509342);}};}function respondWithFilteredResult(_0x453a3a,_0x11d237){return function(_0x30d91e){if(_0x30d91e){var _0x54a9f9=typeof _0x11d237[_0xa553('0x18')]===_0xa553('0x19')&&typeof _0x11d237['limit']===_0xa553('0x19');var _0x1b7c73=_0x30d91e['count'];var _0x1b83cb=_0x54a9f9?0x0:_0x11d237['offset'];var _0x309eb7=_0x54a9f9?_0x30d91e[_0xa553('0x1a')]:_0x11d237[_0xa553('0x18')]+_0x11d237[_0xa553('0x1b')];var _0x5792b9;if(_0x309eb7>=_0x1b7c73){_0x309eb7=_0x1b7c73;_0x5792b9=0xc8;}else{_0x5792b9=0xce;}_0x453a3a[_0xa553('0x17')](_0x5792b9);return _0x453a3a[_0xa553('0x1c')](_0xa553('0x1d'),_0x1b83cb+'-'+_0x309eb7+'/'+_0x1b7c73)['json'](_0x30d91e);}return null;};}function patchUpdates(_0x17b058){return function(_0x4b467d){try{jsonpatch['apply'](_0x4b467d,_0x17b058,!![]);}catch(_0xdead6a){return BPromise[_0xa553('0x1e')](_0xdead6a);}return _0x4b467d['save']();};}function saveUpdates(_0x306f1a,_0x1c95bd){return function(_0x23a79a){if(_0x23a79a){return _0x23a79a['update'](_0x306f1a)[_0xa553('0x1f')](function(_0x28fa86){return _0x28fa86;});}return null;};}function removeEntity(_0x22744c,_0x7b0d73){return function(_0x247ce3){if(_0x247ce3){return _0x247ce3[_0xa553('0x20')]()[_0xa553('0x1f')](function(){_0x22744c[_0xa553('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5632f1,_0x390bfd){return function(_0xa63ae2){if(!_0xa63ae2){_0x5632f1[_0xa553('0x21')](0x194);}return _0xa63ae2;};}function handleError(_0x1d7c3d,_0x5e8e31){_0x5e8e31=_0x5e8e31||0x1f4;return function(_0x407382){logger[_0xa553('0x22')](_0x407382['stack']);if(_0x407382[_0xa553('0x23')]){delete _0x407382[_0xa553('0x23')];}_0x1d7c3d[_0xa553('0x17')](_0x5e8e31)[_0xa553('0x24')](_0x407382);};}exports[_0xa553('0x25')]=function(_0x4f4027,_0x1090e0){var _0x2325a5={'raw':![],'where':{'id':_0x4f4027[_0xa553('0x26')]['id']}},_0x3f9351={};_0x3f9351['model']=_[_0xa553('0x27')](db['DashboardItem'][_0xa553('0x28')]);_0x3f9351['query']=_['keys'](_0x4f4027['query']);_0x3f9351['filters']=_[_0xa553('0x29')](_0x3f9351[_0xa553('0x2a')],_0x3f9351[_0xa553('0x2b')]);_0x2325a5[_0xa553('0x2c')]=_[_0xa553('0x29')](_0x3f9351['model'],qs[_0xa553('0x2d')](_0x4f4027['query'][_0xa553('0x2d')]));_0x2325a5[_0xa553('0x2c')]=_0x2325a5['attributes']['length']?_0x2325a5[_0xa553('0x2c')]:_0x3f9351[_0xa553('0x2a')];if(_0x4f4027[_0xa553('0x2b')][_0xa553('0x2e')]){_0x2325a5[_0xa553('0x2f')]=[{'all':!![]}];}_0x2325a5=_[_0xa553('0x30')]({},_0x2325a5,_0x4f4027['options']);return db['DashboardItem'][_0xa553('0x31')](_0x2325a5)['then'](handleEntityNotFound(_0x1090e0,null))['then'](respondWithResult(_0x1090e0,null))[_0xa553('0x32')](handleError(_0x1090e0,null));};exports[_0xa553('0x20')]=function(_0x216198,_0x3223d8){return db[_0xa553('0x33')][_0xa553('0x31')]({'where':{'id':_0x216198[_0xa553('0x26')]['id']}})[_0xa553('0x1f')](handleEntityNotFound(_0x3223d8,null))[_0xa553('0x1f')](removeEntity(_0x3223d8,null))[_0xa553('0x32')](handleError(_0x3223d8,null));};function widgetAttributes(_0x205520){try{switch(_0x205520[_0xa553('0x34')]){case _0xa553('0x35'):return[{'name':_0xa553('0x36'),'value':_0x205520[_0xa553('0x36')]||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x0]?_0x205520[_0xa553('0x37')][0x0][_0xa553('0x38')]:undefined)||_0xa553('0x39')}];case _0xa553('0x3a'):return[{'name':_0xa553('0x3b'),'value':_0x205520['attrPath']||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x0]?_0x205520[_0xa553('0x37')][0x0][_0xa553('0x38')]:undefined)||''}];case _0xa553('0x3c'):return[{'name':_0xa553('0x3d'),'value':_0x205520['attrHourFormat']||(_0x205520[_0xa553('0x37')]&&_0x205520['attrs'][0x0]?_0x205520[_0xa553('0x37')][0x0][_0xa553('0x38')]:undefined)||_0xa553('0x3e')},{'name':_0xa553('0x3f'),'value':_0x205520[_0xa553('0x3f')]||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x1]?_0x205520[_0xa553('0x37')][0x1][_0xa553('0x38')]:undefined)||_0xa553('0x40')},{'name':_0xa553('0x41'),'value':_0x205520['attrFontSize']||(_0x205520['attrs']&&_0x205520[_0xa553('0x37')][0x2]?_0x205520['attrs'][0x2][_0xa553('0x38')]:undefined)||0xc}];case _0xa553('0x42'):return[{'name':'attrMetric','value':_0x205520[_0xa553('0x43')]||(_0x205520[_0xa553('0x37')]&&_0x205520['attrs'][0x0]?_0x205520[_0xa553('0x37')][0x0][_0xa553('0x38')]:undefined)||'total'},{'name':_0xa553('0x44'),'value':_0x205520[_0xa553('0x44')]||(_0x205520['attrs']&&_0x205520[_0xa553('0x37')][0x1]?_0x205520[_0xa553('0x37')][0x1][_0xa553('0x38')]:undefined)||[]},{'name':_0xa553('0x41'),'value':_0x205520['attrFontSize']||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x2]?_0x205520[_0xa553('0x37')][0x2]['value']:undefined)||0x14},{'name':_0xa553('0x45'),'value':_0x205520[_0xa553('0x45')]||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x3]?_0x205520[_0xa553('0x37')][0x3][_0xa553('0x38')]:undefined)||'voice'},{'name':'attrEmailAccounts','value':_0x205520[_0xa553('0x46')]||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x4]?_0x205520[_0xa553('0x37')][0x4][_0xa553('0x38')]:undefined)||''},{'name':_0xa553('0x47'),'value':_0x205520[_0xa553('0x47')]||(_0x205520[_0xa553('0x37')]&&_0x205520['attrs'][0x5]?_0x205520[_0xa553('0x37')][0x5][_0xa553('0x38')]:undefined)||''},{'name':_0xa553('0x48'),'value':_0x205520[_0xa553('0x48')]||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x6]?_0x205520[_0xa553('0x37')][0x6][_0xa553('0x38')]:undefined)||''},{'name':_0xa553('0x49'),'value':_0x205520['attrOpenchannelAccounts']||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x7]?_0x205520['attrs'][0x7][_0xa553('0x38')]:undefined)||''},{'name':_0xa553('0x4a'),'value':_0x205520[_0xa553('0x4a')]||(_0x205520['attrs']&&_0x205520[_0xa553('0x37')][0x8]?_0x205520[_0xa553('0x37')][0x8][_0xa553('0x38')]:undefined)||''},{'name':'attrChatWebsites','value':_0x205520[_0xa553('0x4b')]||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x9]?_0x205520[_0xa553('0x37')][0x9][_0xa553('0x38')]:undefined)||''}];case _0xa553('0x4c'):case'pie-chart':return[{'name':_0xa553('0x4d'),'value':_0x205520['attrSerie1']||(_0x205520['attrs']&&_0x205520[_0xa553('0x37')][0x0]?_0x205520['attrs'][0x0][_0xa553('0x38')]:undefined)||_0xa553('0x4e')},{'name':_0xa553('0x4f'),'value':_0x205520[_0xa553('0x4f')]||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x1]?_0x205520[_0xa553('0x37')][0x1][_0xa553('0x38')]:undefined)||null},{'name':'attrSerie3','value':_0x205520[_0xa553('0x50')]||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x2]?_0x205520[_0xa553('0x37')][0x2][_0xa553('0x38')]:undefined)||null},{'name':_0xa553('0x44'),'value':_0x205520[_0xa553('0x44')]||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x3]?_0x205520['attrs'][0x3]['value']:undefined)||[]},{'name':_0xa553('0x45'),'value':_0x205520[_0xa553('0x45')]||(_0x205520[_0xa553('0x37')]&&_0x205520['attrs'][0x4]?_0x205520[_0xa553('0x37')][0x4]['value']:undefined)||'voice'},{'name':_0xa553('0x46'),'value':_0x205520[_0xa553('0x46')]||(_0x205520[_0xa553('0x37')]&&_0x205520['attrs'][0x5]?_0x205520[_0xa553('0x37')][0x5]['value']:undefined)||''},{'name':'attrFaxAccounts','value':_0x205520[_0xa553('0x47')]||(_0x205520['attrs']&&_0x205520[_0xa553('0x37')][0x6]?_0x205520[_0xa553('0x37')][0x6][_0xa553('0x38')]:undefined)||''},{'name':'attrSmsAccounts','value':_0x205520[_0xa553('0x48')]||(_0x205520['attrs']&&_0x205520[_0xa553('0x37')][0x7]?_0x205520[_0xa553('0x37')][0x7][_0xa553('0x38')]:undefined)||''},{'name':_0xa553('0x49'),'value':_0x205520['attrOpenchannelAccounts']||(_0x205520[_0xa553('0x37')]&&_0x205520['attrs'][0x8]?_0x205520[_0xa553('0x37')][0x8][_0xa553('0x38')]:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x205520[_0xa553('0x4a')]||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x9]?_0x205520['attrs'][0x9][_0xa553('0x38')]:undefined)||''},{'name':'attrChatWebsites','value':_0x205520['attrChatWebsites']||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0xa]?_0x205520['attrs'][0xa][_0xa553('0x38')]:undefined)||''}];case _0xa553('0x51'):return[{'name':_0xa553('0x52'),'type':_0x205520[_0xa553('0x53')]||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x0]?_0x205520[_0xa553('0x37')][0x0][_0xa553('0x34')]:undefined)||null,'value':_0x205520['attrReport']||(_0x205520[_0xa553('0x37')]&&_0x205520[_0xa553('0x37')][0x0]?_0x205520[_0xa553('0x37')][0x0]['value']:undefined)||null},{'name':_0xa553('0x54'),'value':_0x205520[_0xa553('0x54')]||(_0x205520['attrs']&&_0x205520['attrs'][0x1]?_0x205520[_0xa553('0x37')][0x1][_0xa553('0x38')]:undefined)||0x0}];default:return[];}}catch(_0xcb7487){logger[_0xa553('0x22')](_0xa553('0x55'),JSON[_0xa553('0x56')](_0xcb7487));return[];}}exports[_0xa553('0x57')]=function(_0x21038a,_0x465179){if(_0x21038a[_0xa553('0x58')]){_0x21038a[_0xa553('0x58')]['attrs']=widgetAttributes(_0x21038a['body']);}return db['DashboardItem'][_0xa553('0x57')](_0x21038a[_0xa553('0x58')],{})[_0xa553('0x1f')](respondWithResult(_0x465179,0xc9))[_0xa553('0x32')](handleError(_0x465179,null));};exports[_0xa553('0x59')]=function(_0x4018ca,_0x3ab97b){if(_0x4018ca[_0xa553('0x58')]['id']){delete _0x4018ca[_0xa553('0x58')]['id'];}_0x4018ca[_0xa553('0x58')]['attrs']=widgetAttributes(_0x4018ca[_0xa553('0x58')]);return db[_0xa553('0x33')]['find']({'where':{'id':_0x4018ca[_0xa553('0x26')]['id']}})[_0xa553('0x1f')](handleEntityNotFound(_0x3ab97b,null))[_0xa553('0x1f')](saveUpdates(_0x4018ca[_0xa553('0x58')],null))[_0xa553('0x1f')](respondWithResult(_0x3ab97b,null))[_0xa553('0x32')](handleError(_0x3ab97b,null));};