02438cc504bc4a4e173384d2ad9c23fe845926d1
[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 _0x5b92=['request-promise','moment','path','sox','to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','then','destroy','error','name','show','params','model','DashboardItem','rawAttributes','query','filters','attributes','intersection','fields','length','includeAll','include','merge','options','find','catch','type','iframe','attrUrl','attrs','value','custom','attrPath','attrHourFormat','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','stringify','create','body','update','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch'];(function(_0x12aaee,_0x5bf50c){var _0x37c350=function(_0x182775){while(--_0x182775){_0x12aaee['push'](_0x12aaee['shift']());}};_0x37c350(++_0x5bf50c);}(_0x5b92,0x109));var _0x25b9=function(_0xae7c2f,_0xf31e04){_0xae7c2f=_0xae7c2f-0x0;var _0x5d7001=_0x5b92[_0xae7c2f];return _0x5d7001;};'use strict';var pdf=require(_0x25b9('0x0'));var emlformat=require(_0x25b9('0x1'));var rimraf=require(_0x25b9('0x2'));var zipdir=require(_0x25b9('0x3'));var jsonpatch=require(_0x25b9('0x4'));var rp=require(_0x25b9('0x5'));var moment=require(_0x25b9('0x6'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x25b9('0x7'));var sox=require(_0x25b9('0x8'));var csv=require(_0x25b9('0x9'));var ejs=require(_0x25b9('0xa'));var fs=require('fs');var _=require(_0x25b9('0xb'));var squel=require('squel');var crypto=require(_0x25b9('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x25b9('0xd'));var toCsv=require(_0x25b9('0x9'));var querystring=require(_0x25b9('0xe'));var Papa=require(_0x25b9('0xf'));var Redis=require(_0x25b9('0x10'));var authService=require(_0x25b9('0x11'));var qs=require(_0x25b9('0x12'));var as=require(_0x25b9('0x13'));var hardwareService=require(_0x25b9('0x14'));var logger=require('../../config/logger')(_0x25b9('0x15'));var utils=require(_0x25b9('0x16'));var config=require(_0x25b9('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x25b9('0x18'))['db'];config[_0x25b9('0x19')]=_[_0x25b9('0x1a')](config[_0x25b9('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0x25b9('0x1b'))(new Redis(config[_0x25b9('0x19')]));require(_0x25b9('0x1c'))[_0x25b9('0x1d')](socket);function respondWithStatusCode(_0x4f6304,_0x355862){_0x355862=_0x355862||0xcc;return function(_0xdd46cc){if(_0xdd46cc){return _0x4f6304[_0x25b9('0x1e')](_0x355862);}return _0x4f6304[_0x25b9('0x1f')](_0x355862)[_0x25b9('0x20')]();};}function respondWithResult(_0x271712,_0x528481){_0x528481=_0x528481||0xc8;return function(_0x572d98){if(_0x572d98){return _0x271712[_0x25b9('0x1f')](_0x528481)[_0x25b9('0x21')](_0x572d98);}};}function respondWithFilteredResult(_0x499bd3,_0x37c282){return function(_0x4b9a44){if(_0x4b9a44){var _0x46f565=_0x4b9a44[_0x25b9('0x22')],_0x418aac=_0x37c282['offset'],_0x1396e4=_0x37c282[_0x25b9('0x23')]+_0x37c282[_0x25b9('0x24')],_0x5d0d37;if(_0x1396e4>=_0x46f565){_0x1396e4=_0x46f565;_0x5d0d37=0xc8;}else{_0x5d0d37=0xce;}_0x499bd3[_0x25b9('0x1f')](_0x5d0d37);return _0x499bd3[_0x25b9('0x25')](_0x25b9('0x26'),_0x418aac+'-'+_0x1396e4+'/'+_0x46f565)['json'](_0x4b9a44);}return null;};}function patchUpdates(_0x140a14){return function(_0x52f0ad){try{jsonpatch[_0x25b9('0x27')](_0x52f0ad,_0x140a14,!![]);}catch(_0x31baed){return BPromise[_0x25b9('0x28')](_0x31baed);}return _0x52f0ad[_0x25b9('0x29')]();};}function saveUpdates(_0x182254,_0x5e8e5e){return function(_0x5a1f55){if(_0x5a1f55){return _0x5a1f55['update'](_0x182254)[_0x25b9('0x2a')](function(_0x4ea6c8){return _0x4ea6c8;});}return null;};}function removeEntity(_0x53aa74,_0x345a4c){return function(_0x1a9e55){if(_0x1a9e55){return _0x1a9e55[_0x25b9('0x2b')]()['then'](function(){_0x53aa74[_0x25b9('0x1f')](0xcc)[_0x25b9('0x20')]();});}};}function handleEntityNotFound(_0x443cf3,_0x394f07){return function(_0x42cb35){if(!_0x42cb35){_0x443cf3[_0x25b9('0x1e')](0x194);}return _0x42cb35;};}function handleError(_0x27f4f4,_0x4f6966){_0x4f6966=_0x4f6966||0x1f4;return function(_0x298cd7){logger[_0x25b9('0x2c')](_0x298cd7['stack']);if(_0x298cd7[_0x25b9('0x2d')]){delete _0x298cd7['name'];}_0x27f4f4['status'](_0x4f6966)['send'](_0x298cd7);};}exports[_0x25b9('0x2e')]=function(_0x2674cf,_0x34a586){var _0x5bdedc={'raw':![],'where':{'id':_0x2674cf[_0x25b9('0x2f')]['id']}},_0xa5f4ad={};_0xa5f4ad[_0x25b9('0x30')]=_['keys'](db[_0x25b9('0x31')][_0x25b9('0x32')]);_0xa5f4ad[_0x25b9('0x33')]=_['keys'](_0x2674cf[_0x25b9('0x33')]);_0xa5f4ad[_0x25b9('0x34')]=_['intersection'](_0xa5f4ad['model'],_0xa5f4ad[_0x25b9('0x33')]);_0x5bdedc[_0x25b9('0x35')]=_[_0x25b9('0x36')](_0xa5f4ad[_0x25b9('0x30')],qs[_0x25b9('0x37')](_0x2674cf[_0x25b9('0x33')][_0x25b9('0x37')]));_0x5bdedc[_0x25b9('0x35')]=_0x5bdedc[_0x25b9('0x35')][_0x25b9('0x38')]?_0x5bdedc[_0x25b9('0x35')]:_0xa5f4ad[_0x25b9('0x30')];if(_0x2674cf[_0x25b9('0x33')][_0x25b9('0x39')]){_0x5bdedc[_0x25b9('0x3a')]=[{'all':!![]}];}_0x5bdedc=_[_0x25b9('0x3b')]({},_0x5bdedc,_0x2674cf[_0x25b9('0x3c')]);return db[_0x25b9('0x31')][_0x25b9('0x3d')](_0x5bdedc)[_0x25b9('0x2a')](handleEntityNotFound(_0x34a586,null))[_0x25b9('0x2a')](respondWithResult(_0x34a586,null))[_0x25b9('0x3e')](handleError(_0x34a586,null));};exports[_0x25b9('0x2b')]=function(_0x5e2d0a,_0x1411a7){return db[_0x25b9('0x31')]['find']({'where':{'id':_0x5e2d0a[_0x25b9('0x2f')]['id']}})[_0x25b9('0x2a')](handleEntityNotFound(_0x1411a7,null))[_0x25b9('0x2a')](removeEntity(_0x1411a7,null))[_0x25b9('0x3e')](handleError(_0x1411a7,null));};function widgetAttributes(_0x2c8030){try{switch(_0x2c8030[_0x25b9('0x3f')]){case _0x25b9('0x40'):return[{'name':_0x25b9('0x41'),'value':_0x2c8030[_0x25b9('0x41')]||(_0x2c8030['attrs']&&_0x2c8030['attrs'][0x0]?_0x2c8030[_0x25b9('0x42')][0x0][_0x25b9('0x43')]:undefined)||'https://'}];case _0x25b9('0x44'):return[{'name':_0x25b9('0x45'),'value':_0x2c8030['attrPath']||(_0x2c8030[_0x25b9('0x42')]&&_0x2c8030['attrs'][0x0]?_0x2c8030[_0x25b9('0x42')][0x0][_0x25b9('0x43')]:undefined)||''}];case'clock':return[{'name':_0x25b9('0x46'),'value':_0x2c8030[_0x25b9('0x46')]||(_0x2c8030[_0x25b9('0x42')]&&_0x2c8030[_0x25b9('0x42')][0x0]?_0x2c8030['attrs'][0x0][_0x25b9('0x43')]:undefined)||'HH:mm:ss'},{'name':_0x25b9('0x47'),'value':_0x2c8030[_0x25b9('0x47')]||(_0x2c8030['attrs']&&_0x2c8030[_0x25b9('0x42')][0x1]?_0x2c8030[_0x25b9('0x42')][0x1][_0x25b9('0x43')]:undefined)||_0x25b9('0x48')},{'name':'attrFontSize','value':_0x2c8030[_0x25b9('0x49')]||(_0x2c8030[_0x25b9('0x42')]&&_0x2c8030[_0x25b9('0x42')][0x2]?_0x2c8030[_0x25b9('0x42')][0x2][_0x25b9('0x43')]:undefined)||0xc}];case _0x25b9('0x4a'):return[{'name':'attrMetric','value':_0x2c8030[_0x25b9('0x4b')]||(_0x2c8030[_0x25b9('0x42')]&&_0x2c8030['attrs'][0x0]?_0x2c8030[_0x25b9('0x42')][0x0][_0x25b9('0x43')]:undefined)||_0x25b9('0x4c')},{'name':_0x25b9('0x4d'),'value':_0x2c8030['attrVoiceQueues']||(_0x2c8030[_0x25b9('0x42')]&&_0x2c8030[_0x25b9('0x42')][0x1]?_0x2c8030['attrs'][0x1][_0x25b9('0x43')]:undefined)||[]},{'name':'attrFontSize','value':_0x2c8030[_0x25b9('0x49')]||(_0x2c8030[_0x25b9('0x42')]&&_0x2c8030['attrs'][0x2]?_0x2c8030[_0x25b9('0x42')][0x2]['value']:undefined)||0x14}];case _0x25b9('0x4e'):case _0x25b9('0x4f'):return[{'name':'attrSerie1','value':_0x2c8030['attrSerie1']||(_0x2c8030['attrs']&&_0x2c8030[_0x25b9('0x42')][0x0]?_0x2c8030['attrs'][0x0][_0x25b9('0x43')]:undefined)||_0x25b9('0x4c')},{'name':_0x25b9('0x50'),'value':_0x2c8030[_0x25b9('0x50')]||(_0x2c8030[_0x25b9('0x42')]&&_0x2c8030['attrs'][0x1]?_0x2c8030[_0x25b9('0x42')][0x1]['value']:undefined)||null},{'name':_0x25b9('0x51'),'value':_0x2c8030['attrSerie3']||(_0x2c8030['attrs']&&_0x2c8030[_0x25b9('0x42')][0x2]?_0x2c8030[_0x25b9('0x42')][0x2][_0x25b9('0x43')]:undefined)||null},{'name':_0x25b9('0x4d'),'value':_0x2c8030[_0x25b9('0x4d')]||(_0x2c8030[_0x25b9('0x42')]&&_0x2c8030[_0x25b9('0x42')][0x3]?_0x2c8030[_0x25b9('0x42')][0x3][_0x25b9('0x43')]:undefined)||[]}];case _0x25b9('0x52'):return[{'name':_0x25b9('0x53'),'type':_0x2c8030[_0x25b9('0x54')]||(_0x2c8030[_0x25b9('0x42')]&&_0x2c8030['attrs'][0x0]?_0x2c8030[_0x25b9('0x42')][0x0][_0x25b9('0x3f')]:undefined)||null,'value':_0x2c8030[_0x25b9('0x53')]||(_0x2c8030[_0x25b9('0x42')]&&_0x2c8030['attrs'][0x0]?_0x2c8030[_0x25b9('0x42')][0x0]['value']:undefined)||null},{'name':_0x25b9('0x55'),'value':_0x2c8030[_0x25b9('0x55')]||(_0x2c8030[_0x25b9('0x42')]&&_0x2c8030[_0x25b9('0x42')][0x1]?_0x2c8030[_0x25b9('0x42')][0x1][_0x25b9('0x43')]:undefined)||0x0}];default:return[];}}catch(_0xd1ab58){logger[_0x25b9('0x2c')]('widgetAttributes:\x20%s',JSON[_0x25b9('0x56')](_0xd1ab58));return[];}}exports[_0x25b9('0x57')]=function(_0x4230b2,_0x291f9a){if(_0x4230b2[_0x25b9('0x58')]){_0x4230b2['body'][_0x25b9('0x42')]=widgetAttributes(_0x4230b2[_0x25b9('0x58')]);}return db[_0x25b9('0x31')]['create'](_0x4230b2[_0x25b9('0x58')],{})[_0x25b9('0x2a')](respondWithResult(_0x291f9a,0xc9))[_0x25b9('0x3e')](handleError(_0x291f9a,null));};exports[_0x25b9('0x59')]=function(_0x3c6591,_0xa3ce3f){if(_0x3c6591[_0x25b9('0x58')]['id']){delete _0x3c6591['body']['id'];}_0x3c6591[_0x25b9('0x58')]['attrs']=widgetAttributes(_0x3c6591[_0x25b9('0x58')]);return db[_0x25b9('0x31')][_0x25b9('0x3d')]({'where':{'id':_0x3c6591[_0x25b9('0x2f')]['id']}})[_0x25b9('0x2a')](handleEntityNotFound(_0xa3ce3f,null))['then'](saveUpdates(_0x3c6591['body'],null))[_0x25b9('0x2a')](respondWithResult(_0xa3ce3f,null))[_0x25b9('0x3e')](handleError(_0xa3ce3f,null));};