Built motion from commit 3c2ce842.|2.6.31
[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 _0xef96=['attrChatWebsites','multibar-chart','pie-chart','attrSerie2','web-report','reportType','attrRefresh','stringify','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','to-csv','ejs','fs-extra','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','update','then','destroy','send','params','model','DashboardItem','rawAttributes','query','intersection','fields','attributes','length','merge','find','catch','type','iframe','attrUrl','attrs','value','https://','attrPath','attrHourFormat','HH:mm:ss','attrTimezone','attrFontSize','counter','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts'];(function(_0x2e6141,_0x2bcaf1){var _0x432b18=function(_0x7391ac){while(--_0x7391ac){_0x2e6141['push'](_0x2e6141['shift']());}};_0x432b18(++_0x2bcaf1);}(_0xef96,0x162));var _0x6ef9=function(_0x34f049,_0x560858){_0x34f049=_0x34f049-0x0;var _0x43dfd4=_0xef96[_0x34f049];return _0x43dfd4;};'use strict';var emlformat=require(_0x6ef9('0x0'));var rimraf=require(_0x6ef9('0x1'));var zipdir=require(_0x6ef9('0x2'));var jsonpatch=require(_0x6ef9('0x3'));var rp=require(_0x6ef9('0x4'));var moment=require(_0x6ef9('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x6ef9('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x6ef9('0x7'));var ejs=require(_0x6ef9('0x8'));var fs=require('fs');var fs_extra=require(_0x6ef9('0x9'));var _=require('lodash');var squel=require(_0x6ef9('0xa'));var crypto=require('crypto');var jsforce=require(_0x6ef9('0xb'));var deskjs=require(_0x6ef9('0xc'));var toCsv=require(_0x6ef9('0x7'));var querystring=require('querystring');var Papa=require(_0x6ef9('0xd'));var Redis=require('ioredis');var authService=require(_0x6ef9('0xe'));var qs=require(_0x6ef9('0xf'));var as=require(_0x6ef9('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6ef9('0x11'))(_0x6ef9('0x12'));var utils=require(_0x6ef9('0x13'));var config=require(_0x6ef9('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x6ef9('0x15'))['db'];config[_0x6ef9('0x16')]=_[_0x6ef9('0x17')](config[_0x6ef9('0x16')],{'host':_0x6ef9('0x18'),'port':0x18eb});var socket=require(_0x6ef9('0x19'))(new Redis(config[_0x6ef9('0x16')]));require('./dashboardItem.socket')[_0x6ef9('0x1a')](socket);function respondWithStatusCode(_0x2942bc,_0x1f3793){_0x1f3793=_0x1f3793||0xcc;return function(_0x3f50e0){if(_0x3f50e0){return _0x2942bc[_0x6ef9('0x1b')](_0x1f3793);}return _0x2942bc[_0x6ef9('0x1c')](_0x1f3793)[_0x6ef9('0x1d')]();};}function respondWithResult(_0x253b13,_0x37deec){_0x37deec=_0x37deec||0xc8;return function(_0x4e0132){if(_0x4e0132){return _0x253b13[_0x6ef9('0x1c')](_0x37deec)[_0x6ef9('0x1e')](_0x4e0132);}};}function respondWithFilteredResult(_0x4fac02,_0x5064cb){return function(_0x1cb130){if(_0x1cb130){var _0x572ce6=typeof _0x5064cb[_0x6ef9('0x1f')]===_0x6ef9('0x20')&&typeof _0x5064cb[_0x6ef9('0x21')]===_0x6ef9('0x20');var _0x1d975c=_0x1cb130[_0x6ef9('0x22')];var _0x493cdd=_0x572ce6?0x0:_0x5064cb['offset'];var _0x1ac999=_0x572ce6?_0x1cb130[_0x6ef9('0x22')]:_0x5064cb['offset']+_0x5064cb[_0x6ef9('0x21')];var _0x3e74d2;if(_0x1ac999>=_0x1d975c){_0x1ac999=_0x1d975c;_0x3e74d2=0xc8;}else{_0x3e74d2=0xce;}_0x4fac02[_0x6ef9('0x1c')](_0x3e74d2);return _0x4fac02[_0x6ef9('0x23')](_0x6ef9('0x24'),_0x493cdd+'-'+_0x1ac999+'/'+_0x1d975c)[_0x6ef9('0x1e')](_0x1cb130);}return null;};}function patchUpdates(_0x404515){return function(_0x57d440){try{jsonpatch['apply'](_0x57d440,_0x404515,!![]);}catch(_0xae1b6e){return BPromise[_0x6ef9('0x25')](_0xae1b6e);}return _0x57d440['save']();};}function saveUpdates(_0x49faeb,_0x22b3d6){return function(_0x4f8520){if(_0x4f8520){return _0x4f8520[_0x6ef9('0x26')](_0x49faeb)[_0x6ef9('0x27')](function(_0xdbc856){return _0xdbc856;});}return null;};}function removeEntity(_0x383197,_0x1bdb00){return function(_0x116891){if(_0x116891){return _0x116891[_0x6ef9('0x28')]()['then'](function(){_0x383197[_0x6ef9('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x21cc0c,_0x19b575){return function(_0x4c9aba){if(!_0x4c9aba){_0x21cc0c[_0x6ef9('0x1b')](0x194);}return _0x4c9aba;};}function handleError(_0x351dce,_0x205b74){_0x205b74=_0x205b74||0x1f4;return function(_0x212d32){logger['error'](_0x212d32['stack']);if(_0x212d32['name']){delete _0x212d32['name'];}_0x351dce['status'](_0x205b74)[_0x6ef9('0x29')](_0x212d32);};}exports['show']=function(_0x40b4e7,_0x5a8f0c){var _0xe7b717={'raw':![],'where':{'id':_0x40b4e7[_0x6ef9('0x2a')]['id']}},_0x2958e0={};_0x2958e0[_0x6ef9('0x2b')]=_['keys'](db[_0x6ef9('0x2c')][_0x6ef9('0x2d')]);_0x2958e0[_0x6ef9('0x2e')]=_['keys'](_0x40b4e7[_0x6ef9('0x2e')]);_0x2958e0['filters']=_[_0x6ef9('0x2f')](_0x2958e0[_0x6ef9('0x2b')],_0x2958e0[_0x6ef9('0x2e')]);_0xe7b717['attributes']=_[_0x6ef9('0x2f')](_0x2958e0[_0x6ef9('0x2b')],qs['fields'](_0x40b4e7[_0x6ef9('0x2e')][_0x6ef9('0x30')]));_0xe7b717[_0x6ef9('0x31')]=_0xe7b717[_0x6ef9('0x31')][_0x6ef9('0x32')]?_0xe7b717[_0x6ef9('0x31')]:_0x2958e0['model'];if(_0x40b4e7['query']['includeAll']){_0xe7b717['include']=[{'all':!![]}];}_0xe7b717=_[_0x6ef9('0x33')]({},_0xe7b717,_0x40b4e7['options']);return db['DashboardItem'][_0x6ef9('0x34')](_0xe7b717)[_0x6ef9('0x27')](handleEntityNotFound(_0x5a8f0c,null))['then'](respondWithResult(_0x5a8f0c,null))[_0x6ef9('0x35')](handleError(_0x5a8f0c,null));};exports['destroy']=function(_0x578c9b,_0x1721b2){return db[_0x6ef9('0x2c')]['find']({'where':{'id':_0x578c9b[_0x6ef9('0x2a')]['id']}})[_0x6ef9('0x27')](handleEntityNotFound(_0x1721b2,null))[_0x6ef9('0x27')](removeEntity(_0x1721b2,null))['catch'](handleError(_0x1721b2,null));};function widgetAttributes(_0x319e7d){try{switch(_0x319e7d[_0x6ef9('0x36')]){case _0x6ef9('0x37'):return[{'name':_0x6ef9('0x38'),'value':_0x319e7d['attrUrl']||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x0]?_0x319e7d['attrs'][0x0][_0x6ef9('0x3a')]:undefined)||_0x6ef9('0x3b')}];case'custom':return[{'name':_0x6ef9('0x3c'),'value':_0x319e7d[_0x6ef9('0x3c')]||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x0]?_0x319e7d[_0x6ef9('0x39')][0x0][_0x6ef9('0x3a')]:undefined)||''}];case'clock':return[{'name':_0x6ef9('0x3d'),'value':_0x319e7d[_0x6ef9('0x3d')]||(_0x319e7d['attrs']&&_0x319e7d[_0x6ef9('0x39')][0x0]?_0x319e7d['attrs'][0x0][_0x6ef9('0x3a')]:undefined)||_0x6ef9('0x3e')},{'name':_0x6ef9('0x3f'),'value':_0x319e7d[_0x6ef9('0x3f')]||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d['attrs'][0x1]?_0x319e7d[_0x6ef9('0x39')][0x1][_0x6ef9('0x3a')]:undefined)||'0.00'},{'name':_0x6ef9('0x40'),'value':_0x319e7d[_0x6ef9('0x40')]||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x2]?_0x319e7d['attrs'][0x2][_0x6ef9('0x3a')]:undefined)||0xc}];case _0x6ef9('0x41'):return[{'name':_0x6ef9('0x42'),'value':_0x319e7d[_0x6ef9('0x42')]||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d['attrs'][0x0]?_0x319e7d['attrs'][0x0]['value']:undefined)||_0x6ef9('0x43')},{'name':_0x6ef9('0x44'),'value':_0x319e7d['attrVoiceQueues']||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x1]?_0x319e7d['attrs'][0x1][_0x6ef9('0x3a')]:undefined)||[]},{'name':'attrFontSize','value':_0x319e7d[_0x6ef9('0x40')]||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x2]?_0x319e7d[_0x6ef9('0x39')][0x2][_0x6ef9('0x3a')]:undefined)||0x14},{'name':'attrChannel','value':_0x319e7d[_0x6ef9('0x45')]||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x3]?_0x319e7d[_0x6ef9('0x39')][0x3][_0x6ef9('0x3a')]:undefined)||_0x6ef9('0x46')},{'name':'attrEmailAccounts','value':_0x319e7d[_0x6ef9('0x47')]||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x4]?_0x319e7d[_0x6ef9('0x39')][0x4][_0x6ef9('0x3a')]:undefined)||''},{'name':_0x6ef9('0x48'),'value':_0x319e7d[_0x6ef9('0x48')]||(_0x319e7d['attrs']&&_0x319e7d[_0x6ef9('0x39')][0x5]?_0x319e7d[_0x6ef9('0x39')][0x5][_0x6ef9('0x3a')]:undefined)||''},{'name':_0x6ef9('0x49'),'value':_0x319e7d[_0x6ef9('0x49')]||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x6]?_0x319e7d[_0x6ef9('0x39')][0x6]['value']:undefined)||''},{'name':_0x6ef9('0x4a'),'value':_0x319e7d[_0x6ef9('0x4a')]||(_0x319e7d['attrs']&&_0x319e7d[_0x6ef9('0x39')][0x7]?_0x319e7d['attrs'][0x7][_0x6ef9('0x3a')]:undefined)||''},{'name':_0x6ef9('0x4b'),'value':_0x319e7d['attrWhatsappAccounts']||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x8]?_0x319e7d[_0x6ef9('0x39')][0x8][_0x6ef9('0x3a')]:undefined)||''},{'name':_0x6ef9('0x4c'),'value':_0x319e7d['attrChatWebsites']||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x9]?_0x319e7d[_0x6ef9('0x39')][0x9][_0x6ef9('0x3a')]:undefined)||''}];case _0x6ef9('0x4d'):case _0x6ef9('0x4e'):return[{'name':'attrSerie1','value':_0x319e7d['attrSerie1']||(_0x319e7d['attrs']&&_0x319e7d[_0x6ef9('0x39')][0x0]?_0x319e7d['attrs'][0x0][_0x6ef9('0x3a')]:undefined)||_0x6ef9('0x43')},{'name':'attrSerie2','value':_0x319e7d[_0x6ef9('0x4f')]||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x1]?_0x319e7d[_0x6ef9('0x39')][0x1][_0x6ef9('0x3a')]:undefined)||null},{'name':'attrSerie3','value':_0x319e7d['attrSerie3']||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d['attrs'][0x2]?_0x319e7d[_0x6ef9('0x39')][0x2][_0x6ef9('0x3a')]:undefined)||null},{'name':'attrVoiceQueues','value':_0x319e7d['attrVoiceQueues']||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x3]?_0x319e7d[_0x6ef9('0x39')][0x3][_0x6ef9('0x3a')]:undefined)||[]},{'name':_0x6ef9('0x45'),'value':_0x319e7d['attrChannel']||(_0x319e7d['attrs']&&_0x319e7d[_0x6ef9('0x39')][0x4]?_0x319e7d[_0x6ef9('0x39')][0x4][_0x6ef9('0x3a')]:undefined)||'voice'},{'name':_0x6ef9('0x47'),'value':_0x319e7d[_0x6ef9('0x47')]||(_0x319e7d['attrs']&&_0x319e7d[_0x6ef9('0x39')][0x5]?_0x319e7d['attrs'][0x5][_0x6ef9('0x3a')]:undefined)||''},{'name':_0x6ef9('0x48'),'value':_0x319e7d[_0x6ef9('0x48')]||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x6]?_0x319e7d[_0x6ef9('0x39')][0x6][_0x6ef9('0x3a')]:undefined)||''},{'name':'attrSmsAccounts','value':_0x319e7d[_0x6ef9('0x49')]||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x7]?_0x319e7d[_0x6ef9('0x39')][0x7]['value']:undefined)||''},{'name':'attrOpenchannelAccounts','value':_0x319e7d[_0x6ef9('0x4a')]||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x8]?_0x319e7d[_0x6ef9('0x39')][0x8][_0x6ef9('0x3a')]:undefined)||''},{'name':_0x6ef9('0x4b'),'value':_0x319e7d['attrWhatsappAccounts']||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x9]?_0x319e7d['attrs'][0x9]['value']:undefined)||''},{'name':_0x6ef9('0x4c'),'value':_0x319e7d[_0x6ef9('0x4c')]||(_0x319e7d['attrs']&&_0x319e7d[_0x6ef9('0x39')][0xa]?_0x319e7d[_0x6ef9('0x39')][0xa][_0x6ef9('0x3a')]:undefined)||''}];case _0x6ef9('0x50'):return[{'name':'attrReport','type':_0x319e7d[_0x6ef9('0x51')]||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x0]?_0x319e7d[_0x6ef9('0x39')][0x0][_0x6ef9('0x36')]:undefined)||null,'value':_0x319e7d['attrReport']||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x0]?_0x319e7d['attrs'][0x0]['value']:undefined)||null},{'name':_0x6ef9('0x52'),'value':_0x319e7d[_0x6ef9('0x52')]||(_0x319e7d[_0x6ef9('0x39')]&&_0x319e7d[_0x6ef9('0x39')][0x1]?_0x319e7d[_0x6ef9('0x39')][0x1][_0x6ef9('0x3a')]:undefined)||0x0}];default:return[];}}catch(_0x29c6ee){logger['error']('widgetAttributes:\x20%s',JSON[_0x6ef9('0x53')](_0x29c6ee));return[];}}exports[_0x6ef9('0x54')]=function(_0x1f85a4,_0x322f8e){if(_0x1f85a4[_0x6ef9('0x55')]){_0x1f85a4['body'][_0x6ef9('0x39')]=widgetAttributes(_0x1f85a4['body']);}return db[_0x6ef9('0x2c')][_0x6ef9('0x54')](_0x1f85a4['body'],{})['then'](respondWithResult(_0x322f8e,0xc9))[_0x6ef9('0x35')](handleError(_0x322f8e,null));};exports[_0x6ef9('0x26')]=function(_0x200896,_0x24a3d5){if(_0x200896['body']['id']){delete _0x200896['body']['id'];}_0x200896[_0x6ef9('0x55')]['attrs']=widgetAttributes(_0x200896['body']);return db[_0x6ef9('0x2c')][_0x6ef9('0x34')]({'where':{'id':_0x200896['params']['id']}})[_0x6ef9('0x27')](handleEntityNotFound(_0x24a3d5,null))['then'](saveUpdates(_0x200896[_0x6ef9('0x55')],null))['then'](respondWithResult(_0x24a3d5,null))[_0x6ef9('0x35')](handleError(_0x24a3d5,null));};