Built motion from commit 9e1399f3.|2.5.37
[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 _0xbb50=['clock','attrHourFormat','value','attrTimezone','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','body','create','catch','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','end','error','stack','name','show','model','keys','DashboardItem','rawAttributes','query','attributes','intersection','fields','length','includeAll','include','merge','options','find','params','type','attrUrl','attrs','https://','custom','attrPath'];(function(_0x3ae1c3,_0x1ee680){var _0x55c54f=function(_0x1b0c87){while(--_0x1b0c87){_0x3ae1c3['push'](_0x3ae1c3['shift']());}};_0x55c54f(++_0x1ee680);}(_0xbb50,0x1d8));var _0x0bb5=function(_0x2cd17f,_0x3e9c94){_0x2cd17f=_0x2cd17f-0x0;var _0x5bab50=_0xbb50[_0x2cd17f];return _0x5bab50;};'use strict';var emlformat=require(_0x0bb5('0x0'));var rimraf=require(_0x0bb5('0x1'));var zipdir=require(_0x0bb5('0x2'));var jsonpatch=require(_0x0bb5('0x3'));var rp=require(_0x0bb5('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x0bb5('0x5'));var util=require(_0x0bb5('0x6'));var path=require('path');var sox=require(_0x0bb5('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0bb5('0x8'));var _=require(_0x0bb5('0x9'));var squel=require(_0x0bb5('0xa'));var crypto=require(_0x0bb5('0xb'));var jsforce=require(_0x0bb5('0xc'));var deskjs=require(_0x0bb5('0xd'));var toCsv=require(_0x0bb5('0xe'));var querystring=require(_0x0bb5('0xf'));var Papa=require(_0x0bb5('0x10'));var Redis=require('ioredis');var authService=require(_0x0bb5('0x11'));var qs=require(_0x0bb5('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0bb5('0x13'));var logger=require(_0x0bb5('0x14'))(_0x0bb5('0x15'));var utils=require(_0x0bb5('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x0bb5('0x17'));var db=require(_0x0bb5('0x18'))['db'];config[_0x0bb5('0x19')]=_['defaults'](config[_0x0bb5('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0x0bb5('0x1a'))(new Redis(config['redis']));require(_0x0bb5('0x1b'))[_0x0bb5('0x1c')](socket);function respondWithStatusCode(_0x1f24e0,_0x1453b0){_0x1453b0=_0x1453b0||0xcc;return function(_0x45e24b){if(_0x45e24b){return _0x1f24e0[_0x0bb5('0x1d')](_0x1453b0);}return _0x1f24e0[_0x0bb5('0x1e')](_0x1453b0)['end']();};}function respondWithResult(_0x541142,_0x5bc5b6){_0x5bc5b6=_0x5bc5b6||0xc8;return function(_0x40ca66){if(_0x40ca66){return _0x541142[_0x0bb5('0x1e')](_0x5bc5b6)['json'](_0x40ca66);}};}function respondWithFilteredResult(_0xd99b00,_0x4dfc1e){return function(_0x2bd3b6){if(_0x2bd3b6){var _0x39dc04=typeof _0x4dfc1e[_0x0bb5('0x1f')]===_0x0bb5('0x20')&&typeof _0x4dfc1e[_0x0bb5('0x21')]===_0x0bb5('0x20');var _0x156801=_0x2bd3b6[_0x0bb5('0x22')];var _0x491678=_0x39dc04?0x0:_0x4dfc1e[_0x0bb5('0x1f')];var _0xfd98d2=_0x39dc04?_0x2bd3b6[_0x0bb5('0x22')]:_0x4dfc1e['offset']+_0x4dfc1e[_0x0bb5('0x21')];var _0x4ae974;if(_0xfd98d2>=_0x156801){_0xfd98d2=_0x156801;_0x4ae974=0xc8;}else{_0x4ae974=0xce;}_0xd99b00[_0x0bb5('0x1e')](_0x4ae974);return _0xd99b00[_0x0bb5('0x23')](_0x0bb5('0x24'),_0x491678+'-'+_0xfd98d2+'/'+_0x156801)['json'](_0x2bd3b6);}return null;};}function patchUpdates(_0x25502a){return function(_0x1dc366){try{jsonpatch[_0x0bb5('0x25')](_0x1dc366,_0x25502a,!![]);}catch(_0x575952){return BPromise[_0x0bb5('0x26')](_0x575952);}return _0x1dc366['save']();};}function saveUpdates(_0xad2b43,_0x4367a6){return function(_0x282322){if(_0x282322){return _0x282322[_0x0bb5('0x27')](_0xad2b43)[_0x0bb5('0x28')](function(_0x330859){return _0x330859;});}return null;};}function removeEntity(_0x12ddb3,_0x4c0d57){return function(_0x3d2ac5){if(_0x3d2ac5){return _0x3d2ac5[_0x0bb5('0x29')]()[_0x0bb5('0x28')](function(){_0x12ddb3[_0x0bb5('0x1e')](0xcc)[_0x0bb5('0x2a')]();});}};}function handleEntityNotFound(_0x4ed0b8,_0x1df3ac){return function(_0x4d4cbf){if(!_0x4d4cbf){_0x4ed0b8['sendStatus'](0x194);}return _0x4d4cbf;};}function handleError(_0x303d85,_0x39d815){_0x39d815=_0x39d815||0x1f4;return function(_0x4b0a12){logger[_0x0bb5('0x2b')](_0x4b0a12[_0x0bb5('0x2c')]);if(_0x4b0a12[_0x0bb5('0x2d')]){delete _0x4b0a12[_0x0bb5('0x2d')];}_0x303d85[_0x0bb5('0x1e')](_0x39d815)['send'](_0x4b0a12);};}exports[_0x0bb5('0x2e')]=function(_0x20715e,_0x509465){var _0x5e2ae3={'raw':![],'where':{'id':_0x20715e['params']['id']}},_0x56baa5={};_0x56baa5[_0x0bb5('0x2f')]=_[_0x0bb5('0x30')](db[_0x0bb5('0x31')][_0x0bb5('0x32')]);_0x56baa5[_0x0bb5('0x33')]=_['keys'](_0x20715e[_0x0bb5('0x33')]);_0x56baa5['filters']=_['intersection'](_0x56baa5['model'],_0x56baa5['query']);_0x5e2ae3[_0x0bb5('0x34')]=_[_0x0bb5('0x35')](_0x56baa5[_0x0bb5('0x2f')],qs[_0x0bb5('0x36')](_0x20715e[_0x0bb5('0x33')][_0x0bb5('0x36')]));_0x5e2ae3['attributes']=_0x5e2ae3['attributes'][_0x0bb5('0x37')]?_0x5e2ae3[_0x0bb5('0x34')]:_0x56baa5['model'];if(_0x20715e[_0x0bb5('0x33')][_0x0bb5('0x38')]){_0x5e2ae3[_0x0bb5('0x39')]=[{'all':!![]}];}_0x5e2ae3=_[_0x0bb5('0x3a')]({},_0x5e2ae3,_0x20715e[_0x0bb5('0x3b')]);return db[_0x0bb5('0x31')]['find'](_0x5e2ae3)[_0x0bb5('0x28')](handleEntityNotFound(_0x509465,null))['then'](respondWithResult(_0x509465,null))['catch'](handleError(_0x509465,null));};exports[_0x0bb5('0x29')]=function(_0x5ec348,_0x1214ba){return db['DashboardItem'][_0x0bb5('0x3c')]({'where':{'id':_0x5ec348[_0x0bb5('0x3d')]['id']}})['then'](handleEntityNotFound(_0x1214ba,null))[_0x0bb5('0x28')](removeEntity(_0x1214ba,null))['catch'](handleError(_0x1214ba,null));};function widgetAttributes(_0x1c83b7){try{switch(_0x1c83b7[_0x0bb5('0x3e')]){case'iframe':return[{'name':_0x0bb5('0x3f'),'value':_0x1c83b7[_0x0bb5('0x3f')]||(_0x1c83b7[_0x0bb5('0x40')]&&_0x1c83b7[_0x0bb5('0x40')][0x0]?_0x1c83b7[_0x0bb5('0x40')][0x0]['value']:undefined)||_0x0bb5('0x41')}];case _0x0bb5('0x42'):return[{'name':_0x0bb5('0x43'),'value':_0x1c83b7[_0x0bb5('0x43')]||(_0x1c83b7[_0x0bb5('0x40')]&&_0x1c83b7['attrs'][0x0]?_0x1c83b7[_0x0bb5('0x40')][0x0]['value']:undefined)||''}];case _0x0bb5('0x44'):return[{'name':_0x0bb5('0x45'),'value':_0x1c83b7[_0x0bb5('0x45')]||(_0x1c83b7[_0x0bb5('0x40')]&&_0x1c83b7['attrs'][0x0]?_0x1c83b7[_0x0bb5('0x40')][0x0][_0x0bb5('0x46')]:undefined)||'HH:mm:ss'},{'name':_0x0bb5('0x47'),'value':_0x1c83b7[_0x0bb5('0x47')]||(_0x1c83b7[_0x0bb5('0x40')]&&_0x1c83b7[_0x0bb5('0x40')][0x1]?_0x1c83b7[_0x0bb5('0x40')][0x1][_0x0bb5('0x46')]:undefined)||'0.00'},{'name':'attrFontSize','value':_0x1c83b7[_0x0bb5('0x48')]||(_0x1c83b7[_0x0bb5('0x40')]&&_0x1c83b7[_0x0bb5('0x40')][0x2]?_0x1c83b7['attrs'][0x2]['value']:undefined)||0xc}];case _0x0bb5('0x49'):return[{'name':_0x0bb5('0x4a'),'value':_0x1c83b7[_0x0bb5('0x4a')]||(_0x1c83b7[_0x0bb5('0x40')]&&_0x1c83b7[_0x0bb5('0x40')][0x0]?_0x1c83b7[_0x0bb5('0x40')][0x0]['value']:undefined)||_0x0bb5('0x4b')},{'name':_0x0bb5('0x4c'),'value':_0x1c83b7['attrVoiceQueues']||(_0x1c83b7[_0x0bb5('0x40')]&&_0x1c83b7[_0x0bb5('0x40')][0x1]?_0x1c83b7['attrs'][0x1][_0x0bb5('0x46')]:undefined)||[]},{'name':_0x0bb5('0x48'),'value':_0x1c83b7['attrFontSize']||(_0x1c83b7[_0x0bb5('0x40')]&&_0x1c83b7[_0x0bb5('0x40')][0x2]?_0x1c83b7['attrs'][0x2][_0x0bb5('0x46')]:undefined)||0x14}];case _0x0bb5('0x4d'):case'pie-chart':return[{'name':_0x0bb5('0x4e'),'value':_0x1c83b7[_0x0bb5('0x4e')]||(_0x1c83b7[_0x0bb5('0x40')]&&_0x1c83b7[_0x0bb5('0x40')][0x0]?_0x1c83b7['attrs'][0x0][_0x0bb5('0x46')]:undefined)||'total'},{'name':_0x0bb5('0x4f'),'value':_0x1c83b7[_0x0bb5('0x4f')]||(_0x1c83b7['attrs']&&_0x1c83b7[_0x0bb5('0x40')][0x1]?_0x1c83b7['attrs'][0x1]['value']:undefined)||null},{'name':'attrSerie3','value':_0x1c83b7[_0x0bb5('0x50')]||(_0x1c83b7[_0x0bb5('0x40')]&&_0x1c83b7['attrs'][0x2]?_0x1c83b7[_0x0bb5('0x40')][0x2][_0x0bb5('0x46')]:undefined)||null},{'name':_0x0bb5('0x4c'),'value':_0x1c83b7['attrVoiceQueues']||(_0x1c83b7['attrs']&&_0x1c83b7['attrs'][0x3]?_0x1c83b7[_0x0bb5('0x40')][0x3][_0x0bb5('0x46')]:undefined)||[]}];case _0x0bb5('0x51'):return[{'name':_0x0bb5('0x52'),'type':_0x1c83b7[_0x0bb5('0x53')]||(_0x1c83b7[_0x0bb5('0x40')]&&_0x1c83b7[_0x0bb5('0x40')][0x0]?_0x1c83b7[_0x0bb5('0x40')][0x0][_0x0bb5('0x3e')]:undefined)||null,'value':_0x1c83b7[_0x0bb5('0x52')]||(_0x1c83b7[_0x0bb5('0x40')]&&_0x1c83b7[_0x0bb5('0x40')][0x0]?_0x1c83b7[_0x0bb5('0x40')][0x0][_0x0bb5('0x46')]:undefined)||null},{'name':_0x0bb5('0x54'),'value':_0x1c83b7[_0x0bb5('0x54')]||(_0x1c83b7['attrs']&&_0x1c83b7[_0x0bb5('0x40')][0x1]?_0x1c83b7[_0x0bb5('0x40')][0x1][_0x0bb5('0x46')]:undefined)||0x0}];default:return[];}}catch(_0x25ec7d){logger[_0x0bb5('0x2b')](_0x0bb5('0x55'),JSON[_0x0bb5('0x56')](_0x25ec7d));return[];}}exports['create']=function(_0x429360,_0x1346de){if(_0x429360[_0x0bb5('0x57')]){_0x429360[_0x0bb5('0x57')][_0x0bb5('0x40')]=widgetAttributes(_0x429360[_0x0bb5('0x57')]);}return db[_0x0bb5('0x31')][_0x0bb5('0x58')](_0x429360['body'],{})['then'](respondWithResult(_0x1346de,0xc9))[_0x0bb5('0x59')](handleError(_0x1346de,null));};exports[_0x0bb5('0x27')]=function(_0x471336,_0x1f1ee5){if(_0x471336['body']['id']){delete _0x471336[_0x0bb5('0x57')]['id'];}_0x471336[_0x0bb5('0x57')][_0x0bb5('0x40')]=widgetAttributes(_0x471336['body']);return db[_0x0bb5('0x31')]['find']({'where':{'id':_0x471336[_0x0bb5('0x3d')]['id']}})[_0x0bb5('0x28')](handleEntityNotFound(_0x1f1ee5,null))[_0x0bb5('0x28')](saveUpdates(_0x471336[_0x0bb5('0x57')],null))[_0x0bb5('0x28')](respondWithResult(_0x1f1ee5,null))['catch'](handleError(_0x1f1ee5,null));};