7843d85a4df1e2a62b703ced63f1cd1592796915
[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 _0x7505=['attrPath','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','attrVoiceQueues','pie-chart','attrSerie1','total','attrSerie2','attrSerie3','web-report','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','sendStatus','status','end','json','limit','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','params','keys','rawAttributes','query','filters','intersection','model','attributes','fields','length','includeAll','include','options','DashboardItem','find','catch','type','attrUrl','attrs','value','https://','custom'];(function(_0x50007c,_0x1cbf11){var _0x5c1ec7=function(_0x52d038){while(--_0x52d038){_0x50007c['push'](_0x50007c['shift']());}};_0x5c1ec7(++_0x1cbf11);}(_0x7505,0x126));var _0x5750=function(_0x881fe2,_0x4e7ab7){_0x881fe2=_0x881fe2-0x0;var _0x58e91a=_0x7505[_0x881fe2];return _0x58e91a;};'use strict';var pdf=require(_0x5750('0x0'));var emlformat=require(_0x5750('0x1'));var rimraf=require(_0x5750('0x2'));var zipdir=require(_0x5750('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x5750('0x4'));var moment=require(_0x5750('0x5'));var BPromise=require(_0x5750('0x6'));var Mustache=require(_0x5750('0x7'));var util=require(_0x5750('0x8'));var path=require(_0x5750('0x9'));var sox=require(_0x5750('0xa'));var csv=require(_0x5750('0xb'));var ejs=require(_0x5750('0xc'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x5750('0xd'));var jsforce=require(_0x5750('0xe'));var deskjs=require(_0x5750('0xf'));var toCsv=require(_0x5750('0xb'));var querystring=require(_0x5750('0x10'));var Papa=require(_0x5750('0x11'));var Redis=require(_0x5750('0x12'));var authService=require(_0x5750('0x13'));var qs=require(_0x5750('0x14'));var as=require(_0x5750('0x15'));var hardwareService=require(_0x5750('0x16'));var logger=require(_0x5750('0x17'))(_0x5750('0x18'));var utils=require(_0x5750('0x19'));var config=require(_0x5750('0x1a'));var db=require(_0x5750('0x1b'))['db'];config[_0x5750('0x1c')]=_[_0x5750('0x1d')](config[_0x5750('0x1c')],{'host':_0x5750('0x1e'),'port':0x18eb});var socket=require(_0x5750('0x1f'))(new Redis(config[_0x5750('0x1c')]));require('./dashboardItem.socket')['register'](socket);function respondWithStatusCode(_0x5c2503,_0x19cdc7){_0x19cdc7=_0x19cdc7||0xcc;return function(_0x11f7b1){if(_0x11f7b1){return _0x5c2503[_0x5750('0x20')](_0x19cdc7);}return _0x5c2503[_0x5750('0x21')](_0x19cdc7)[_0x5750('0x22')]();};}function respondWithResult(_0x1b01dc,_0x17807a){_0x17807a=_0x17807a||0xc8;return function(_0x3a45d7){if(_0x3a45d7){return _0x1b01dc[_0x5750('0x21')](_0x17807a)[_0x5750('0x23')](_0x3a45d7);}};}function respondWithFilteredResult(_0x15edec,_0x49bbad){return function(_0x201e0b){if(_0x201e0b){var _0x341165=_0x201e0b['count'],_0x43d124=_0x49bbad['offset'],_0x249209=_0x49bbad['offset']+_0x49bbad[_0x5750('0x24')],_0xdf2ac4;if(_0x249209>=_0x341165){_0x249209=_0x341165;_0xdf2ac4=0xc8;}else{_0xdf2ac4=0xce;}_0x15edec[_0x5750('0x21')](_0xdf2ac4);return _0x15edec[_0x5750('0x25')](_0x5750('0x26'),_0x43d124+'-'+_0x249209+'/'+_0x341165)[_0x5750('0x23')](_0x201e0b);}return null;};}function patchUpdates(_0x590b23){return function(_0x26b332){try{jsonpatch[_0x5750('0x27')](_0x26b332,_0x590b23,!![]);}catch(_0x198b2e){return BPromise[_0x5750('0x28')](_0x198b2e);}return _0x26b332[_0x5750('0x29')]();};}function saveUpdates(_0x155ad3,_0x28b3a3){return function(_0x603cb1){if(_0x603cb1){return _0x603cb1[_0x5750('0x2a')](_0x155ad3)[_0x5750('0x2b')](function(_0x42afa7){return _0x42afa7;});}return null;};}function removeEntity(_0x2e4eab,_0x152885){return function(_0x58ee82){if(_0x58ee82){return _0x58ee82[_0x5750('0x2c')]()[_0x5750('0x2b')](function(){_0x2e4eab[_0x5750('0x21')](0xcc)[_0x5750('0x22')]();});}};}function handleEntityNotFound(_0x51400f,_0x20ef94){return function(_0x38e4be){if(!_0x38e4be){_0x51400f[_0x5750('0x20')](0x194);}return _0x38e4be;};}function handleError(_0xe612fd,_0x5d6c69){_0x5d6c69=_0x5d6c69||0x1f4;return function(_0x4d95c4){logger['error'](_0x4d95c4[_0x5750('0x2d')]);if(_0x4d95c4[_0x5750('0x2e')]){delete _0x4d95c4['name'];}_0xe612fd['status'](_0x5d6c69)[_0x5750('0x2f')](_0x4d95c4);};}exports['show']=function(_0x9cefe8,_0x2b33e8){var _0x4f73f9={'raw':![],'where':{'id':_0x9cefe8[_0x5750('0x30')]['id']}},_0x229c77={};_0x229c77['model']=_[_0x5750('0x31')](db['DashboardItem'][_0x5750('0x32')]);_0x229c77[_0x5750('0x33')]=_['keys'](_0x9cefe8[_0x5750('0x33')]);_0x229c77[_0x5750('0x34')]=_[_0x5750('0x35')](_0x229c77[_0x5750('0x36')],_0x229c77[_0x5750('0x33')]);_0x4f73f9[_0x5750('0x37')]=_['intersection'](_0x229c77[_0x5750('0x36')],qs[_0x5750('0x38')](_0x9cefe8[_0x5750('0x33')]['fields']));_0x4f73f9[_0x5750('0x37')]=_0x4f73f9[_0x5750('0x37')][_0x5750('0x39')]?_0x4f73f9[_0x5750('0x37')]:_0x229c77[_0x5750('0x36')];if(_0x9cefe8['query'][_0x5750('0x3a')]){_0x4f73f9[_0x5750('0x3b')]=[{'all':!![]}];}_0x4f73f9=_['merge']({},_0x4f73f9,_0x9cefe8[_0x5750('0x3c')]);return db[_0x5750('0x3d')][_0x5750('0x3e')](_0x4f73f9)[_0x5750('0x2b')](handleEntityNotFound(_0x2b33e8,null))[_0x5750('0x2b')](respondWithResult(_0x2b33e8,null))[_0x5750('0x3f')](handleError(_0x2b33e8,null));};exports[_0x5750('0x2c')]=function(_0x9ad635,_0x12389e){return db[_0x5750('0x3d')]['find']({'where':{'id':_0x9ad635[_0x5750('0x30')]['id']}})[_0x5750('0x2b')](handleEntityNotFound(_0x12389e,null))['then'](removeEntity(_0x12389e,null))[_0x5750('0x3f')](handleError(_0x12389e,null));};function widgetAttributes(_0x1a4d5a){try{switch(_0x1a4d5a[_0x5750('0x40')]){case'iframe':return[{'name':_0x5750('0x41'),'value':_0x1a4d5a[_0x5750('0x41')]||(_0x1a4d5a['attrs']&&_0x1a4d5a[_0x5750('0x42')][0x0]?_0x1a4d5a[_0x5750('0x42')][0x0][_0x5750('0x43')]:undefined)||_0x5750('0x44')}];case _0x5750('0x45'):return[{'name':_0x5750('0x46'),'value':_0x1a4d5a[_0x5750('0x46')]||(_0x1a4d5a[_0x5750('0x42')]&&_0x1a4d5a[_0x5750('0x42')][0x0]?_0x1a4d5a[_0x5750('0x42')][0x0][_0x5750('0x43')]:undefined)||''}];case'clock':return[{'name':_0x5750('0x47'),'value':_0x1a4d5a[_0x5750('0x47')]||(_0x1a4d5a[_0x5750('0x42')]&&_0x1a4d5a['attrs'][0x0]?_0x1a4d5a['attrs'][0x0][_0x5750('0x43')]:undefined)||_0x5750('0x48')},{'name':_0x5750('0x49'),'value':_0x1a4d5a[_0x5750('0x49')]||(_0x1a4d5a[_0x5750('0x42')]&&_0x1a4d5a['attrs'][0x1]?_0x1a4d5a[_0x5750('0x42')][0x1][_0x5750('0x43')]:undefined)||_0x5750('0x4a')},{'name':'attrFontSize','value':_0x1a4d5a[_0x5750('0x4b')]||(_0x1a4d5a[_0x5750('0x42')]&&_0x1a4d5a[_0x5750('0x42')][0x2]?_0x1a4d5a[_0x5750('0x42')][0x2][_0x5750('0x43')]:undefined)||0xc}];case _0x5750('0x4c'):return[{'name':_0x5750('0x4d'),'value':_0x1a4d5a[_0x5750('0x4d')]||(_0x1a4d5a[_0x5750('0x42')]&&_0x1a4d5a[_0x5750('0x42')][0x0]?_0x1a4d5a[_0x5750('0x42')][0x0][_0x5750('0x43')]:undefined)||'total'},{'name':_0x5750('0x4e'),'value':_0x1a4d5a['attrVoiceQueues']||(_0x1a4d5a[_0x5750('0x42')]&&_0x1a4d5a[_0x5750('0x42')][0x1]?_0x1a4d5a[_0x5750('0x42')][0x1][_0x5750('0x43')]:undefined)||[]},{'name':'attrFontSize','value':_0x1a4d5a['attrFontSize']||(_0x1a4d5a['attrs']&&_0x1a4d5a['attrs'][0x2]?_0x1a4d5a[_0x5750('0x42')][0x2][_0x5750('0x43')]:undefined)||0x14}];case'multibar-chart':case _0x5750('0x4f'):return[{'name':'attrSerie1','value':_0x1a4d5a[_0x5750('0x50')]||(_0x1a4d5a[_0x5750('0x42')]&&_0x1a4d5a['attrs'][0x0]?_0x1a4d5a['attrs'][0x0][_0x5750('0x43')]:undefined)||_0x5750('0x51')},{'name':_0x5750('0x52'),'value':_0x1a4d5a[_0x5750('0x52')]||(_0x1a4d5a[_0x5750('0x42')]&&_0x1a4d5a[_0x5750('0x42')][0x1]?_0x1a4d5a[_0x5750('0x42')][0x1][_0x5750('0x43')]:undefined)||null},{'name':_0x5750('0x53'),'value':_0x1a4d5a[_0x5750('0x53')]||(_0x1a4d5a[_0x5750('0x42')]&&_0x1a4d5a['attrs'][0x2]?_0x1a4d5a['attrs'][0x2][_0x5750('0x43')]:undefined)||null},{'name':'attrVoiceQueues','value':_0x1a4d5a[_0x5750('0x4e')]||(_0x1a4d5a[_0x5750('0x42')]&&_0x1a4d5a['attrs'][0x3]?_0x1a4d5a[_0x5750('0x42')][0x3]['value']:undefined)||[]}];case _0x5750('0x54'):return[{'name':_0x5750('0x55'),'type':_0x1a4d5a['reportType']||(_0x1a4d5a['attrs']&&_0x1a4d5a[_0x5750('0x42')][0x0]?_0x1a4d5a['attrs'][0x0][_0x5750('0x40')]:undefined)||null,'value':_0x1a4d5a[_0x5750('0x55')]||(_0x1a4d5a[_0x5750('0x42')]&&_0x1a4d5a[_0x5750('0x42')][0x0]?_0x1a4d5a[_0x5750('0x42')][0x0][_0x5750('0x43')]:undefined)||null},{'name':_0x5750('0x56'),'value':_0x1a4d5a[_0x5750('0x56')]||(_0x1a4d5a[_0x5750('0x42')]&&_0x1a4d5a[_0x5750('0x42')][0x1]?_0x1a4d5a[_0x5750('0x42')][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x107431){logger['error'](_0x5750('0x57'),JSON[_0x5750('0x58')](_0x107431));return[];}}exports[_0x5750('0x59')]=function(_0xcafce8,_0x41ae6c){if(_0xcafce8[_0x5750('0x5a')]){_0xcafce8[_0x5750('0x5a')][_0x5750('0x42')]=widgetAttributes(_0xcafce8[_0x5750('0x5a')]);}return db[_0x5750('0x3d')]['create'](_0xcafce8[_0x5750('0x5a')],{})['then'](respondWithResult(_0x41ae6c,0xc9))[_0x5750('0x3f')](handleError(_0x41ae6c,null));};exports['update']=function(_0x3d8bb4,_0x534466){if(_0x3d8bb4[_0x5750('0x5a')]['id']){delete _0x3d8bb4[_0x5750('0x5a')]['id'];}_0x3d8bb4[_0x5750('0x5a')]['attrs']=widgetAttributes(_0x3d8bb4[_0x5750('0x5a')]);return db['DashboardItem']['find']({'where':{'id':_0x3d8bb4[_0x5750('0x30')]['id']}})['then'](handleEntityNotFound(_0x534466,null))[_0x5750('0x2b')](saveUpdates(_0x3d8bb4[_0x5750('0x5a')],null))[_0x5750('0x2b')](respondWithResult(_0x534466,null))[_0x5750('0x3f')](handleError(_0x534466,null));};