fa3be80ff43162abb88a587a500d605b9209f72f
[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 _0xb470=['attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','attrReport','reportType','type','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','./dashboardItem.socket','sendStatus','status','end','offset','limit','count','set','Content-Range','json','apply','save','update','then','destroy','error','stack','show','model','keys','DashboardItem','query','filters','intersection','fields','attributes','length','merge','find','catch','params','iframe','attrUrl','attrs','value','https://','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues'];(function(_0xe5d575,_0x8a16d3){var _0x56cd9c=function(_0x5e4662){while(--_0x5e4662){_0xe5d575['push'](_0xe5d575['shift']());}};_0x56cd9c(++_0x8a16d3);}(_0xb470,0x75));var _0x0b47=function(_0x5584b4,_0x586825){_0x5584b4=_0x5584b4-0x0;var _0x4f2c79=_0xb470[_0x5584b4];return _0x4f2c79;};'use strict';var emlformat=require(_0x0b47('0x0'));var rimraf=require(_0x0b47('0x1'));var zipdir=require(_0x0b47('0x2'));var jsonpatch=require(_0x0b47('0x3'));var rp=require('request-promise');var moment=require(_0x0b47('0x4'));var BPromise=require(_0x0b47('0x5'));var Mustache=require(_0x0b47('0x6'));var util=require('util');var path=require(_0x0b47('0x7'));var sox=require(_0x0b47('0x8'));var csv=require(_0x0b47('0x9'));var ejs=require(_0x0b47('0xa'));var fs=require('fs');var fs_extra=require(_0x0b47('0xb'));var _=require(_0x0b47('0xc'));var squel=require(_0x0b47('0xd'));var crypto=require(_0x0b47('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0b47('0xf'));var Redis=require(_0x0b47('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x0b47('0x11'));var as=require(_0x0b47('0x12'));var hardwareService=require(_0x0b47('0x13'));var logger=require(_0x0b47('0x14'))(_0x0b47('0x15'));var utils=require(_0x0b47('0x16'));var config=require(_0x0b47('0x17'));var licenseUtil=require(_0x0b47('0x18'));var db=require(_0x0b47('0x19'))['db'];config[_0x0b47('0x1a')]=_['defaults'](config['redis'],{'host':_0x0b47('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0b47('0x1a')]));require(_0x0b47('0x1c'))['register'](socket);function respondWithStatusCode(_0x36fe0a,_0x4089d0){_0x4089d0=_0x4089d0||0xcc;return function(_0x2bb088){if(_0x2bb088){return _0x36fe0a[_0x0b47('0x1d')](_0x4089d0);}return _0x36fe0a[_0x0b47('0x1e')](_0x4089d0)[_0x0b47('0x1f')]();};}function respondWithResult(_0x1e9588,_0x1dc752){_0x1dc752=_0x1dc752||0xc8;return function(_0x130a13){if(_0x130a13){return _0x1e9588[_0x0b47('0x1e')](_0x1dc752)['json'](_0x130a13);}};}function respondWithFilteredResult(_0x151eb6,_0x4e5f56){return function(_0x11f305){if(_0x11f305){var _0x1620fc=typeof _0x4e5f56[_0x0b47('0x20')]==='undefined'&&typeof _0x4e5f56[_0x0b47('0x21')]==='undefined';var _0x4b5bac=_0x11f305[_0x0b47('0x22')];var _0x395591=_0x1620fc?0x0:_0x4e5f56['offset'];var _0x3f1c9c=_0x1620fc?_0x11f305['count']:_0x4e5f56[_0x0b47('0x20')]+_0x4e5f56[_0x0b47('0x21')];var _0x34b129;if(_0x3f1c9c>=_0x4b5bac){_0x3f1c9c=_0x4b5bac;_0x34b129=0xc8;}else{_0x34b129=0xce;}_0x151eb6[_0x0b47('0x1e')](_0x34b129);return _0x151eb6[_0x0b47('0x23')](_0x0b47('0x24'),_0x395591+'-'+_0x3f1c9c+'/'+_0x4b5bac)[_0x0b47('0x25')](_0x11f305);}return null;};}function patchUpdates(_0x2dfdb4){return function(_0x3bff28){try{jsonpatch[_0x0b47('0x26')](_0x3bff28,_0x2dfdb4,!![]);}catch(_0x3e37e8){return BPromise['reject'](_0x3e37e8);}return _0x3bff28[_0x0b47('0x27')]();};}function saveUpdates(_0x11935a,_0x4e481c){return function(_0x32559d){if(_0x32559d){return _0x32559d[_0x0b47('0x28')](_0x11935a)[_0x0b47('0x29')](function(_0xd9c35c){return _0xd9c35c;});}return null;};}function removeEntity(_0x59af8e,_0x47d1b2){return function(_0x375983){if(_0x375983){return _0x375983[_0x0b47('0x2a')]()['then'](function(){_0x59af8e[_0x0b47('0x1e')](0xcc)[_0x0b47('0x1f')]();});}};}function handleEntityNotFound(_0x3f0ab4,_0x195d5a){return function(_0x15db7d){if(!_0x15db7d){_0x3f0ab4[_0x0b47('0x1d')](0x194);}return _0x15db7d;};}function handleError(_0x33a81a,_0xd1ead){_0xd1ead=_0xd1ead||0x1f4;return function(_0x3550cc){logger[_0x0b47('0x2b')](_0x3550cc[_0x0b47('0x2c')]);if(_0x3550cc['name']){delete _0x3550cc['name'];}_0x33a81a[_0x0b47('0x1e')](_0xd1ead)['send'](_0x3550cc);};}exports[_0x0b47('0x2d')]=function(_0x9a2cc1,_0x1842ec){var _0xccf571={'raw':![],'where':{'id':_0x9a2cc1['params']['id']}},_0x1014cd={};_0x1014cd[_0x0b47('0x2e')]=_[_0x0b47('0x2f')](db[_0x0b47('0x30')]['rawAttributes']);_0x1014cd[_0x0b47('0x31')]=_[_0x0b47('0x2f')](_0x9a2cc1[_0x0b47('0x31')]);_0x1014cd[_0x0b47('0x32')]=_[_0x0b47('0x33')](_0x1014cd[_0x0b47('0x2e')],_0x1014cd['query']);_0xccf571['attributes']=_[_0x0b47('0x33')](_0x1014cd[_0x0b47('0x2e')],qs[_0x0b47('0x34')](_0x9a2cc1[_0x0b47('0x31')][_0x0b47('0x34')]));_0xccf571[_0x0b47('0x35')]=_0xccf571[_0x0b47('0x35')][_0x0b47('0x36')]?_0xccf571[_0x0b47('0x35')]:_0x1014cd[_0x0b47('0x2e')];if(_0x9a2cc1[_0x0b47('0x31')]['includeAll']){_0xccf571['include']=[{'all':!![]}];}_0xccf571=_[_0x0b47('0x37')]({},_0xccf571,_0x9a2cc1['options']);return db[_0x0b47('0x30')][_0x0b47('0x38')](_0xccf571)[_0x0b47('0x29')](handleEntityNotFound(_0x1842ec,null))[_0x0b47('0x29')](respondWithResult(_0x1842ec,null))[_0x0b47('0x39')](handleError(_0x1842ec,null));};exports[_0x0b47('0x2a')]=function(_0x56a45e,_0x4948d5){return db['DashboardItem'][_0x0b47('0x38')]({'where':{'id':_0x56a45e[_0x0b47('0x3a')]['id']}})[_0x0b47('0x29')](handleEntityNotFound(_0x4948d5,null))[_0x0b47('0x29')](removeEntity(_0x4948d5,null))[_0x0b47('0x39')](handleError(_0x4948d5,null));};function widgetAttributes(_0x22227f){try{switch(_0x22227f['type']){case _0x0b47('0x3b'):return[{'name':_0x0b47('0x3c'),'value':_0x22227f[_0x0b47('0x3c')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f['attrs'][0x0]?_0x22227f['attrs'][0x0][_0x0b47('0x3e')]:undefined)||_0x0b47('0x3f')}];case'custom':return[{'name':_0x0b47('0x40'),'value':_0x22227f[_0x0b47('0x40')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f['attrs'][0x0]?_0x22227f['attrs'][0x0][_0x0b47('0x3e')]:undefined)||''}];case _0x0b47('0x41'):return[{'name':_0x0b47('0x42'),'value':_0x22227f[_0x0b47('0x42')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x0]?_0x22227f[_0x0b47('0x3d')][0x0][_0x0b47('0x3e')]:undefined)||_0x0b47('0x43')},{'name':_0x0b47('0x44'),'value':_0x22227f[_0x0b47('0x44')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x1]?_0x22227f['attrs'][0x1]['value']:undefined)||_0x0b47('0x45')},{'name':'attrFontSize','value':_0x22227f[_0x0b47('0x46')]||(_0x22227f['attrs']&&_0x22227f[_0x0b47('0x3d')][0x2]?_0x22227f[_0x0b47('0x3d')][0x2][_0x0b47('0x3e')]:undefined)||0xc}];case _0x0b47('0x47'):return[{'name':'attrMetric','value':_0x22227f[_0x0b47('0x48')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f['attrs'][0x0]?_0x22227f[_0x0b47('0x3d')][0x0]['value']:undefined)||_0x0b47('0x49')},{'name':_0x0b47('0x4a'),'value':_0x22227f[_0x0b47('0x4a')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x1]?_0x22227f[_0x0b47('0x3d')][0x1][_0x0b47('0x3e')]:undefined)||[]},{'name':_0x0b47('0x46'),'value':_0x22227f[_0x0b47('0x46')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f['attrs'][0x2]?_0x22227f['attrs'][0x2]['value']:undefined)||0x14},{'name':'attrChannel','value':_0x22227f[_0x0b47('0x4b')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f['attrs'][0x3]?_0x22227f[_0x0b47('0x3d')][0x3]['value']:undefined)||_0x0b47('0x4c')},{'name':_0x0b47('0x4d'),'value':_0x22227f['attrEmailAccounts']||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x4]?_0x22227f[_0x0b47('0x3d')][0x4][_0x0b47('0x3e')]:undefined)||''},{'name':'attrFaxAccounts','value':_0x22227f[_0x0b47('0x4e')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x5]?_0x22227f['attrs'][0x5][_0x0b47('0x3e')]:undefined)||''},{'name':_0x0b47('0x4f'),'value':_0x22227f['attrSmsAccounts']||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f['attrs'][0x6]?_0x22227f['attrs'][0x6][_0x0b47('0x3e')]:undefined)||''},{'name':_0x0b47('0x50'),'value':_0x22227f['attrOpenchannelAccounts']||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f['attrs'][0x7]?_0x22227f[_0x0b47('0x3d')][0x7][_0x0b47('0x3e')]:undefined)||''},{'name':_0x0b47('0x51'),'value':_0x22227f['attrWhatsappAccounts']||(_0x22227f['attrs']&&_0x22227f[_0x0b47('0x3d')][0x8]?_0x22227f[_0x0b47('0x3d')][0x8][_0x0b47('0x3e')]:undefined)||''},{'name':_0x0b47('0x52'),'value':_0x22227f[_0x0b47('0x52')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x9]?_0x22227f[_0x0b47('0x3d')][0x9][_0x0b47('0x3e')]:undefined)||''}];case _0x0b47('0x53'):case _0x0b47('0x54'):return[{'name':'attrSerie1','value':_0x22227f[_0x0b47('0x55')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x0]?_0x22227f['attrs'][0x0]['value']:undefined)||'total'},{'name':'attrSerie2','value':_0x22227f[_0x0b47('0x56')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x1]?_0x22227f[_0x0b47('0x3d')][0x1][_0x0b47('0x3e')]:undefined)||null},{'name':_0x0b47('0x57'),'value':_0x22227f['attrSerie3']||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x2]?_0x22227f[_0x0b47('0x3d')][0x2]['value']:undefined)||null},{'name':_0x0b47('0x4a'),'value':_0x22227f[_0x0b47('0x4a')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x3]?_0x22227f[_0x0b47('0x3d')][0x3]['value']:undefined)||[]},{'name':'attrChannel','value':_0x22227f[_0x0b47('0x4b')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f['attrs'][0x4]?_0x22227f[_0x0b47('0x3d')][0x4][_0x0b47('0x3e')]:undefined)||_0x0b47('0x4c')},{'name':_0x0b47('0x4d'),'value':_0x22227f[_0x0b47('0x4d')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x5]?_0x22227f[_0x0b47('0x3d')][0x5]['value']:undefined)||''},{'name':_0x0b47('0x4e'),'value':_0x22227f['attrFaxAccounts']||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x6]?_0x22227f[_0x0b47('0x3d')][0x6]['value']:undefined)||''},{'name':_0x0b47('0x4f'),'value':_0x22227f[_0x0b47('0x4f')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x7]?_0x22227f['attrs'][0x7][_0x0b47('0x3e')]:undefined)||''},{'name':'attrOpenchannelAccounts','value':_0x22227f[_0x0b47('0x50')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x8]?_0x22227f[_0x0b47('0x3d')][0x8][_0x0b47('0x3e')]:undefined)||''},{'name':_0x0b47('0x51'),'value':_0x22227f[_0x0b47('0x51')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x9]?_0x22227f[_0x0b47('0x3d')][0x9][_0x0b47('0x3e')]:undefined)||''},{'name':_0x0b47('0x52'),'value':_0x22227f[_0x0b47('0x52')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f['attrs'][0xa]?_0x22227f[_0x0b47('0x3d')][0xa][_0x0b47('0x3e')]:undefined)||''}];case'web-report':return[{'name':_0x0b47('0x58'),'type':_0x22227f[_0x0b47('0x59')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x0]?_0x22227f[_0x0b47('0x3d')][0x0][_0x0b47('0x5a')]:undefined)||null,'value':_0x22227f['attrReport']||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x0]?_0x22227f[_0x0b47('0x3d')][0x0][_0x0b47('0x3e')]:undefined)||null},{'name':'attrRefresh','value':_0x22227f[_0x0b47('0x5b')]||(_0x22227f[_0x0b47('0x3d')]&&_0x22227f[_0x0b47('0x3d')][0x1]?_0x22227f['attrs'][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x104410){logger['error'](_0x0b47('0x5c'),JSON[_0x0b47('0x5d')](_0x104410));return[];}}exports[_0x0b47('0x5e')]=function(_0x40c054,_0x51f551){if(_0x40c054[_0x0b47('0x5f')]){_0x40c054[_0x0b47('0x5f')][_0x0b47('0x3d')]=widgetAttributes(_0x40c054[_0x0b47('0x5f')]);}return db[_0x0b47('0x30')]['create'](_0x40c054['body'],{})[_0x0b47('0x29')](respondWithResult(_0x51f551,0xc9))[_0x0b47('0x39')](handleError(_0x51f551,null));};exports[_0x0b47('0x28')]=function(_0x5e34d0,_0x1bd576){if(_0x5e34d0['body']['id']){delete _0x5e34d0[_0x0b47('0x5f')]['id'];}_0x5e34d0[_0x0b47('0x5f')][_0x0b47('0x3d')]=widgetAttributes(_0x5e34d0[_0x0b47('0x5f')]);return db[_0x0b47('0x30')][_0x0b47('0x38')]({'where':{'id':_0x5e34d0[_0x0b47('0x3a')]['id']}})[_0x0b47('0x29')](handleEntityNotFound(_0x1bd576,null))[_0x0b47('0x29')](saveUpdates(_0x5e34d0[_0x0b47('0x5f')],null))[_0x0b47('0x29')](respondWithResult(_0x1bd576,null))[_0x0b47('0x39')](handleError(_0x1bd576,null));};