e39a89ca1b9007e389e7388189b3626e6d5bb80e
[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 _0x8f82=['multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','attrRefresh','error','widgetAttributes:\x20%s','stringify','body','html-pdf','eml-format','zip-dir','fast-json-patch','mustache','util','to-csv','lodash','squel','crypto','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','defaults','redis','localhost','./dashboardItem.socket','register','end','status','json','offset','set','Content-Range','apply','update','then','destroy','sendStatus','name','send','show','params','keys','DashboardItem','rawAttributes','query','intersection','model','attributes','fields','length','includeAll','merge','options','find','catch','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues'];(function(_0x141dd8,_0x48363d){var _0x348080=function(_0x3beb35){while(--_0x3beb35){_0x141dd8['push'](_0x141dd8['shift']());}};_0x348080(++_0x48363d);}(_0x8f82,0x10e));var _0x28f8=function(_0x241adf,_0x57e12d){_0x241adf=_0x241adf-0x0;var _0x58a0e3=_0x8f82[_0x241adf];return _0x58a0e3;};'use strict';var pdf=require(_0x28f8('0x0'));var emlformat=require(_0x28f8('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x28f8('0x2'));var jsonpatch=require(_0x28f8('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x28f8('0x4'));var util=require(_0x28f8('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0x28f8('0x6'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x28f8('0x7'));var squel=require(_0x28f8('0x8'));var crypto=require(_0x28f8('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x28f8('0xa'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x28f8('0xb'));var Redis=require(_0x28f8('0xc'));var authService=require(_0x28f8('0xd'));var qs=require(_0x28f8('0xe'));var as=require(_0x28f8('0xf'));var hardwareService=require(_0x28f8('0x10'));var logger=require(_0x28f8('0x11'))(_0x28f8('0x12'));var utils=require('../../config/utils');var config=require(_0x28f8('0x13'));var licenseUtil=require(_0x28f8('0x14'));var db=require(_0x28f8('0x15'))['db'];config['redis']=_[_0x28f8('0x16')](config[_0x28f8('0x17')],{'host':_0x28f8('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x28f8('0x17')]));require(_0x28f8('0x19'))[_0x28f8('0x1a')](socket);function respondWithStatusCode(_0x1956aa,_0x256dd9){_0x256dd9=_0x256dd9||0xcc;return function(_0x261624){if(_0x261624){return _0x1956aa['sendStatus'](_0x256dd9);}return _0x1956aa['status'](_0x256dd9)[_0x28f8('0x1b')]();};}function respondWithResult(_0x3d236d,_0x10780b){_0x10780b=_0x10780b||0xc8;return function(_0x23ca3e){if(_0x23ca3e){return _0x3d236d[_0x28f8('0x1c')](_0x10780b)[_0x28f8('0x1d')](_0x23ca3e);}};}function respondWithFilteredResult(_0x4c5022,_0x4d3333){return function(_0xd250df){if(_0xd250df){var _0x511934=_0xd250df['count'],_0x44e9b0=_0x4d3333[_0x28f8('0x1e')],_0x561e3c=_0x4d3333['offset']+_0x4d3333['limit'],_0x1c87aa;if(_0x561e3c>=_0x511934){_0x561e3c=_0x511934;_0x1c87aa=0xc8;}else{_0x1c87aa=0xce;}_0x4c5022['status'](_0x1c87aa);return _0x4c5022[_0x28f8('0x1f')](_0x28f8('0x20'),_0x44e9b0+'-'+_0x561e3c+'/'+_0x511934)[_0x28f8('0x1d')](_0xd250df);}return null;};}function patchUpdates(_0x3c59f0){return function(_0x584154){try{jsonpatch[_0x28f8('0x21')](_0x584154,_0x3c59f0,!![]);}catch(_0x495502){return BPromise['reject'](_0x495502);}return _0x584154['save']();};}function saveUpdates(_0x3ae34e,_0x5debf5){return function(_0x19af7f){if(_0x19af7f){return _0x19af7f[_0x28f8('0x22')](_0x3ae34e)[_0x28f8('0x23')](function(_0x46b7e1){return _0x46b7e1;});}return null;};}function removeEntity(_0x54c33c,_0x3bdf78){return function(_0x342540){if(_0x342540){return _0x342540[_0x28f8('0x24')]()['then'](function(){_0x54c33c['status'](0xcc)[_0x28f8('0x1b')]();});}};}function handleEntityNotFound(_0x1feb55,_0x28f3eb){return function(_0x324fb7){if(!_0x324fb7){_0x1feb55[_0x28f8('0x25')](0x194);}return _0x324fb7;};}function handleError(_0x2ef632,_0xbc18d){_0xbc18d=_0xbc18d||0x1f4;return function(_0x3b78e1){logger['error'](_0x3b78e1['stack']);if(_0x3b78e1[_0x28f8('0x26')]){delete _0x3b78e1[_0x28f8('0x26')];}_0x2ef632[_0x28f8('0x1c')](_0xbc18d)[_0x28f8('0x27')](_0x3b78e1);};}exports[_0x28f8('0x28')]=function(_0x4db749,_0x26fb29){var _0x38ee52={'raw':![],'where':{'id':_0x4db749[_0x28f8('0x29')]['id']}},_0x31b3e7={};_0x31b3e7['model']=_[_0x28f8('0x2a')](db[_0x28f8('0x2b')][_0x28f8('0x2c')]);_0x31b3e7[_0x28f8('0x2d')]=_[_0x28f8('0x2a')](_0x4db749[_0x28f8('0x2d')]);_0x31b3e7['filters']=_[_0x28f8('0x2e')](_0x31b3e7[_0x28f8('0x2f')],_0x31b3e7[_0x28f8('0x2d')]);_0x38ee52[_0x28f8('0x30')]=_[_0x28f8('0x2e')](_0x31b3e7['model'],qs[_0x28f8('0x31')](_0x4db749[_0x28f8('0x2d')][_0x28f8('0x31')]));_0x38ee52[_0x28f8('0x30')]=_0x38ee52[_0x28f8('0x30')][_0x28f8('0x32')]?_0x38ee52[_0x28f8('0x30')]:_0x31b3e7[_0x28f8('0x2f')];if(_0x4db749[_0x28f8('0x2d')][_0x28f8('0x33')]){_0x38ee52['include']=[{'all':!![]}];}_0x38ee52=_[_0x28f8('0x34')]({},_0x38ee52,_0x4db749[_0x28f8('0x35')]);return db[_0x28f8('0x2b')][_0x28f8('0x36')](_0x38ee52)['then'](handleEntityNotFound(_0x26fb29,null))[_0x28f8('0x23')](respondWithResult(_0x26fb29,null))[_0x28f8('0x37')](handleError(_0x26fb29,null));};exports[_0x28f8('0x24')]=function(_0x497194,_0x1168f8){return db[_0x28f8('0x2b')][_0x28f8('0x36')]({'where':{'id':_0x497194[_0x28f8('0x29')]['id']}})[_0x28f8('0x23')](handleEntityNotFound(_0x1168f8,null))[_0x28f8('0x23')](removeEntity(_0x1168f8,null))['catch'](handleError(_0x1168f8,null));};function widgetAttributes(_0x12e357){try{switch(_0x12e357[_0x28f8('0x38')]){case _0x28f8('0x39'):return[{'name':_0x28f8('0x3a'),'value':_0x12e357[_0x28f8('0x3a')]||(_0x12e357['attrs']&&_0x12e357[_0x28f8('0x3b')][0x0]?_0x12e357[_0x28f8('0x3b')][0x0][_0x28f8('0x3c')]:undefined)||_0x28f8('0x3d')}];case _0x28f8('0x3e'):return[{'name':_0x28f8('0x3f'),'value':_0x12e357[_0x28f8('0x3f')]||(_0x12e357[_0x28f8('0x3b')]&&_0x12e357[_0x28f8('0x3b')][0x0]?_0x12e357[_0x28f8('0x3b')][0x0][_0x28f8('0x3c')]:undefined)||''}];case _0x28f8('0x40'):return[{'name':_0x28f8('0x41'),'value':_0x12e357[_0x28f8('0x41')]||(_0x12e357['attrs']&&_0x12e357[_0x28f8('0x3b')][0x0]?_0x12e357[_0x28f8('0x3b')][0x0][_0x28f8('0x3c')]:undefined)||_0x28f8('0x42')},{'name':_0x28f8('0x43'),'value':_0x12e357['attrTimezone']||(_0x12e357[_0x28f8('0x3b')]&&_0x12e357[_0x28f8('0x3b')][0x1]?_0x12e357[_0x28f8('0x3b')][0x1][_0x28f8('0x3c')]:undefined)||_0x28f8('0x44')},{'name':_0x28f8('0x45'),'value':_0x12e357[_0x28f8('0x45')]||(_0x12e357['attrs']&&_0x12e357[_0x28f8('0x3b')][0x2]?_0x12e357[_0x28f8('0x3b')][0x2][_0x28f8('0x3c')]:undefined)||0xc}];case _0x28f8('0x46'):return[{'name':_0x28f8('0x47'),'value':_0x12e357[_0x28f8('0x47')]||(_0x12e357[_0x28f8('0x3b')]&&_0x12e357[_0x28f8('0x3b')][0x0]?_0x12e357[_0x28f8('0x3b')][0x0][_0x28f8('0x3c')]:undefined)||_0x28f8('0x48')},{'name':_0x28f8('0x49'),'value':_0x12e357[_0x28f8('0x49')]||(_0x12e357[_0x28f8('0x3b')]&&_0x12e357[_0x28f8('0x3b')][0x1]?_0x12e357[_0x28f8('0x3b')][0x1][_0x28f8('0x3c')]:undefined)||[]},{'name':_0x28f8('0x45'),'value':_0x12e357['attrFontSize']||(_0x12e357[_0x28f8('0x3b')]&&_0x12e357[_0x28f8('0x3b')][0x2]?_0x12e357['attrs'][0x2]['value']:undefined)||0x14}];case _0x28f8('0x4a'):case _0x28f8('0x4b'):return[{'name':_0x28f8('0x4c'),'value':_0x12e357[_0x28f8('0x4c')]||(_0x12e357[_0x28f8('0x3b')]&&_0x12e357['attrs'][0x0]?_0x12e357[_0x28f8('0x3b')][0x0][_0x28f8('0x3c')]:undefined)||_0x28f8('0x48')},{'name':_0x28f8('0x4d'),'value':_0x12e357[_0x28f8('0x4d')]||(_0x12e357[_0x28f8('0x3b')]&&_0x12e357['attrs'][0x1]?_0x12e357['attrs'][0x1][_0x28f8('0x3c')]:undefined)||null},{'name':_0x28f8('0x4e'),'value':_0x12e357['attrSerie3']||(_0x12e357[_0x28f8('0x3b')]&&_0x12e357[_0x28f8('0x3b')][0x2]?_0x12e357[_0x28f8('0x3b')][0x2][_0x28f8('0x3c')]:undefined)||null},{'name':_0x28f8('0x49'),'value':_0x12e357[_0x28f8('0x49')]||(_0x12e357[_0x28f8('0x3b')]&&_0x12e357['attrs'][0x3]?_0x12e357[_0x28f8('0x3b')][0x3][_0x28f8('0x3c')]:undefined)||[]}];case _0x28f8('0x4f'):return[{'name':'attrReport','type':_0x12e357['reportType']||(_0x12e357['attrs']&&_0x12e357[_0x28f8('0x3b')][0x0]?_0x12e357[_0x28f8('0x3b')][0x0][_0x28f8('0x38')]:undefined)||null,'value':_0x12e357[_0x28f8('0x50')]||(_0x12e357[_0x28f8('0x3b')]&&_0x12e357[_0x28f8('0x3b')][0x0]?_0x12e357[_0x28f8('0x3b')][0x0]['value']:undefined)||null},{'name':'attrRefresh','value':_0x12e357[_0x28f8('0x51')]||(_0x12e357[_0x28f8('0x3b')]&&_0x12e357['attrs'][0x1]?_0x12e357['attrs'][0x1][_0x28f8('0x3c')]:undefined)||0x0}];default:return[];}}catch(_0x92f7ef){logger[_0x28f8('0x52')](_0x28f8('0x53'),JSON[_0x28f8('0x54')](_0x92f7ef));return[];}}exports['create']=function(_0x4b6fb5,_0x2e0653){if(_0x4b6fb5[_0x28f8('0x55')]){_0x4b6fb5[_0x28f8('0x55')][_0x28f8('0x3b')]=widgetAttributes(_0x4b6fb5['body']);}return db[_0x28f8('0x2b')]['create'](_0x4b6fb5[_0x28f8('0x55')],{})[_0x28f8('0x23')](respondWithResult(_0x2e0653,0xc9))[_0x28f8('0x37')](handleError(_0x2e0653,null));};exports[_0x28f8('0x22')]=function(_0x19fc8d,_0x6a5d2f){if(_0x19fc8d[_0x28f8('0x55')]['id']){delete _0x19fc8d[_0x28f8('0x55')]['id'];}_0x19fc8d[_0x28f8('0x55')][_0x28f8('0x3b')]=widgetAttributes(_0x19fc8d[_0x28f8('0x55')]);return db['DashboardItem'][_0x28f8('0x36')]({'where':{'id':_0x19fc8d[_0x28f8('0x29')]['id']}})[_0x28f8('0x23')](handleEntityNotFound(_0x6a5d2f,null))['then'](saveUpdates(_0x19fc8d[_0x28f8('0x55')],null))[_0x28f8('0x23')](respondWithResult(_0x6a5d2f,null))[_0x28f8('0x37')](handleError(_0x6a5d2f,null));};