Built motion from commit 67e5df37.|2.0.66
[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 _0x53d6=['../../config/logger','api','../../config/environment','../../mysqldb','./dashboardItem.socket','register','sendStatus','status','end','json','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','name','send','show','params','model','keys','rawAttributes','query','filters','intersection','attributes','fields','length','includeAll','include','options','DashboardItem','find','catch','iframe','attrUrl','attrs','https://','custom','attrPath','value','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie2','attrSerie3','web-report','attrReport','attrRefresh','error','widgetAttributes:\x20%s','stringify','create','body','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','querystring','papaparse'];(function(_0x5d9412,_0x349a10){var _0x4e2730=function(_0x598c88){while(--_0x598c88){_0x5d9412['push'](_0x5d9412['shift']());}};_0x4e2730(++_0x349a10);}(_0x53d6,0x96));var _0x653d=function(_0x5326f3,_0xade490){_0x5326f3=_0x5326f3-0x0;var _0x394455=_0x53d6[_0x5326f3];return _0x394455;};'use strict';var jsonpatch=require(_0x653d('0x0'));var rp=require(_0x653d('0x1'));var moment=require(_0x653d('0x2'));var BPromise=require(_0x653d('0x3'));var Mustache=require(_0x653d('0x4'));var util=require(_0x653d('0x5'));var path=require('path');var sox=require(_0x653d('0x6'));var csv=require(_0x653d('0x7'));var ejs=require(_0x653d('0x8'));var fs=require('fs');var _=require(_0x653d('0x9'));var squel=require('squel');var crypto=require(_0x653d('0xa'));var jsforce=require(_0x653d('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x653d('0x7'));var querystring=require(_0x653d('0xc'));var Papa=require(_0x653d('0xd'));var qs=require('../../components/parsers/qs');var logger=require(_0x653d('0xe'))(_0x653d('0xf'));var utils=require('../../config/utils');var config=require(_0x653d('0x10'));var db=require(_0x653d('0x11'))['db'];var socket=require('socket.io-emitter')({'host':'localhost','port':0x18eb});require(_0x653d('0x12'))[_0x653d('0x13')](socket);function respondWithStatusCode(_0x1aeb34,_0x4a1e5d){_0x4a1e5d=_0x4a1e5d||0xcc;return function(_0x175a16){if(_0x175a16){return _0x1aeb34[_0x653d('0x14')](_0x4a1e5d);}return _0x1aeb34[_0x653d('0x15')](_0x4a1e5d)[_0x653d('0x16')]();};}function respondWithResult(_0x458173,_0x2db4f2){_0x2db4f2=_0x2db4f2||0xc8;return function(_0x32f4ee){if(_0x32f4ee){return _0x458173[_0x653d('0x15')](_0x2db4f2)[_0x653d('0x17')](_0x32f4ee);}};}function respondWithFilteredResult(_0x13f48b,_0x3415ed){return function(_0x1e49fb){if(_0x1e49fb){var _0x50b089=_0x1e49fb[_0x653d('0x18')],_0x7283f8=_0x3415ed['offset'],_0x561469=_0x3415ed['offset']+_0x3415ed[_0x653d('0x19')],_0x3b850d;if(_0x561469>=_0x50b089){_0x561469=_0x50b089;_0x3b850d=0xc8;}else{_0x3b850d=0xce;}_0x13f48b['status'](_0x3b850d);return _0x13f48b[_0x653d('0x1a')](_0x653d('0x1b'),_0x7283f8+'-'+_0x561469+'/'+_0x50b089)[_0x653d('0x17')](_0x1e49fb);}return null;};}function patchUpdates(_0x2b1a90){return function(_0x5972e0){try{jsonpatch[_0x653d('0x1c')](_0x5972e0,_0x2b1a90,!![]);}catch(_0x3f8e25){return BPromise[_0x653d('0x1d')](_0x3f8e25);}return _0x5972e0[_0x653d('0x1e')]();};}function saveUpdates(_0x5043a1,_0x3b9b37){return function(_0x1d1f44){if(_0x1d1f44){return _0x1d1f44[_0x653d('0x1f')](_0x5043a1)[_0x653d('0x20')](function(_0x4a780b){return _0x4a780b;});}return null;};}function removeEntity(_0x1ecad3,_0x4acdc3){return function(_0x484cac){if(_0x484cac){return _0x484cac[_0x653d('0x21')]()[_0x653d('0x20')](function(){_0x1ecad3[_0x653d('0x15')](0xcc)[_0x653d('0x16')]();});}};}function handleEntityNotFound(_0x4e2a54,_0x5f5851){return function(_0x3cc251){if(!_0x3cc251){_0x4e2a54[_0x653d('0x14')](0x194);}return _0x3cc251;};}function handleError(_0x311a32,_0x38960b){_0x38960b=_0x38960b||0x1f4;return function(_0x488845){logger['error'](_0x488845['stack']);if(_0x488845[_0x653d('0x22')]){delete _0x488845[_0x653d('0x22')];}_0x311a32[_0x653d('0x15')](_0x38960b)[_0x653d('0x23')](_0x488845);};}exports[_0x653d('0x24')]=function(_0x1ed32b,_0x5533c7){var _0x4a1090={'raw':![],'where':{'id':_0x1ed32b[_0x653d('0x25')]['id']}},_0x188522={};_0x188522[_0x653d('0x26')]=_[_0x653d('0x27')](db['DashboardItem'][_0x653d('0x28')]);_0x188522[_0x653d('0x29')]=_[_0x653d('0x27')](_0x1ed32b[_0x653d('0x29')]);_0x188522[_0x653d('0x2a')]=_[_0x653d('0x2b')](_0x188522[_0x653d('0x26')],_0x188522[_0x653d('0x29')]);_0x4a1090[_0x653d('0x2c')]=_[_0x653d('0x2b')](_0x188522[_0x653d('0x26')],qs[_0x653d('0x2d')](_0x1ed32b['query'][_0x653d('0x2d')]));_0x4a1090[_0x653d('0x2c')]=_0x4a1090[_0x653d('0x2c')][_0x653d('0x2e')]?_0x4a1090[_0x653d('0x2c')]:_0x188522[_0x653d('0x26')];if(_0x1ed32b[_0x653d('0x29')][_0x653d('0x2f')]){_0x4a1090[_0x653d('0x30')]=[{'all':!![]}];}_0x4a1090=_['merge']({},_0x4a1090,_0x1ed32b[_0x653d('0x31')]);return db[_0x653d('0x32')][_0x653d('0x33')](_0x4a1090)[_0x653d('0x20')](handleEntityNotFound(_0x5533c7,null))[_0x653d('0x20')](respondWithResult(_0x5533c7,null))[_0x653d('0x34')](handleError(_0x5533c7,null));};exports[_0x653d('0x21')]=function(_0x5ec868,_0xfd9cbd){return db[_0x653d('0x32')][_0x653d('0x33')]({'where':{'id':_0x5ec868[_0x653d('0x25')]['id']}})[_0x653d('0x20')](handleEntityNotFound(_0xfd9cbd,null))['then'](removeEntity(_0xfd9cbd,null))[_0x653d('0x34')](handleError(_0xfd9cbd,null));};function widgetAttributes(_0x504a41){try{switch(_0x504a41['type']){case _0x653d('0x35'):return[{'name':'attrUrl','value':_0x504a41[_0x653d('0x36')]||(_0x504a41[_0x653d('0x37')]&&_0x504a41[_0x653d('0x37')][0x0]?_0x504a41[_0x653d('0x37')][0x0]['value']:undefined)||_0x653d('0x38')}];case _0x653d('0x39'):return[{'name':_0x653d('0x3a'),'value':_0x504a41[_0x653d('0x3a')]||(_0x504a41[_0x653d('0x37')]&&_0x504a41[_0x653d('0x37')][0x0]?_0x504a41['attrs'][0x0][_0x653d('0x3b')]:undefined)||''}];case _0x653d('0x3c'):return[{'name':'attrHourFormat','value':_0x504a41[_0x653d('0x3d')]||(_0x504a41['attrs']&&_0x504a41[_0x653d('0x37')][0x0]?_0x504a41[_0x653d('0x37')][0x0][_0x653d('0x3b')]:undefined)||_0x653d('0x3e')},{'name':_0x653d('0x3f'),'value':_0x504a41[_0x653d('0x3f')]||(_0x504a41[_0x653d('0x37')]&&_0x504a41[_0x653d('0x37')][0x1]?_0x504a41[_0x653d('0x37')][0x1]['value']:undefined)||_0x653d('0x40')},{'name':_0x653d('0x41'),'value':_0x504a41['attrFontSize']||(_0x504a41['attrs']&&_0x504a41['attrs'][0x2]?_0x504a41[_0x653d('0x37')][0x2][_0x653d('0x3b')]:undefined)||0xc}];case _0x653d('0x42'):return[{'name':_0x653d('0x43'),'value':_0x504a41[_0x653d('0x43')]||(_0x504a41['attrs']&&_0x504a41[_0x653d('0x37')][0x0]?_0x504a41['attrs'][0x0][_0x653d('0x3b')]:undefined)||_0x653d('0x44')},{'name':'attrVoiceQueues','value':_0x504a41[_0x653d('0x45')]||(_0x504a41['attrs']&&_0x504a41['attrs'][0x1]?_0x504a41[_0x653d('0x37')][0x1]['value']:undefined)||[]},{'name':_0x653d('0x41'),'value':_0x504a41[_0x653d('0x41')]||(_0x504a41[_0x653d('0x37')]&&_0x504a41[_0x653d('0x37')][0x2]?_0x504a41[_0x653d('0x37')][0x2][_0x653d('0x3b')]:undefined)||0x14}];case _0x653d('0x46'):case _0x653d('0x47'):return[{'name':'attrSerie1','value':_0x504a41['attrSerie1']||(_0x504a41[_0x653d('0x37')]&&_0x504a41[_0x653d('0x37')][0x0]?_0x504a41[_0x653d('0x37')][0x0][_0x653d('0x3b')]:undefined)||'total'},{'name':_0x653d('0x48'),'value':_0x504a41[_0x653d('0x48')]||(_0x504a41['attrs']&&_0x504a41[_0x653d('0x37')][0x1]?_0x504a41[_0x653d('0x37')][0x1][_0x653d('0x3b')]:undefined)||null},{'name':_0x653d('0x49'),'value':_0x504a41[_0x653d('0x49')]||(_0x504a41[_0x653d('0x37')]&&_0x504a41[_0x653d('0x37')][0x2]?_0x504a41[_0x653d('0x37')][0x2][_0x653d('0x3b')]:undefined)||null},{'name':_0x653d('0x45'),'value':_0x504a41[_0x653d('0x45')]||(_0x504a41['attrs']&&_0x504a41[_0x653d('0x37')][0x3]?_0x504a41[_0x653d('0x37')][0x3][_0x653d('0x3b')]:undefined)||[]}];case _0x653d('0x4a'):return[{'name':_0x653d('0x4b'),'value':_0x504a41[_0x653d('0x4b')]||(_0x504a41['attrs']&&_0x504a41[_0x653d('0x37')][0x0]?_0x504a41[_0x653d('0x37')][0x0]['value']:undefined)||null},{'name':_0x653d('0x4c'),'value':_0x504a41['attrRefresh']||(_0x504a41['attrs']&&_0x504a41[_0x653d('0x37')][0x1]?_0x504a41[_0x653d('0x37')][0x1][_0x653d('0x3b')]:undefined)||0x0}];default:return[];}}catch(_0x2a40ba){logger[_0x653d('0x4d')](_0x653d('0x4e'),JSON[_0x653d('0x4f')](_0x2a40ba));return[];}}exports[_0x653d('0x50')]=function(_0xcb5dc3,_0x5e5379){if(_0xcb5dc3['body']){_0xcb5dc3['body'][_0x653d('0x37')]=widgetAttributes(_0xcb5dc3[_0x653d('0x51')]);}return db[_0x653d('0x32')][_0x653d('0x50')](_0xcb5dc3['body'],{})[_0x653d('0x20')](respondWithResult(_0x5e5379,0xc9))[_0x653d('0x34')](handleError(_0x5e5379,null));};exports[_0x653d('0x1f')]=function(_0x1e3751,_0x3b1e1a){if(_0x1e3751[_0x653d('0x51')]['id']){delete _0x1e3751['body']['id'];}_0x1e3751[_0x653d('0x51')][_0x653d('0x37')]=widgetAttributes(_0x1e3751['body']);return db[_0x653d('0x32')]['find']({'where':{'id':_0x1e3751['params']['id']}})['then'](handleEntityNotFound(_0x3b1e1a,null))[_0x653d('0x20')](saveUpdates(_0x1e3751['body'],null))[_0x653d('0x20')](respondWithResult(_0x3b1e1a,null))['catch'](handleError(_0x3b1e1a,null));};