Built motion from commit 43538d75.|2.5.35
[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 _0x7cd2=['widgetAttributes:\x20%s','stringify','body','create','rimraf','zip-dir','fast-json-patch','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','end','json','undefined','limit','offset','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','show','params','keys','DashboardItem','query','filters','intersection','model','attributes','fields','includeAll','include','merge','options','find','catch','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','attrTimezone','0.00','attrFontSize','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','attrRefresh'];(function(_0xbc3277,_0x1711bc){var _0x3e3b3a=function(_0x20c28d){while(--_0x20c28d){_0xbc3277['push'](_0xbc3277['shift']());}};_0x3e3b3a(++_0x1711bc);}(_0x7cd2,0x118));var _0x27cd=function(_0x594ecf,_0x116340){_0x594ecf=_0x594ecf-0x0;var _0x45222f=_0x7cd2[_0x594ecf];return _0x45222f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x27cd('0x0'));var zipdir=require(_0x27cd('0x1'));var jsonpatch=require(_0x27cd('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x27cd('0x3'));var Mustache=require('mustache');var util=require(_0x27cd('0x4'));var path=require(_0x27cd('0x5'));var sox=require(_0x27cd('0x6'));var csv=require(_0x27cd('0x7'));var ejs=require(_0x27cd('0x8'));var fs=require('fs');var fs_extra=require(_0x27cd('0x9'));var _=require('lodash');var squel=require(_0x27cd('0xa'));var crypto=require('crypto');var jsforce=require(_0x27cd('0xb'));var deskjs=require(_0x27cd('0xc'));var toCsv=require('to-csv');var querystring=require(_0x27cd('0xd'));var Papa=require(_0x27cd('0xe'));var Redis=require(_0x27cd('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x27cd('0x10'));var as=require(_0x27cd('0x11'));var hardwareService=require(_0x27cd('0x12'));var logger=require(_0x27cd('0x13'))('api');var utils=require(_0x27cd('0x14'));var config=require(_0x27cd('0x15'));var licenseUtil=require(_0x27cd('0x16'));var db=require(_0x27cd('0x17'))['db'];config[_0x27cd('0x18')]=_[_0x27cd('0x19')](config['redis'],{'host':_0x27cd('0x1a'),'port':0x18eb});var socket=require(_0x27cd('0x1b'))(new Redis(config['redis']));require(_0x27cd('0x1c'))[_0x27cd('0x1d')](socket);function respondWithStatusCode(_0x284b41,_0x62d519){_0x62d519=_0x62d519||0xcc;return function(_0x56e5b2){if(_0x56e5b2){return _0x284b41[_0x27cd('0x1e')](_0x62d519);}return _0x284b41[_0x27cd('0x1f')](_0x62d519)[_0x27cd('0x20')]();};}function respondWithResult(_0x4be7ee,_0xf2f70c){_0xf2f70c=_0xf2f70c||0xc8;return function(_0x23ba7f){if(_0x23ba7f){return _0x4be7ee[_0x27cd('0x1f')](_0xf2f70c)[_0x27cd('0x21')](_0x23ba7f);}};}function respondWithFilteredResult(_0x349f17,_0x30d0d4){return function(_0x7e8472){if(_0x7e8472){var _0x4afea7=typeof _0x30d0d4['offset']===_0x27cd('0x22')&&typeof _0x30d0d4[_0x27cd('0x23')]===_0x27cd('0x22');var _0x2f5064=_0x7e8472['count'];var _0x210a27=_0x4afea7?0x0:_0x30d0d4[_0x27cd('0x24')];var _0x96622f=_0x4afea7?_0x7e8472['count']:_0x30d0d4[_0x27cd('0x24')]+_0x30d0d4[_0x27cd('0x23')];var _0x1aa71e;if(_0x96622f>=_0x2f5064){_0x96622f=_0x2f5064;_0x1aa71e=0xc8;}else{_0x1aa71e=0xce;}_0x349f17[_0x27cd('0x1f')](_0x1aa71e);return _0x349f17[_0x27cd('0x25')](_0x27cd('0x26'),_0x210a27+'-'+_0x96622f+'/'+_0x2f5064)[_0x27cd('0x21')](_0x7e8472);}return null;};}function patchUpdates(_0x1a6394){return function(_0x324246){try{jsonpatch[_0x27cd('0x27')](_0x324246,_0x1a6394,!![]);}catch(_0x48329a){return BPromise['reject'](_0x48329a);}return _0x324246[_0x27cd('0x28')]();};}function saveUpdates(_0x1f9c08,_0x5bc0ba){return function(_0x4e0817){if(_0x4e0817){return _0x4e0817[_0x27cd('0x29')](_0x1f9c08)[_0x27cd('0x2a')](function(_0x189f3a){return _0x189f3a;});}return null;};}function removeEntity(_0x58d06f,_0x368c84){return function(_0x179596){if(_0x179596){return _0x179596[_0x27cd('0x2b')]()[_0x27cd('0x2a')](function(){_0x58d06f[_0x27cd('0x1f')](0xcc)[_0x27cd('0x20')]();});}};}function handleEntityNotFound(_0x299153,_0x3a3566){return function(_0x36013f){if(!_0x36013f){_0x299153[_0x27cd('0x1e')](0x194);}return _0x36013f;};}function handleError(_0x560095,_0x4eafec){_0x4eafec=_0x4eafec||0x1f4;return function(_0x7eb2e7){logger[_0x27cd('0x2c')](_0x7eb2e7[_0x27cd('0x2d')]);if(_0x7eb2e7[_0x27cd('0x2e')]){delete _0x7eb2e7['name'];}_0x560095[_0x27cd('0x1f')](_0x4eafec)[_0x27cd('0x2f')](_0x7eb2e7);};}exports[_0x27cd('0x30')]=function(_0x538cef,_0x1807e1){var _0xe8a2bf={'raw':![],'where':{'id':_0x538cef[_0x27cd('0x31')]['id']}},_0x1d7316={};_0x1d7316['model']=_[_0x27cd('0x32')](db[_0x27cd('0x33')]['rawAttributes']);_0x1d7316[_0x27cd('0x34')]=_[_0x27cd('0x32')](_0x538cef[_0x27cd('0x34')]);_0x1d7316[_0x27cd('0x35')]=_[_0x27cd('0x36')](_0x1d7316[_0x27cd('0x37')],_0x1d7316[_0x27cd('0x34')]);_0xe8a2bf[_0x27cd('0x38')]=_[_0x27cd('0x36')](_0x1d7316[_0x27cd('0x37')],qs[_0x27cd('0x39')](_0x538cef['query']['fields']));_0xe8a2bf[_0x27cd('0x38')]=_0xe8a2bf[_0x27cd('0x38')]['length']?_0xe8a2bf[_0x27cd('0x38')]:_0x1d7316[_0x27cd('0x37')];if(_0x538cef[_0x27cd('0x34')][_0x27cd('0x3a')]){_0xe8a2bf[_0x27cd('0x3b')]=[{'all':!![]}];}_0xe8a2bf=_[_0x27cd('0x3c')]({},_0xe8a2bf,_0x538cef[_0x27cd('0x3d')]);return db['DashboardItem'][_0x27cd('0x3e')](_0xe8a2bf)['then'](handleEntityNotFound(_0x1807e1,null))[_0x27cd('0x2a')](respondWithResult(_0x1807e1,null))[_0x27cd('0x3f')](handleError(_0x1807e1,null));};exports[_0x27cd('0x2b')]=function(_0x18bf86,_0x4ab77b){return db['DashboardItem'][_0x27cd('0x3e')]({'where':{'id':_0x18bf86[_0x27cd('0x31')]['id']}})[_0x27cd('0x2a')](handleEntityNotFound(_0x4ab77b,null))[_0x27cd('0x2a')](removeEntity(_0x4ab77b,null))['catch'](handleError(_0x4ab77b,null));};function widgetAttributes(_0x220b26){try{switch(_0x220b26[_0x27cd('0x40')]){case _0x27cd('0x41'):return[{'name':_0x27cd('0x42'),'value':_0x220b26[_0x27cd('0x42')]||(_0x220b26[_0x27cd('0x43')]&&_0x220b26['attrs'][0x0]?_0x220b26[_0x27cd('0x43')][0x0][_0x27cd('0x44')]:undefined)||_0x27cd('0x45')}];case _0x27cd('0x46'):return[{'name':_0x27cd('0x47'),'value':_0x220b26['attrPath']||(_0x220b26['attrs']&&_0x220b26[_0x27cd('0x43')][0x0]?_0x220b26[_0x27cd('0x43')][0x0][_0x27cd('0x44')]:undefined)||''}];case _0x27cd('0x48'):return[{'name':_0x27cd('0x49'),'value':_0x220b26[_0x27cd('0x49')]||(_0x220b26[_0x27cd('0x43')]&&_0x220b26[_0x27cd('0x43')][0x0]?_0x220b26[_0x27cd('0x43')][0x0][_0x27cd('0x44')]:undefined)||'HH:mm:ss'},{'name':_0x27cd('0x4a'),'value':_0x220b26['attrTimezone']||(_0x220b26[_0x27cd('0x43')]&&_0x220b26[_0x27cd('0x43')][0x1]?_0x220b26[_0x27cd('0x43')][0x1][_0x27cd('0x44')]:undefined)||_0x27cd('0x4b')},{'name':'attrFontSize','value':_0x220b26[_0x27cd('0x4c')]||(_0x220b26[_0x27cd('0x43')]&&_0x220b26[_0x27cd('0x43')][0x2]?_0x220b26[_0x27cd('0x43')][0x2]['value']:undefined)||0xc}];case'counter':return[{'name':'attrMetric','value':_0x220b26[_0x27cd('0x4d')]||(_0x220b26['attrs']&&_0x220b26[_0x27cd('0x43')][0x0]?_0x220b26['attrs'][0x0]['value']:undefined)||_0x27cd('0x4e')},{'name':_0x27cd('0x4f'),'value':_0x220b26[_0x27cd('0x4f')]||(_0x220b26['attrs']&&_0x220b26[_0x27cd('0x43')][0x1]?_0x220b26['attrs'][0x1][_0x27cd('0x44')]:undefined)||[]},{'name':_0x27cd('0x4c'),'value':_0x220b26['attrFontSize']||(_0x220b26[_0x27cd('0x43')]&&_0x220b26[_0x27cd('0x43')][0x2]?_0x220b26[_0x27cd('0x43')][0x2]['value']:undefined)||0x14}];case _0x27cd('0x50'):case _0x27cd('0x51'):return[{'name':'attrSerie1','value':_0x220b26[_0x27cd('0x52')]||(_0x220b26[_0x27cd('0x43')]&&_0x220b26['attrs'][0x0]?_0x220b26['attrs'][0x0][_0x27cd('0x44')]:undefined)||_0x27cd('0x4e')},{'name':_0x27cd('0x53'),'value':_0x220b26[_0x27cd('0x53')]||(_0x220b26[_0x27cd('0x43')]&&_0x220b26[_0x27cd('0x43')][0x1]?_0x220b26[_0x27cd('0x43')][0x1][_0x27cd('0x44')]:undefined)||null},{'name':_0x27cd('0x54'),'value':_0x220b26[_0x27cd('0x54')]||(_0x220b26[_0x27cd('0x43')]&&_0x220b26[_0x27cd('0x43')][0x2]?_0x220b26[_0x27cd('0x43')][0x2][_0x27cd('0x44')]:undefined)||null},{'name':_0x27cd('0x4f'),'value':_0x220b26[_0x27cd('0x4f')]||(_0x220b26['attrs']&&_0x220b26[_0x27cd('0x43')][0x3]?_0x220b26[_0x27cd('0x43')][0x3]['value']:undefined)||[]}];case _0x27cd('0x55'):return[{'name':_0x27cd('0x56'),'type':_0x220b26['reportType']||(_0x220b26['attrs']&&_0x220b26['attrs'][0x0]?_0x220b26[_0x27cd('0x43')][0x0][_0x27cd('0x40')]:undefined)||null,'value':_0x220b26[_0x27cd('0x56')]||(_0x220b26[_0x27cd('0x43')]&&_0x220b26[_0x27cd('0x43')][0x0]?_0x220b26[_0x27cd('0x43')][0x0][_0x27cd('0x44')]:undefined)||null},{'name':_0x27cd('0x57'),'value':_0x220b26[_0x27cd('0x57')]||(_0x220b26[_0x27cd('0x43')]&&_0x220b26[_0x27cd('0x43')][0x1]?_0x220b26[_0x27cd('0x43')][0x1][_0x27cd('0x44')]:undefined)||0x0}];default:return[];}}catch(_0x2f1c2c){logger[_0x27cd('0x2c')](_0x27cd('0x58'),JSON[_0x27cd('0x59')](_0x2f1c2c));return[];}}exports['create']=function(_0x1c5ce1,_0x5d5ade){if(_0x1c5ce1[_0x27cd('0x5a')]){_0x1c5ce1[_0x27cd('0x5a')][_0x27cd('0x43')]=widgetAttributes(_0x1c5ce1[_0x27cd('0x5a')]);}return db[_0x27cd('0x33')][_0x27cd('0x5b')](_0x1c5ce1[_0x27cd('0x5a')],{})['then'](respondWithResult(_0x5d5ade,0xc9))[_0x27cd('0x3f')](handleError(_0x5d5ade,null));};exports[_0x27cd('0x29')]=function(_0x67a4fe,_0x412458){if(_0x67a4fe[_0x27cd('0x5a')]['id']){delete _0x67a4fe[_0x27cd('0x5a')]['id'];}_0x67a4fe[_0x27cd('0x5a')][_0x27cd('0x43')]=widgetAttributes(_0x67a4fe[_0x27cd('0x5a')]);return db['DashboardItem']['find']({'where':{'id':_0x67a4fe['params']['id']}})[_0x27cd('0x2a')](handleEntityNotFound(_0x412458,null))['then'](saveUpdates(_0x67a4fe['body'],null))['then'](respondWithResult(_0x412458,null))[_0x27cd('0x3f')](handleError(_0x412458,null));};