3d373fa095de53a2ecbf88774d41d2d283062841
[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 _0xa2be=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','count','offset','set','json','reject','save','then','destroy','error','stack','name','show','params','rawAttributes','query','intersection','model','fields','attributes','length','includeAll','merge','DashboardItem','find','catch','type','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','widgetAttributes:\x20%s','body','create','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa2be,0x18e));var _0xea2b=function(_0x5e3821,_0x240cca){_0x5e3821=_0x5e3821-0x0;var _0x466354=_0xa2be[_0x5e3821];return _0x466354;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xea2b('0x0'));var jsonpatch=require(_0xea2b('0x1'));var rp=require(_0xea2b('0x2'));var moment=require(_0xea2b('0x3'));var BPromise=require(_0xea2b('0x4'));var Mustache=require(_0xea2b('0x5'));var util=require(_0xea2b('0x6'));var path=require(_0xea2b('0x7'));var sox=require('sox');var csv=require(_0xea2b('0x8'));var ejs=require(_0xea2b('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0xea2b('0xa'));var crypto=require(_0xea2b('0xb'));var jsforce=require(_0xea2b('0xc'));var deskjs=require(_0xea2b('0xd'));var toCsv=require(_0xea2b('0x8'));var querystring=require('querystring');var Papa=require(_0xea2b('0xe'));var Redis=require(_0xea2b('0xf'));var authService=require(_0xea2b('0x10'));var qs=require(_0xea2b('0x11'));var as=require(_0xea2b('0x12'));var hardwareService=require(_0xea2b('0x13'));var logger=require(_0xea2b('0x14'))(_0xea2b('0x15'));var utils=require('../../config/utils');var config=require(_0xea2b('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xea2b('0x17'))['db'];config[_0xea2b('0x18')]=_[_0xea2b('0x19')](config[_0xea2b('0x18')],{'host':_0xea2b('0x1a'),'port':0x18eb});var socket=require(_0xea2b('0x1b'))(new Redis(config[_0xea2b('0x18')]));require('./dashboardItem.socket')[_0xea2b('0x1c')](socket);function respondWithStatusCode(_0x18f75b,_0x6c6b9f){_0x6c6b9f=_0x6c6b9f||0xcc;return function(_0x11cab9){if(_0x11cab9){return _0x18f75b[_0xea2b('0x1d')](_0x6c6b9f);}return _0x18f75b[_0xea2b('0x1e')](_0x6c6b9f)[_0xea2b('0x1f')]();};}function respondWithResult(_0x2da714,_0xb5bf8c){_0xb5bf8c=_0xb5bf8c||0xc8;return function(_0x195fb9){if(_0x195fb9){return _0x2da714[_0xea2b('0x1e')](_0xb5bf8c)['json'](_0x195fb9);}};}function respondWithFilteredResult(_0x42edbe,_0xfa4f1){return function(_0x2c0c56){if(_0x2c0c56){var _0xe8d43a=_0x2c0c56[_0xea2b('0x20')],_0x19e26a=_0xfa4f1[_0xea2b('0x21')],_0x25c6b9=_0xfa4f1[_0xea2b('0x21')]+_0xfa4f1['limit'],_0x1b19f0;if(_0x25c6b9>=_0xe8d43a){_0x25c6b9=_0xe8d43a;_0x1b19f0=0xc8;}else{_0x1b19f0=0xce;}_0x42edbe['status'](_0x1b19f0);return _0x42edbe[_0xea2b('0x22')]('Content-Range',_0x19e26a+'-'+_0x25c6b9+'/'+_0xe8d43a)[_0xea2b('0x23')](_0x2c0c56);}return null;};}function patchUpdates(_0x348b23){return function(_0x84d4b0){try{jsonpatch['apply'](_0x84d4b0,_0x348b23,!![]);}catch(_0x3da2c1){return BPromise[_0xea2b('0x24')](_0x3da2c1);}return _0x84d4b0[_0xea2b('0x25')]();};}function saveUpdates(_0x4335c6,_0x295c29){return function(_0x5636bd){if(_0x5636bd){return _0x5636bd['update'](_0x4335c6)[_0xea2b('0x26')](function(_0x51f7ea){return _0x51f7ea;});}return null;};}function removeEntity(_0x4f2644,_0x150822){return function(_0x42ab30){if(_0x42ab30){return _0x42ab30[_0xea2b('0x27')]()[_0xea2b('0x26')](function(){_0x4f2644['status'](0xcc)[_0xea2b('0x1f')]();});}};}function handleEntityNotFound(_0x2e91ab,_0x37e001){return function(_0x360c4){if(!_0x360c4){_0x2e91ab['sendStatus'](0x194);}return _0x360c4;};}function handleError(_0x5c9c76,_0x57b746){_0x57b746=_0x57b746||0x1f4;return function(_0x21bf95){logger[_0xea2b('0x28')](_0x21bf95[_0xea2b('0x29')]);if(_0x21bf95[_0xea2b('0x2a')]){delete _0x21bf95['name'];}_0x5c9c76[_0xea2b('0x1e')](_0x57b746)['send'](_0x21bf95);};}exports[_0xea2b('0x2b')]=function(_0x556361,_0x15722d){var _0x4125f8={'raw':![],'where':{'id':_0x556361[_0xea2b('0x2c')]['id']}},_0x2b9f58={};_0x2b9f58['model']=_['keys'](db['DashboardItem'][_0xea2b('0x2d')]);_0x2b9f58[_0xea2b('0x2e')]=_['keys'](_0x556361[_0xea2b('0x2e')]);_0x2b9f58['filters']=_[_0xea2b('0x2f')](_0x2b9f58[_0xea2b('0x30')],_0x2b9f58[_0xea2b('0x2e')]);_0x4125f8['attributes']=_[_0xea2b('0x2f')](_0x2b9f58['model'],qs['fields'](_0x556361['query'][_0xea2b('0x31')]));_0x4125f8[_0xea2b('0x32')]=_0x4125f8['attributes'][_0xea2b('0x33')]?_0x4125f8[_0xea2b('0x32')]:_0x2b9f58[_0xea2b('0x30')];if(_0x556361[_0xea2b('0x2e')][_0xea2b('0x34')]){_0x4125f8['include']=[{'all':!![]}];}_0x4125f8=_[_0xea2b('0x35')]({},_0x4125f8,_0x556361['options']);return db[_0xea2b('0x36')][_0xea2b('0x37')](_0x4125f8)[_0xea2b('0x26')](handleEntityNotFound(_0x15722d,null))[_0xea2b('0x26')](respondWithResult(_0x15722d,null))[_0xea2b('0x38')](handleError(_0x15722d,null));};exports['destroy']=function(_0x27ab0d,_0x38b730){return db['DashboardItem'][_0xea2b('0x37')]({'where':{'id':_0x27ab0d[_0xea2b('0x2c')]['id']}})[_0xea2b('0x26')](handleEntityNotFound(_0x38b730,null))[_0xea2b('0x26')](removeEntity(_0x38b730,null))[_0xea2b('0x38')](handleError(_0x38b730,null));};function widgetAttributes(_0x3692b0){try{switch(_0x3692b0[_0xea2b('0x39')]){case'iframe':return[{'name':_0xea2b('0x3a'),'value':_0x3692b0[_0xea2b('0x3a')]||(_0x3692b0[_0xea2b('0x3b')]&&_0x3692b0[_0xea2b('0x3b')][0x0]?_0x3692b0[_0xea2b('0x3b')][0x0][_0xea2b('0x3c')]:undefined)||_0xea2b('0x3d')}];case _0xea2b('0x3e'):return[{'name':'attrPath','value':_0x3692b0[_0xea2b('0x3f')]||(_0x3692b0[_0xea2b('0x3b')]&&_0x3692b0[_0xea2b('0x3b')][0x0]?_0x3692b0[_0xea2b('0x3b')][0x0]['value']:undefined)||''}];case _0xea2b('0x40'):return[{'name':_0xea2b('0x41'),'value':_0x3692b0[_0xea2b('0x41')]||(_0x3692b0[_0xea2b('0x3b')]&&_0x3692b0[_0xea2b('0x3b')][0x0]?_0x3692b0['attrs'][0x0][_0xea2b('0x3c')]:undefined)||'HH:mm:ss'},{'name':_0xea2b('0x42'),'value':_0x3692b0[_0xea2b('0x42')]||(_0x3692b0[_0xea2b('0x3b')]&&_0x3692b0['attrs'][0x1]?_0x3692b0[_0xea2b('0x3b')][0x1][_0xea2b('0x3c')]:undefined)||_0xea2b('0x43')},{'name':_0xea2b('0x44'),'value':_0x3692b0[_0xea2b('0x44')]||(_0x3692b0[_0xea2b('0x3b')]&&_0x3692b0['attrs'][0x2]?_0x3692b0[_0xea2b('0x3b')][0x2][_0xea2b('0x3c')]:undefined)||0xc}];case _0xea2b('0x45'):return[{'name':'attrMetric','value':_0x3692b0[_0xea2b('0x46')]||(_0x3692b0[_0xea2b('0x3b')]&&_0x3692b0['attrs'][0x0]?_0x3692b0[_0xea2b('0x3b')][0x0][_0xea2b('0x3c')]:undefined)||_0xea2b('0x47')},{'name':_0xea2b('0x48'),'value':_0x3692b0[_0xea2b('0x48')]||(_0x3692b0[_0xea2b('0x3b')]&&_0x3692b0['attrs'][0x1]?_0x3692b0[_0xea2b('0x3b')][0x1][_0xea2b('0x3c')]:undefined)||[]},{'name':_0xea2b('0x44'),'value':_0x3692b0[_0xea2b('0x44')]||(_0x3692b0[_0xea2b('0x3b')]&&_0x3692b0[_0xea2b('0x3b')][0x2]?_0x3692b0['attrs'][0x2][_0xea2b('0x3c')]:undefined)||0x14}];case _0xea2b('0x49'):case'pie-chart':return[{'name':'attrSerie1','value':_0x3692b0[_0xea2b('0x4a')]||(_0x3692b0[_0xea2b('0x3b')]&&_0x3692b0[_0xea2b('0x3b')][0x0]?_0x3692b0['attrs'][0x0][_0xea2b('0x3c')]:undefined)||_0xea2b('0x47')},{'name':_0xea2b('0x4b'),'value':_0x3692b0[_0xea2b('0x4b')]||(_0x3692b0[_0xea2b('0x3b')]&&_0x3692b0['attrs'][0x1]?_0x3692b0[_0xea2b('0x3b')][0x1]['value']:undefined)||null},{'name':'attrSerie3','value':_0x3692b0[_0xea2b('0x4c')]||(_0x3692b0['attrs']&&_0x3692b0[_0xea2b('0x3b')][0x2]?_0x3692b0['attrs'][0x2][_0xea2b('0x3c')]:undefined)||null},{'name':_0xea2b('0x48'),'value':_0x3692b0[_0xea2b('0x48')]||(_0x3692b0['attrs']&&_0x3692b0[_0xea2b('0x3b')][0x3]?_0x3692b0[_0xea2b('0x3b')][0x3][_0xea2b('0x3c')]:undefined)||[]}];case _0xea2b('0x4d'):return[{'name':_0xea2b('0x4e'),'type':_0x3692b0[_0xea2b('0x4f')]||(_0x3692b0[_0xea2b('0x3b')]&&_0x3692b0[_0xea2b('0x3b')][0x0]?_0x3692b0[_0xea2b('0x3b')][0x0][_0xea2b('0x39')]:undefined)||null,'value':_0x3692b0['attrReport']||(_0x3692b0[_0xea2b('0x3b')]&&_0x3692b0[_0xea2b('0x3b')][0x0]?_0x3692b0[_0xea2b('0x3b')][0x0][_0xea2b('0x3c')]:undefined)||null},{'name':'attrRefresh','value':_0x3692b0['attrRefresh']||(_0x3692b0['attrs']&&_0x3692b0[_0xea2b('0x3b')][0x1]?_0x3692b0[_0xea2b('0x3b')][0x1][_0xea2b('0x3c')]:undefined)||0x0}];default:return[];}}catch(_0x5c4a35){logger[_0xea2b('0x28')](_0xea2b('0x50'),JSON['stringify'](_0x5c4a35));return[];}}exports['create']=function(_0x2c7250,_0x22fc57){if(_0x2c7250['body']){_0x2c7250[_0xea2b('0x51')][_0xea2b('0x3b')]=widgetAttributes(_0x2c7250[_0xea2b('0x51')]);}return db[_0xea2b('0x36')][_0xea2b('0x52')](_0x2c7250['body'],{})[_0xea2b('0x26')](respondWithResult(_0x22fc57,0xc9))[_0xea2b('0x38')](handleError(_0x22fc57,null));};exports['update']=function(_0x2d8ed7,_0x1689e6){if(_0x2d8ed7[_0xea2b('0x51')]['id']){delete _0x2d8ed7['body']['id'];}_0x2d8ed7[_0xea2b('0x51')]['attrs']=widgetAttributes(_0x2d8ed7[_0xea2b('0x51')]);return db['DashboardItem'][_0xea2b('0x37')]({'where':{'id':_0x2d8ed7['params']['id']}})[_0xea2b('0x26')](handleEntityNotFound(_0x1689e6,null))[_0xea2b('0x26')](saveUpdates(_0x2d8ed7[_0xea2b('0x51')],null))[_0xea2b('0x26')](respondWithResult(_0x1689e6,null))[_0xea2b('0x38')](handleError(_0x1689e6,null));};