f58970990c39b2d56728651e00bf1cb32c21694a
[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 _0xa4a6=['total','attrVoiceQueues','attrFontSize','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','stringify','create','body','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../mysqldb','redis','localhost','register','sendStatus','offset','limit','status','set','Content-Range','apply','update','then','end','error','stack','name','send','show','keys','DashboardItem','rawAttributes','query','filters','intersection','model','fields','attributes','length','includeAll','include','options','destroy','find','params','catch','type','iframe','attrUrl','attrs','value','https://','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','attrMetric'];(function(_0xdc37a1,_0x53ebb9){var _0x99b4fe=function(_0x2811e3){while(--_0x2811e3){_0xdc37a1['push'](_0xdc37a1['shift']());}};_0x99b4fe(++_0x53ebb9);}(_0xa4a6,0x10a));var _0x6a4a=function(_0x2e77a6,_0x102997){_0x2e77a6=_0x2e77a6-0x0;var _0x2df4b3=_0xa4a6[_0x2e77a6];return _0x2df4b3;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x6a4a('0x0'));var zipdir=require(_0x6a4a('0x1'));var jsonpatch=require(_0x6a4a('0x2'));var rp=require(_0x6a4a('0x3'));var moment=require(_0x6a4a('0x4'));var BPromise=require(_0x6a4a('0x5'));var Mustache=require(_0x6a4a('0x6'));var util=require(_0x6a4a('0x7'));var path=require('path');var sox=require(_0x6a4a('0x8'));var csv=require(_0x6a4a('0x9'));var ejs=require(_0x6a4a('0xa'));var fs=require('fs');var _=require(_0x6a4a('0xb'));var squel=require(_0x6a4a('0xc'));var crypto=require('crypto');var jsforce=require(_0x6a4a('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x6a4a('0x9'));var querystring=require(_0x6a4a('0xe'));var Papa=require(_0x6a4a('0xf'));var Redis=require(_0x6a4a('0x10'));var authService=require(_0x6a4a('0x11'));var qs=require(_0x6a4a('0x12'));var as=require(_0x6a4a('0x13'));var hardwareService=require(_0x6a4a('0x14'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x6a4a('0x15'));var db=require(_0x6a4a('0x16'))['db'];config[_0x6a4a('0x17')]=_['defaults'](config['redis'],{'host':_0x6a4a('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x6a4a('0x17')]));require('./dashboardItem.socket')[_0x6a4a('0x19')](socket);function respondWithStatusCode(_0x18962e,_0x3dde7f){_0x3dde7f=_0x3dde7f||0xcc;return function(_0x6dc819){if(_0x6dc819){return _0x18962e[_0x6a4a('0x1a')](_0x3dde7f);}return _0x18962e['status'](_0x3dde7f)['end']();};}function respondWithResult(_0x12ab83,_0x1b4257){_0x1b4257=_0x1b4257||0xc8;return function(_0x47939e){if(_0x47939e){return _0x12ab83['status'](_0x1b4257)['json'](_0x47939e);}};}function respondWithFilteredResult(_0x2d7f06,_0x4a6a15){return function(_0x4e2680){if(_0x4e2680){var _0x2efe4c=_0x4e2680['count'],_0x50ea9f=_0x4a6a15['offset'],_0x56efa2=_0x4a6a15[_0x6a4a('0x1b')]+_0x4a6a15[_0x6a4a('0x1c')],_0xa570c9;if(_0x56efa2>=_0x2efe4c){_0x56efa2=_0x2efe4c;_0xa570c9=0xc8;}else{_0xa570c9=0xce;}_0x2d7f06[_0x6a4a('0x1d')](_0xa570c9);return _0x2d7f06[_0x6a4a('0x1e')](_0x6a4a('0x1f'),_0x50ea9f+'-'+_0x56efa2+'/'+_0x2efe4c)['json'](_0x4e2680);}return null;};}function patchUpdates(_0x4e211f){return function(_0x4d66e8){try{jsonpatch[_0x6a4a('0x20')](_0x4d66e8,_0x4e211f,!![]);}catch(_0x1d41e6){return BPromise['reject'](_0x1d41e6);}return _0x4d66e8['save']();};}function saveUpdates(_0x5a5b3d,_0x4309a1){return function(_0x54e7a1){if(_0x54e7a1){return _0x54e7a1[_0x6a4a('0x21')](_0x5a5b3d)[_0x6a4a('0x22')](function(_0x5a1756){return _0x5a1756;});}return null;};}function removeEntity(_0x20b9d5,_0x57ec24){return function(_0xb52009){if(_0xb52009){return _0xb52009['destroy']()[_0x6a4a('0x22')](function(){_0x20b9d5[_0x6a4a('0x1d')](0xcc)[_0x6a4a('0x23')]();});}};}function handleEntityNotFound(_0xf5614,_0x164965){return function(_0x61b87b){if(!_0x61b87b){_0xf5614[_0x6a4a('0x1a')](0x194);}return _0x61b87b;};}function handleError(_0x21bfbb,_0x666053){_0x666053=_0x666053||0x1f4;return function(_0x4a511b){logger[_0x6a4a('0x24')](_0x4a511b[_0x6a4a('0x25')]);if(_0x4a511b[_0x6a4a('0x26')]){delete _0x4a511b[_0x6a4a('0x26')];}_0x21bfbb['status'](_0x666053)[_0x6a4a('0x27')](_0x4a511b);};}exports[_0x6a4a('0x28')]=function(_0x4dfab6,_0x3e1c63){var _0x5645d1={'raw':![],'where':{'id':_0x4dfab6['params']['id']}},_0x28df27={};_0x28df27['model']=_[_0x6a4a('0x29')](db[_0x6a4a('0x2a')][_0x6a4a('0x2b')]);_0x28df27[_0x6a4a('0x2c')]=_['keys'](_0x4dfab6[_0x6a4a('0x2c')]);_0x28df27[_0x6a4a('0x2d')]=_[_0x6a4a('0x2e')](_0x28df27[_0x6a4a('0x2f')],_0x28df27['query']);_0x5645d1['attributes']=_[_0x6a4a('0x2e')](_0x28df27[_0x6a4a('0x2f')],qs[_0x6a4a('0x30')](_0x4dfab6[_0x6a4a('0x2c')]['fields']));_0x5645d1[_0x6a4a('0x31')]=_0x5645d1['attributes'][_0x6a4a('0x32')]?_0x5645d1[_0x6a4a('0x31')]:_0x28df27[_0x6a4a('0x2f')];if(_0x4dfab6['query'][_0x6a4a('0x33')]){_0x5645d1[_0x6a4a('0x34')]=[{'all':!![]}];}_0x5645d1=_['merge']({},_0x5645d1,_0x4dfab6[_0x6a4a('0x35')]);return db[_0x6a4a('0x2a')]['find'](_0x5645d1)[_0x6a4a('0x22')](handleEntityNotFound(_0x3e1c63,null))[_0x6a4a('0x22')](respondWithResult(_0x3e1c63,null))['catch'](handleError(_0x3e1c63,null));};exports[_0x6a4a('0x36')]=function(_0x400433,_0x28eb54){return db[_0x6a4a('0x2a')][_0x6a4a('0x37')]({'where':{'id':_0x400433[_0x6a4a('0x38')]['id']}})[_0x6a4a('0x22')](handleEntityNotFound(_0x28eb54,null))[_0x6a4a('0x22')](removeEntity(_0x28eb54,null))[_0x6a4a('0x39')](handleError(_0x28eb54,null));};function widgetAttributes(_0x3af8d0){try{switch(_0x3af8d0[_0x6a4a('0x3a')]){case _0x6a4a('0x3b'):return[{'name':'attrUrl','value':_0x3af8d0[_0x6a4a('0x3c')]||(_0x3af8d0['attrs']&&_0x3af8d0[_0x6a4a('0x3d')][0x0]?_0x3af8d0['attrs'][0x0][_0x6a4a('0x3e')]:undefined)||_0x6a4a('0x3f')}];case'custom':return[{'name':_0x6a4a('0x40'),'value':_0x3af8d0['attrPath']||(_0x3af8d0[_0x6a4a('0x3d')]&&_0x3af8d0['attrs'][0x0]?_0x3af8d0[_0x6a4a('0x3d')][0x0]['value']:undefined)||''}];case _0x6a4a('0x41'):return[{'name':_0x6a4a('0x42'),'value':_0x3af8d0[_0x6a4a('0x42')]||(_0x3af8d0[_0x6a4a('0x3d')]&&_0x3af8d0[_0x6a4a('0x3d')][0x0]?_0x3af8d0[_0x6a4a('0x3d')][0x0]['value']:undefined)||_0x6a4a('0x43')},{'name':'attrTimezone','value':_0x3af8d0[_0x6a4a('0x44')]||(_0x3af8d0[_0x6a4a('0x3d')]&&_0x3af8d0[_0x6a4a('0x3d')][0x1]?_0x3af8d0['attrs'][0x1][_0x6a4a('0x3e')]:undefined)||'0.00'},{'name':'attrFontSize','value':_0x3af8d0['attrFontSize']||(_0x3af8d0[_0x6a4a('0x3d')]&&_0x3af8d0[_0x6a4a('0x3d')][0x2]?_0x3af8d0['attrs'][0x2][_0x6a4a('0x3e')]:undefined)||0xc}];case'counter':return[{'name':_0x6a4a('0x45'),'value':_0x3af8d0[_0x6a4a('0x45')]||(_0x3af8d0[_0x6a4a('0x3d')]&&_0x3af8d0[_0x6a4a('0x3d')][0x0]?_0x3af8d0[_0x6a4a('0x3d')][0x0]['value']:undefined)||_0x6a4a('0x46')},{'name':_0x6a4a('0x47'),'value':_0x3af8d0[_0x6a4a('0x47')]||(_0x3af8d0[_0x6a4a('0x3d')]&&_0x3af8d0[_0x6a4a('0x3d')][0x1]?_0x3af8d0[_0x6a4a('0x3d')][0x1][_0x6a4a('0x3e')]:undefined)||[]},{'name':_0x6a4a('0x48'),'value':_0x3af8d0[_0x6a4a('0x48')]||(_0x3af8d0[_0x6a4a('0x3d')]&&_0x3af8d0['attrs'][0x2]?_0x3af8d0[_0x6a4a('0x3d')][0x2]['value']:undefined)||0x14}];case'multibar-chart':case _0x6a4a('0x49'):return[{'name':_0x6a4a('0x4a'),'value':_0x3af8d0[_0x6a4a('0x4a')]||(_0x3af8d0['attrs']&&_0x3af8d0[_0x6a4a('0x3d')][0x0]?_0x3af8d0[_0x6a4a('0x3d')][0x0]['value']:undefined)||_0x6a4a('0x46')},{'name':'attrSerie2','value':_0x3af8d0[_0x6a4a('0x4b')]||(_0x3af8d0['attrs']&&_0x3af8d0['attrs'][0x1]?_0x3af8d0[_0x6a4a('0x3d')][0x1][_0x6a4a('0x3e')]:undefined)||null},{'name':_0x6a4a('0x4c'),'value':_0x3af8d0[_0x6a4a('0x4c')]||(_0x3af8d0['attrs']&&_0x3af8d0[_0x6a4a('0x3d')][0x2]?_0x3af8d0[_0x6a4a('0x3d')][0x2]['value']:undefined)||null},{'name':_0x6a4a('0x47'),'value':_0x3af8d0[_0x6a4a('0x47')]||(_0x3af8d0['attrs']&&_0x3af8d0[_0x6a4a('0x3d')][0x3]?_0x3af8d0[_0x6a4a('0x3d')][0x3][_0x6a4a('0x3e')]:undefined)||[]}];case _0x6a4a('0x4d'):return[{'name':_0x6a4a('0x4e'),'type':_0x3af8d0[_0x6a4a('0x4f')]||(_0x3af8d0[_0x6a4a('0x3d')]&&_0x3af8d0[_0x6a4a('0x3d')][0x0]?_0x3af8d0['attrs'][0x0][_0x6a4a('0x3a')]:undefined)||null,'value':_0x3af8d0[_0x6a4a('0x4e')]||(_0x3af8d0[_0x6a4a('0x3d')]&&_0x3af8d0[_0x6a4a('0x3d')][0x0]?_0x3af8d0[_0x6a4a('0x3d')][0x0][_0x6a4a('0x3e')]:undefined)||null},{'name':_0x6a4a('0x50'),'value':_0x3af8d0[_0x6a4a('0x50')]||(_0x3af8d0[_0x6a4a('0x3d')]&&_0x3af8d0[_0x6a4a('0x3d')][0x1]?_0x3af8d0[_0x6a4a('0x3d')][0x1][_0x6a4a('0x3e')]:undefined)||0x0}];default:return[];}}catch(_0x2b81f4){logger[_0x6a4a('0x24')]('widgetAttributes:\x20%s',JSON[_0x6a4a('0x51')](_0x2b81f4));return[];}}exports[_0x6a4a('0x52')]=function(_0x174f20,_0x20d458){if(_0x174f20[_0x6a4a('0x53')]){_0x174f20[_0x6a4a('0x53')]['attrs']=widgetAttributes(_0x174f20[_0x6a4a('0x53')]);}return db[_0x6a4a('0x2a')][_0x6a4a('0x52')](_0x174f20[_0x6a4a('0x53')],{})[_0x6a4a('0x22')](respondWithResult(_0x20d458,0xc9))[_0x6a4a('0x39')](handleError(_0x20d458,null));};exports[_0x6a4a('0x21')]=function(_0x44a7de,_0x222079){if(_0x44a7de[_0x6a4a('0x53')]['id']){delete _0x44a7de[_0x6a4a('0x53')]['id'];}_0x44a7de['body'][_0x6a4a('0x3d')]=widgetAttributes(_0x44a7de[_0x6a4a('0x53')]);return db['DashboardItem'][_0x6a4a('0x37')]({'where':{'id':_0x44a7de[_0x6a4a('0x38')]['id']}})[_0x6a4a('0x22')](handleEntityNotFound(_0x222079,null))[_0x6a4a('0x22')](saveUpdates(_0x44a7de[_0x6a4a('0x53')],null))['then'](respondWithResult(_0x222079,null))[_0x6a4a('0x39')](handleError(_0x222079,null));};