66e49622d57253442ee5f9a88673187b82b2992f
[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 _0x4017=['../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','error','stack','name','send','model','keys','DashboardItem','rawAttributes','query','filters','intersection','attributes','fields','length','includeAll','include','merge','then','catch','destroy','find','params','type','iframe','attrUrl','attrs','value','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','body','create','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','lodash','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment'];(function(_0x2501a4,_0x3b9f6b){var _0x222197=function(_0x20961d){while(--_0x20961d){_0x2501a4['push'](_0x2501a4['shift']());}};_0x222197(++_0x3b9f6b);}(_0x4017,0x1b5));var _0x7401=function(_0x397a44,_0x4145f6){_0x397a44=_0x397a44-0x0;var _0x333b00=_0x4017[_0x397a44];return _0x333b00;};'use strict';var pdf=require(_0x7401('0x0'));var emlformat=require(_0x7401('0x1'));var rimraf=require(_0x7401('0x2'));var zipdir=require(_0x7401('0x3'));var jsonpatch=require(_0x7401('0x4'));var rp=require(_0x7401('0x5'));var moment=require('moment');var BPromise=require(_0x7401('0x6'));var Mustache=require(_0x7401('0x7'));var util=require('util');var path=require(_0x7401('0x8'));var sox=require(_0x7401('0x9'));var csv=require(_0x7401('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x7401('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x7401('0xc'));var deskjs=require(_0x7401('0xd'));var toCsv=require(_0x7401('0xa'));var querystring=require(_0x7401('0xe'));var Papa=require('papaparse');var Redis=require(_0x7401('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x7401('0x10'));var as=require(_0x7401('0x11'));var hardwareService=require(_0x7401('0x12'));var logger=require(_0x7401('0x13'))(_0x7401('0x14'));var utils=require(_0x7401('0x15'));var config=require(_0x7401('0x16'));var licenseUtil=require(_0x7401('0x17'));var db=require(_0x7401('0x18'))['db'];config[_0x7401('0x19')]=_['defaults'](config[_0x7401('0x19')],{'host':_0x7401('0x1a'),'port':0x18eb});var socket=require(_0x7401('0x1b'))(new Redis(config[_0x7401('0x19')]));require(_0x7401('0x1c'))[_0x7401('0x1d')](socket);function respondWithStatusCode(_0x21e4ce,_0x4db026){_0x4db026=_0x4db026||0xcc;return function(_0x19f099){if(_0x19f099){return _0x21e4ce[_0x7401('0x1e')](_0x4db026);}return _0x21e4ce[_0x7401('0x1f')](_0x4db026)[_0x7401('0x20')]();};}function respondWithResult(_0x5e9f09,_0x285b09){_0x285b09=_0x285b09||0xc8;return function(_0x49d73c){if(_0x49d73c){return _0x5e9f09[_0x7401('0x1f')](_0x285b09)[_0x7401('0x21')](_0x49d73c);}};}function respondWithFilteredResult(_0x38b61c,_0x4d0349){return function(_0x2f0198){if(_0x2f0198){var _0x5afc0a=_0x2f0198[_0x7401('0x22')],_0x33cd10=_0x4d0349['offset'],_0x31031c=_0x4d0349[_0x7401('0x23')]+_0x4d0349[_0x7401('0x24')],_0xc14be5;if(_0x31031c>=_0x5afc0a){_0x31031c=_0x5afc0a;_0xc14be5=0xc8;}else{_0xc14be5=0xce;}_0x38b61c[_0x7401('0x1f')](_0xc14be5);return _0x38b61c[_0x7401('0x25')](_0x7401('0x26'),_0x33cd10+'-'+_0x31031c+'/'+_0x5afc0a)[_0x7401('0x21')](_0x2f0198);}return null;};}function patchUpdates(_0x336be){return function(_0xce5ef2){try{jsonpatch[_0x7401('0x27')](_0xce5ef2,_0x336be,!![]);}catch(_0x237519){return BPromise[_0x7401('0x28')](_0x237519);}return _0xce5ef2['save']();};}function saveUpdates(_0x24f087,_0x2af26b){return function(_0x31ea60){if(_0x31ea60){return _0x31ea60[_0x7401('0x29')](_0x24f087)['then'](function(_0xafac19){return _0xafac19;});}return null;};}function removeEntity(_0x132cda,_0x2a8672){return function(_0x39a336){if(_0x39a336){return _0x39a336['destroy']()['then'](function(){_0x132cda[_0x7401('0x1f')](0xcc)[_0x7401('0x20')]();});}};}function handleEntityNotFound(_0xa3dc05,_0x1741ae){return function(_0x2b8d23){if(!_0x2b8d23){_0xa3dc05['sendStatus'](0x194);}return _0x2b8d23;};}function handleError(_0x26e7e9,_0x267be1){_0x267be1=_0x267be1||0x1f4;return function(_0x29bd95){logger[_0x7401('0x2a')](_0x29bd95[_0x7401('0x2b')]);if(_0x29bd95['name']){delete _0x29bd95[_0x7401('0x2c')];}_0x26e7e9[_0x7401('0x1f')](_0x267be1)[_0x7401('0x2d')](_0x29bd95);};}exports['show']=function(_0x3b9ed4,_0x313f0f){var _0xb4bcd8={'raw':![],'where':{'id':_0x3b9ed4['params']['id']}},_0x36d7bd={};_0x36d7bd[_0x7401('0x2e')]=_[_0x7401('0x2f')](db[_0x7401('0x30')][_0x7401('0x31')]);_0x36d7bd[_0x7401('0x32')]=_[_0x7401('0x2f')](_0x3b9ed4[_0x7401('0x32')]);_0x36d7bd[_0x7401('0x33')]=_[_0x7401('0x34')](_0x36d7bd['model'],_0x36d7bd[_0x7401('0x32')]);_0xb4bcd8[_0x7401('0x35')]=_[_0x7401('0x34')](_0x36d7bd[_0x7401('0x2e')],qs[_0x7401('0x36')](_0x3b9ed4[_0x7401('0x32')][_0x7401('0x36')]));_0xb4bcd8['attributes']=_0xb4bcd8[_0x7401('0x35')][_0x7401('0x37')]?_0xb4bcd8[_0x7401('0x35')]:_0x36d7bd[_0x7401('0x2e')];if(_0x3b9ed4[_0x7401('0x32')][_0x7401('0x38')]){_0xb4bcd8[_0x7401('0x39')]=[{'all':!![]}];}_0xb4bcd8=_[_0x7401('0x3a')]({},_0xb4bcd8,_0x3b9ed4['options']);return db[_0x7401('0x30')]['find'](_0xb4bcd8)[_0x7401('0x3b')](handleEntityNotFound(_0x313f0f,null))['then'](respondWithResult(_0x313f0f,null))[_0x7401('0x3c')](handleError(_0x313f0f,null));};exports[_0x7401('0x3d')]=function(_0x4a4a30,_0x321bf4){return db['DashboardItem'][_0x7401('0x3e')]({'where':{'id':_0x4a4a30[_0x7401('0x3f')]['id']}})[_0x7401('0x3b')](handleEntityNotFound(_0x321bf4,null))['then'](removeEntity(_0x321bf4,null))[_0x7401('0x3c')](handleError(_0x321bf4,null));};function widgetAttributes(_0x2edfab){try{switch(_0x2edfab[_0x7401('0x40')]){case _0x7401('0x41'):return[{'name':_0x7401('0x42'),'value':_0x2edfab[_0x7401('0x42')]||(_0x2edfab['attrs']&&_0x2edfab['attrs'][0x0]?_0x2edfab[_0x7401('0x43')][0x0][_0x7401('0x44')]:undefined)||'https://'}];case'custom':return[{'name':_0x7401('0x45'),'value':_0x2edfab[_0x7401('0x45')]||(_0x2edfab['attrs']&&_0x2edfab[_0x7401('0x43')][0x0]?_0x2edfab['attrs'][0x0][_0x7401('0x44')]:undefined)||''}];case _0x7401('0x46'):return[{'name':_0x7401('0x47'),'value':_0x2edfab['attrHourFormat']||(_0x2edfab[_0x7401('0x43')]&&_0x2edfab['attrs'][0x0]?_0x2edfab[_0x7401('0x43')][0x0]['value']:undefined)||_0x7401('0x48')},{'name':_0x7401('0x49'),'value':_0x2edfab['attrTimezone']||(_0x2edfab[_0x7401('0x43')]&&_0x2edfab[_0x7401('0x43')][0x1]?_0x2edfab[_0x7401('0x43')][0x1]['value']:undefined)||_0x7401('0x4a')},{'name':_0x7401('0x4b'),'value':_0x2edfab[_0x7401('0x4b')]||(_0x2edfab[_0x7401('0x43')]&&_0x2edfab[_0x7401('0x43')][0x2]?_0x2edfab[_0x7401('0x43')][0x2][_0x7401('0x44')]:undefined)||0xc}];case _0x7401('0x4c'):return[{'name':'attrMetric','value':_0x2edfab['attrMetric']||(_0x2edfab[_0x7401('0x43')]&&_0x2edfab[_0x7401('0x43')][0x0]?_0x2edfab[_0x7401('0x43')][0x0][_0x7401('0x44')]:undefined)||_0x7401('0x4d')},{'name':'attrVoiceQueues','value':_0x2edfab[_0x7401('0x4e')]||(_0x2edfab['attrs']&&_0x2edfab[_0x7401('0x43')][0x1]?_0x2edfab['attrs'][0x1][_0x7401('0x44')]:undefined)||[]},{'name':_0x7401('0x4b'),'value':_0x2edfab[_0x7401('0x4b')]||(_0x2edfab[_0x7401('0x43')]&&_0x2edfab[_0x7401('0x43')][0x2]?_0x2edfab[_0x7401('0x43')][0x2]['value']:undefined)||0x14}];case _0x7401('0x4f'):case _0x7401('0x50'):return[{'name':_0x7401('0x51'),'value':_0x2edfab[_0x7401('0x51')]||(_0x2edfab[_0x7401('0x43')]&&_0x2edfab[_0x7401('0x43')][0x0]?_0x2edfab['attrs'][0x0][_0x7401('0x44')]:undefined)||_0x7401('0x4d')},{'name':_0x7401('0x52'),'value':_0x2edfab[_0x7401('0x52')]||(_0x2edfab['attrs']&&_0x2edfab['attrs'][0x1]?_0x2edfab[_0x7401('0x43')][0x1][_0x7401('0x44')]:undefined)||null},{'name':_0x7401('0x53'),'value':_0x2edfab['attrSerie3']||(_0x2edfab[_0x7401('0x43')]&&_0x2edfab['attrs'][0x2]?_0x2edfab['attrs'][0x2][_0x7401('0x44')]:undefined)||null},{'name':_0x7401('0x4e'),'value':_0x2edfab['attrVoiceQueues']||(_0x2edfab[_0x7401('0x43')]&&_0x2edfab['attrs'][0x3]?_0x2edfab[_0x7401('0x43')][0x3][_0x7401('0x44')]:undefined)||[]}];case _0x7401('0x54'):return[{'name':_0x7401('0x55'),'type':_0x2edfab[_0x7401('0x56')]||(_0x2edfab[_0x7401('0x43')]&&_0x2edfab[_0x7401('0x43')][0x0]?_0x2edfab[_0x7401('0x43')][0x0]['type']:undefined)||null,'value':_0x2edfab['attrReport']||(_0x2edfab[_0x7401('0x43')]&&_0x2edfab[_0x7401('0x43')][0x0]?_0x2edfab[_0x7401('0x43')][0x0][_0x7401('0x44')]:undefined)||null},{'name':_0x7401('0x57'),'value':_0x2edfab[_0x7401('0x57')]||(_0x2edfab['attrs']&&_0x2edfab['attrs'][0x1]?_0x2edfab[_0x7401('0x43')][0x1][_0x7401('0x44')]:undefined)||0x0}];default:return[];}}catch(_0x26de99){logger[_0x7401('0x2a')](_0x7401('0x58'),JSON[_0x7401('0x59')](_0x26de99));return[];}}exports['create']=function(_0x4cd19d,_0x488380){if(_0x4cd19d[_0x7401('0x5a')]){_0x4cd19d[_0x7401('0x5a')]['attrs']=widgetAttributes(_0x4cd19d['body']);}return db[_0x7401('0x30')][_0x7401('0x5b')](_0x4cd19d['body'],{})[_0x7401('0x3b')](respondWithResult(_0x488380,0xc9))[_0x7401('0x3c')](handleError(_0x488380,null));};exports[_0x7401('0x29')]=function(_0x20e880,_0x5aefe1){if(_0x20e880['body']['id']){delete _0x20e880[_0x7401('0x5a')]['id'];}_0x20e880[_0x7401('0x5a')][_0x7401('0x43')]=widgetAttributes(_0x20e880[_0x7401('0x5a')]);return db[_0x7401('0x30')][_0x7401('0x3e')]({'where':{'id':_0x20e880[_0x7401('0x3f')]['id']}})[_0x7401('0x3b')](handleEntityNotFound(_0x5aefe1,null))[_0x7401('0x3b')](saveUpdates(_0x20e880[_0x7401('0x5a')],null))[_0x7401('0x3b')](respondWithResult(_0x5aefe1,null))[_0x7401('0x3c')](handleError(_0x5aefe1,null));};