9505ab928747acecd05abf1a1c43e644ec3d5be5
[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 _0x29bc=['../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./dashboardItem.socket','sendStatus','end','status','json','offset','limit','set','Content-Range','reject','update','destroy','then','error','stack','name','params','model','keys','DashboardItem','rawAttributes','query','filters','intersection','attributes','fields','length','includeAll','merge','find','type','iframe','attrUrl','attrs','value','attrPath','attrHourFormat','HH:mm:ss','attrTimezone','attrFontSize','attrMetric','total','attrVoiceQueues','multibar-chart','attrSerie1','attrSerie3','attrReport','reportType','attrRefresh','create','body','catch','html-pdf','rimraf','zip-dir','request-promise','moment','mustache','util','sox','to-csv','lodash','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils'];(function(_0x458d79,_0x1e2cba){var _0x2f9b1b=function(_0x3172d8){while(--_0x3172d8){_0x458d79['push'](_0x458d79['shift']());}};_0x2f9b1b(++_0x1e2cba);}(_0x29bc,0x120));var _0xc29b=function(_0x38ced4,_0x24263f){_0x38ced4=_0x38ced4-0x0;var _0x547c07=_0x29bc[_0x38ced4];return _0x547c07;};'use strict';var pdf=require(_0xc29b('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xc29b('0x1'));var zipdir=require(_0xc29b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc29b('0x3'));var moment=require(_0xc29b('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xc29b('0x5'));var util=require(_0xc29b('0x6'));var path=require('path');var sox=require(_0xc29b('0x7'));var csv=require(_0xc29b('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xc29b('0x9'));var squel=require('squel');var crypto=require(_0xc29b('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xc29b('0xb'));var toCsv=require(_0xc29b('0x8'));var querystring=require(_0xc29b('0xc'));var Papa=require(_0xc29b('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xc29b('0xe'));var as=require(_0xc29b('0xf'));var hardwareService=require(_0xc29b('0x10'));var logger=require(_0xc29b('0x11'))(_0xc29b('0x12'));var utils=require(_0xc29b('0x13'));var config=require(_0xc29b('0x14'));var db=require(_0xc29b('0x15'))['db'];config[_0xc29b('0x16')]=_[_0xc29b('0x17')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xc29b('0x18'))(new Redis(config[_0xc29b('0x16')]));require(_0xc29b('0x19'))['register'](socket);function respondWithStatusCode(_0x165ede,_0x47644d){_0x47644d=_0x47644d||0xcc;return function(_0x1d646a){if(_0x1d646a){return _0x165ede[_0xc29b('0x1a')](_0x47644d);}return _0x165ede['status'](_0x47644d)[_0xc29b('0x1b')]();};}function respondWithResult(_0x244d93,_0x214116){_0x214116=_0x214116||0xc8;return function(_0x10bbe5){if(_0x10bbe5){return _0x244d93[_0xc29b('0x1c')](_0x214116)[_0xc29b('0x1d')](_0x10bbe5);}};}function respondWithFilteredResult(_0x216f02,_0xfe5b64){return function(_0x417747){if(_0x417747){var _0x52602c=_0x417747['count'],_0x59b84b=_0xfe5b64[_0xc29b('0x1e')],_0x5bc7be=_0xfe5b64[_0xc29b('0x1e')]+_0xfe5b64[_0xc29b('0x1f')],_0x53a623;if(_0x5bc7be>=_0x52602c){_0x5bc7be=_0x52602c;_0x53a623=0xc8;}else{_0x53a623=0xce;}_0x216f02[_0xc29b('0x1c')](_0x53a623);return _0x216f02[_0xc29b('0x20')](_0xc29b('0x21'),_0x59b84b+'-'+_0x5bc7be+'/'+_0x52602c)[_0xc29b('0x1d')](_0x417747);}return null;};}function patchUpdates(_0x19bf7e){return function(_0x18698a){try{jsonpatch['apply'](_0x18698a,_0x19bf7e,!![]);}catch(_0x2dd3d5){return BPromise[_0xc29b('0x22')](_0x2dd3d5);}return _0x18698a['save']();};}function saveUpdates(_0x2c4b65,_0x1585eb){return function(_0x5cc604){if(_0x5cc604){return _0x5cc604[_0xc29b('0x23')](_0x2c4b65)['then'](function(_0xfa116f){return _0xfa116f;});}return null;};}function removeEntity(_0xa0494f,_0xbcc708){return function(_0x5b7350){if(_0x5b7350){return _0x5b7350[_0xc29b('0x24')]()[_0xc29b('0x25')](function(){_0xa0494f[_0xc29b('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4de739,_0x593817){return function(_0x5d3712){if(!_0x5d3712){_0x4de739['sendStatus'](0x194);}return _0x5d3712;};}function handleError(_0x46fc84,_0x55838a){_0x55838a=_0x55838a||0x1f4;return function(_0x3f0093){logger[_0xc29b('0x26')](_0x3f0093[_0xc29b('0x27')]);if(_0x3f0093[_0xc29b('0x28')]){delete _0x3f0093['name'];}_0x46fc84[_0xc29b('0x1c')](_0x55838a)['send'](_0x3f0093);};}exports['show']=function(_0x5ddcb4,_0x931bbf){var _0x1f0875={'raw':![],'where':{'id':_0x5ddcb4[_0xc29b('0x29')]['id']}},_0x3c0df9={};_0x3c0df9[_0xc29b('0x2a')]=_[_0xc29b('0x2b')](db[_0xc29b('0x2c')][_0xc29b('0x2d')]);_0x3c0df9['query']=_[_0xc29b('0x2b')](_0x5ddcb4[_0xc29b('0x2e')]);_0x3c0df9[_0xc29b('0x2f')]=_[_0xc29b('0x30')](_0x3c0df9[_0xc29b('0x2a')],_0x3c0df9[_0xc29b('0x2e')]);_0x1f0875[_0xc29b('0x31')]=_[_0xc29b('0x30')](_0x3c0df9[_0xc29b('0x2a')],qs[_0xc29b('0x32')](_0x5ddcb4[_0xc29b('0x2e')][_0xc29b('0x32')]));_0x1f0875['attributes']=_0x1f0875[_0xc29b('0x31')][_0xc29b('0x33')]?_0x1f0875['attributes']:_0x3c0df9[_0xc29b('0x2a')];if(_0x5ddcb4[_0xc29b('0x2e')][_0xc29b('0x34')]){_0x1f0875['include']=[{'all':!![]}];}_0x1f0875=_[_0xc29b('0x35')]({},_0x1f0875,_0x5ddcb4['options']);return db[_0xc29b('0x2c')][_0xc29b('0x36')](_0x1f0875)[_0xc29b('0x25')](handleEntityNotFound(_0x931bbf,null))[_0xc29b('0x25')](respondWithResult(_0x931bbf,null))['catch'](handleError(_0x931bbf,null));};exports[_0xc29b('0x24')]=function(_0xacab44,_0x4b9799){return db[_0xc29b('0x2c')][_0xc29b('0x36')]({'where':{'id':_0xacab44['params']['id']}})[_0xc29b('0x25')](handleEntityNotFound(_0x4b9799,null))[_0xc29b('0x25')](removeEntity(_0x4b9799,null))['catch'](handleError(_0x4b9799,null));};function widgetAttributes(_0xc206ce){try{switch(_0xc206ce[_0xc29b('0x37')]){case _0xc29b('0x38'):return[{'name':_0xc29b('0x39'),'value':_0xc206ce[_0xc29b('0x39')]||(_0xc206ce[_0xc29b('0x3a')]&&_0xc206ce[_0xc29b('0x3a')][0x0]?_0xc206ce[_0xc29b('0x3a')][0x0][_0xc29b('0x3b')]:undefined)||'https://'}];case'custom':return[{'name':_0xc29b('0x3c'),'value':_0xc206ce[_0xc29b('0x3c')]||(_0xc206ce[_0xc29b('0x3a')]&&_0xc206ce[_0xc29b('0x3a')][0x0]?_0xc206ce[_0xc29b('0x3a')][0x0]['value']:undefined)||''}];case'clock':return[{'name':_0xc29b('0x3d'),'value':_0xc206ce[_0xc29b('0x3d')]||(_0xc206ce[_0xc29b('0x3a')]&&_0xc206ce[_0xc29b('0x3a')][0x0]?_0xc206ce[_0xc29b('0x3a')][0x0]['value']:undefined)||_0xc29b('0x3e')},{'name':_0xc29b('0x3f'),'value':_0xc206ce['attrTimezone']||(_0xc206ce[_0xc29b('0x3a')]&&_0xc206ce['attrs'][0x1]?_0xc206ce[_0xc29b('0x3a')][0x1][_0xc29b('0x3b')]:undefined)||'0.00'},{'name':_0xc29b('0x40'),'value':_0xc206ce[_0xc29b('0x40')]||(_0xc206ce[_0xc29b('0x3a')]&&_0xc206ce['attrs'][0x2]?_0xc206ce[_0xc29b('0x3a')][0x2][_0xc29b('0x3b')]:undefined)||0xc}];case'counter':return[{'name':_0xc29b('0x41'),'value':_0xc206ce['attrMetric']||(_0xc206ce[_0xc29b('0x3a')]&&_0xc206ce[_0xc29b('0x3a')][0x0]?_0xc206ce[_0xc29b('0x3a')][0x0][_0xc29b('0x3b')]:undefined)||_0xc29b('0x42')},{'name':_0xc29b('0x43'),'value':_0xc206ce[_0xc29b('0x43')]||(_0xc206ce[_0xc29b('0x3a')]&&_0xc206ce['attrs'][0x1]?_0xc206ce[_0xc29b('0x3a')][0x1][_0xc29b('0x3b')]:undefined)||[]},{'name':_0xc29b('0x40'),'value':_0xc206ce[_0xc29b('0x40')]||(_0xc206ce[_0xc29b('0x3a')]&&_0xc206ce[_0xc29b('0x3a')][0x2]?_0xc206ce[_0xc29b('0x3a')][0x2]['value']:undefined)||0x14}];case _0xc29b('0x44'):case'pie-chart':return[{'name':_0xc29b('0x45'),'value':_0xc206ce['attrSerie1']||(_0xc206ce['attrs']&&_0xc206ce['attrs'][0x0]?_0xc206ce[_0xc29b('0x3a')][0x0][_0xc29b('0x3b')]:undefined)||_0xc29b('0x42')},{'name':'attrSerie2','value':_0xc206ce['attrSerie2']||(_0xc206ce['attrs']&&_0xc206ce[_0xc29b('0x3a')][0x1]?_0xc206ce[_0xc29b('0x3a')][0x1][_0xc29b('0x3b')]:undefined)||null},{'name':_0xc29b('0x46'),'value':_0xc206ce[_0xc29b('0x46')]||(_0xc206ce[_0xc29b('0x3a')]&&_0xc206ce[_0xc29b('0x3a')][0x2]?_0xc206ce['attrs'][0x2][_0xc29b('0x3b')]:undefined)||null},{'name':'attrVoiceQueues','value':_0xc206ce['attrVoiceQueues']||(_0xc206ce[_0xc29b('0x3a')]&&_0xc206ce['attrs'][0x3]?_0xc206ce['attrs'][0x3][_0xc29b('0x3b')]:undefined)||[]}];case'web-report':return[{'name':_0xc29b('0x47'),'type':_0xc206ce[_0xc29b('0x48')]||(_0xc206ce[_0xc29b('0x3a')]&&_0xc206ce[_0xc29b('0x3a')][0x0]?_0xc206ce[_0xc29b('0x3a')][0x0][_0xc29b('0x37')]:undefined)||null,'value':_0xc206ce[_0xc29b('0x47')]||(_0xc206ce[_0xc29b('0x3a')]&&_0xc206ce[_0xc29b('0x3a')][0x0]?_0xc206ce[_0xc29b('0x3a')][0x0]['value']:undefined)||null},{'name':'attrRefresh','value':_0xc206ce[_0xc29b('0x49')]||(_0xc206ce[_0xc29b('0x3a')]&&_0xc206ce['attrs'][0x1]?_0xc206ce['attrs'][0x1][_0xc29b('0x3b')]:undefined)||0x0}];default:return[];}}catch(_0x594301){logger[_0xc29b('0x26')]('widgetAttributes:\x20%s',JSON['stringify'](_0x594301));return[];}}exports[_0xc29b('0x4a')]=function(_0x4663bc,_0xc4f7be){if(_0x4663bc['body']){_0x4663bc[_0xc29b('0x4b')][_0xc29b('0x3a')]=widgetAttributes(_0x4663bc[_0xc29b('0x4b')]);}return db['DashboardItem'][_0xc29b('0x4a')](_0x4663bc['body'],{})[_0xc29b('0x25')](respondWithResult(_0xc4f7be,0xc9))['catch'](handleError(_0xc4f7be,null));};exports[_0xc29b('0x23')]=function(_0x358d95,_0x1d0b6c){if(_0x358d95['body']['id']){delete _0x358d95[_0xc29b('0x4b')]['id'];}_0x358d95['body'][_0xc29b('0x3a')]=widgetAttributes(_0x358d95[_0xc29b('0x4b')]);return db[_0xc29b('0x2c')][_0xc29b('0x36')]({'where':{'id':_0x358d95[_0xc29b('0x29')]['id']}})[_0xc29b('0x25')](handleEntityNotFound(_0x1d0b6c,null))[_0xc29b('0x25')](saveUpdates(_0x358d95[_0xc29b('0x4b')],null))[_0xc29b('0x25')](respondWithResult(_0x1d0b6c,null))[_0xc29b('0x4c')](handleError(_0x1d0b6c,null));};