Built motion from commit 9e1ec266.|2.6.28
[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 _0x0024=['./dashboardItem.socket','register','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','save','update','destroy','then','error','stack','name','show','params','model','keys','DashboardItem','rawAttributes','query','filters','intersection','attributes','fields','length','includeAll','include','options','catch','find','iframe','attrUrl','value','attrPath','attrs','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrOpenchannelAccounts','attrChatWebsites','pie-chart','attrSerie1','attrSerie2','attrSerie3','attrSmsAccounts','attrWhatsappAccounts','web-report','attrReport','reportType','type','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','rimraf','fast-json-patch','moment','util','path','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter'];(function(_0x2987b7,_0x2a79ea){var _0x3fd9d6=function(_0x3c5b54){while(--_0x3c5b54){_0x2987b7['push'](_0x2987b7['shift']());}};_0x3fd9d6(++_0x2a79ea);}(_0x0024,0xa8));var _0x4002=function(_0x88d3a,_0x5541d5){_0x88d3a=_0x88d3a-0x0;var _0x549872=_0x0024[_0x88d3a];return _0x549872;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4002('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4002('0x1'));var rp=require('request-promise');var moment=require(_0x4002('0x2'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x4002('0x3'));var path=require(_0x4002('0x4'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x4002('0x5'));var fs=require('fs');var fs_extra=require(_0x4002('0x6'));var _=require(_0x4002('0x7'));var squel=require(_0x4002('0x8'));var crypto=require('crypto');var jsforce=require(_0x4002('0x9'));var deskjs=require(_0x4002('0xa'));var toCsv=require(_0x4002('0xb'));var querystring=require(_0x4002('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x4002('0xd'));var qs=require(_0x4002('0xe'));var as=require(_0x4002('0xf'));var hardwareService=require(_0x4002('0x10'));var logger=require(_0x4002('0x11'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x4002('0x12'));var db=require(_0x4002('0x13'))['db'];config[_0x4002('0x14')]=_[_0x4002('0x15')](config['redis'],{'host':_0x4002('0x16'),'port':0x18eb});var socket=require(_0x4002('0x17'))(new Redis(config[_0x4002('0x14')]));require(_0x4002('0x18'))[_0x4002('0x19')](socket);function respondWithStatusCode(_0x50a1a8,_0x77b4c0){_0x77b4c0=_0x77b4c0||0xcc;return function(_0x4fe0b5){if(_0x4fe0b5){return _0x50a1a8[_0x4002('0x1a')](_0x77b4c0);}return _0x50a1a8[_0x4002('0x1b')](_0x77b4c0)[_0x4002('0x1c')]();};}function respondWithResult(_0x5813ff,_0x43a7e1){_0x43a7e1=_0x43a7e1||0xc8;return function(_0x5c4a33){if(_0x5c4a33){return _0x5813ff['status'](_0x43a7e1)[_0x4002('0x1d')](_0x5c4a33);}};}function respondWithFilteredResult(_0x3facc1,_0x4c0071){return function(_0x1b3401){if(_0x1b3401){var _0x4d5754=typeof _0x4c0071['offset']==='undefined'&&typeof _0x4c0071[_0x4002('0x1e')]===_0x4002('0x1f');var _0x283708=_0x1b3401[_0x4002('0x20')];var _0x514dfe=_0x4d5754?0x0:_0x4c0071[_0x4002('0x21')];var _0x1a5364=_0x4d5754?_0x1b3401[_0x4002('0x20')]:_0x4c0071['offset']+_0x4c0071[_0x4002('0x1e')];var _0x51b709;if(_0x1a5364>=_0x283708){_0x1a5364=_0x283708;_0x51b709=0xc8;}else{_0x51b709=0xce;}_0x3facc1[_0x4002('0x1b')](_0x51b709);return _0x3facc1[_0x4002('0x22')](_0x4002('0x23'),_0x514dfe+'-'+_0x1a5364+'/'+_0x283708)['json'](_0x1b3401);}return null;};}function patchUpdates(_0x52add8){return function(_0x447851){try{jsonpatch[_0x4002('0x24')](_0x447851,_0x52add8,!![]);}catch(_0x254b67){return BPromise['reject'](_0x254b67);}return _0x447851[_0x4002('0x25')]();};}function saveUpdates(_0x27732c,_0x18b000){return function(_0x23e917){if(_0x23e917){return _0x23e917[_0x4002('0x26')](_0x27732c)['then'](function(_0x3396d8){return _0x3396d8;});}return null;};}function removeEntity(_0x1dfb81,_0x385c35){return function(_0x425b3f){if(_0x425b3f){return _0x425b3f[_0x4002('0x27')]()[_0x4002('0x28')](function(){_0x1dfb81['status'](0xcc)[_0x4002('0x1c')]();});}};}function handleEntityNotFound(_0x2d148e,_0x49e273){return function(_0xf5ae88){if(!_0xf5ae88){_0x2d148e[_0x4002('0x1a')](0x194);}return _0xf5ae88;};}function handleError(_0x569154,_0xa7b46a){_0xa7b46a=_0xa7b46a||0x1f4;return function(_0x278907){logger[_0x4002('0x29')](_0x278907[_0x4002('0x2a')]);if(_0x278907[_0x4002('0x2b')]){delete _0x278907[_0x4002('0x2b')];}_0x569154[_0x4002('0x1b')](_0xa7b46a)['send'](_0x278907);};}exports[_0x4002('0x2c')]=function(_0x162173,_0x237704){var _0x598048={'raw':![],'where':{'id':_0x162173[_0x4002('0x2d')]['id']}},_0x52f488={};_0x52f488[_0x4002('0x2e')]=_[_0x4002('0x2f')](db[_0x4002('0x30')][_0x4002('0x31')]);_0x52f488[_0x4002('0x32')]=_[_0x4002('0x2f')](_0x162173[_0x4002('0x32')]);_0x52f488[_0x4002('0x33')]=_[_0x4002('0x34')](_0x52f488['model'],_0x52f488[_0x4002('0x32')]);_0x598048[_0x4002('0x35')]=_[_0x4002('0x34')](_0x52f488['model'],qs[_0x4002('0x36')](_0x162173[_0x4002('0x32')][_0x4002('0x36')]));_0x598048['attributes']=_0x598048[_0x4002('0x35')][_0x4002('0x37')]?_0x598048[_0x4002('0x35')]:_0x52f488[_0x4002('0x2e')];if(_0x162173[_0x4002('0x32')][_0x4002('0x38')]){_0x598048[_0x4002('0x39')]=[{'all':!![]}];}_0x598048=_['merge']({},_0x598048,_0x162173[_0x4002('0x3a')]);return db[_0x4002('0x30')]['find'](_0x598048)['then'](handleEntityNotFound(_0x237704,null))[_0x4002('0x28')](respondWithResult(_0x237704,null))[_0x4002('0x3b')](handleError(_0x237704,null));};exports[_0x4002('0x27')]=function(_0x5e412,_0x94ecc3){return db[_0x4002('0x30')][_0x4002('0x3c')]({'where':{'id':_0x5e412[_0x4002('0x2d')]['id']}})['then'](handleEntityNotFound(_0x94ecc3,null))[_0x4002('0x28')](removeEntity(_0x94ecc3,null))[_0x4002('0x3b')](handleError(_0x94ecc3,null));};function widgetAttributes(_0x3c1330){try{switch(_0x3c1330['type']){case _0x4002('0x3d'):return[{'name':'attrUrl','value':_0x3c1330[_0x4002('0x3e')]||(_0x3c1330['attrs']&&_0x3c1330['attrs'][0x0]?_0x3c1330['attrs'][0x0][_0x4002('0x3f')]:undefined)||'https://'}];case'custom':return[{'name':'attrPath','value':_0x3c1330[_0x4002('0x40')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330[_0x4002('0x41')][0x0]?_0x3c1330['attrs'][0x0][_0x4002('0x3f')]:undefined)||''}];case _0x4002('0x42'):return[{'name':_0x4002('0x43'),'value':_0x3c1330[_0x4002('0x43')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330[_0x4002('0x41')][0x0]?_0x3c1330['attrs'][0x0][_0x4002('0x3f')]:undefined)||_0x4002('0x44')},{'name':_0x4002('0x45'),'value':_0x3c1330[_0x4002('0x45')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330['attrs'][0x1]?_0x3c1330[_0x4002('0x41')][0x1]['value']:undefined)||_0x4002('0x46')},{'name':_0x4002('0x47'),'value':_0x3c1330['attrFontSize']||(_0x3c1330['attrs']&&_0x3c1330[_0x4002('0x41')][0x2]?_0x3c1330[_0x4002('0x41')][0x2]['value']:undefined)||0xc}];case'counter':return[{'name':_0x4002('0x48'),'value':_0x3c1330[_0x4002('0x48')]||(_0x3c1330['attrs']&&_0x3c1330[_0x4002('0x41')][0x0]?_0x3c1330[_0x4002('0x41')][0x0][_0x4002('0x3f')]:undefined)||_0x4002('0x49')},{'name':_0x4002('0x4a'),'value':_0x3c1330[_0x4002('0x4a')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330[_0x4002('0x41')][0x1]?_0x3c1330['attrs'][0x1]['value']:undefined)||[]},{'name':'attrFontSize','value':_0x3c1330[_0x4002('0x47')]||(_0x3c1330['attrs']&&_0x3c1330[_0x4002('0x41')][0x2]?_0x3c1330['attrs'][0x2][_0x4002('0x3f')]:undefined)||0x14},{'name':_0x4002('0x4b'),'value':_0x3c1330[_0x4002('0x4b')]||(_0x3c1330['attrs']&&_0x3c1330[_0x4002('0x41')][0x3]?_0x3c1330['attrs'][0x3]['value']:undefined)||_0x4002('0x4c')},{'name':_0x4002('0x4d'),'value':_0x3c1330[_0x4002('0x4d')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330['attrs'][0x4]?_0x3c1330['attrs'][0x4][_0x4002('0x3f')]:undefined)||''},{'name':_0x4002('0x4e'),'value':_0x3c1330[_0x4002('0x4e')]||(_0x3c1330['attrs']&&_0x3c1330[_0x4002('0x41')][0x5]?_0x3c1330['attrs'][0x5][_0x4002('0x3f')]:undefined)||''},{'name':'attrSmsAccounts','value':_0x3c1330['attrSmsAccounts']||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330[_0x4002('0x41')][0x6]?_0x3c1330['attrs'][0x6][_0x4002('0x3f')]:undefined)||''},{'name':_0x4002('0x4f'),'value':_0x3c1330[_0x4002('0x4f')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330['attrs'][0x7]?_0x3c1330['attrs'][0x7][_0x4002('0x3f')]:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x3c1330['attrWhatsappAccounts']||(_0x3c1330['attrs']&&_0x3c1330[_0x4002('0x41')][0x8]?_0x3c1330[_0x4002('0x41')][0x8]['value']:undefined)||''},{'name':_0x4002('0x50'),'value':_0x3c1330[_0x4002('0x50')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330[_0x4002('0x41')][0x9]?_0x3c1330[_0x4002('0x41')][0x9][_0x4002('0x3f')]:undefined)||''}];case'multibar-chart':case _0x4002('0x51'):return[{'name':_0x4002('0x52'),'value':_0x3c1330['attrSerie1']||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330[_0x4002('0x41')][0x0]?_0x3c1330['attrs'][0x0][_0x4002('0x3f')]:undefined)||_0x4002('0x49')},{'name':_0x4002('0x53'),'value':_0x3c1330[_0x4002('0x53')]||(_0x3c1330['attrs']&&_0x3c1330[_0x4002('0x41')][0x1]?_0x3c1330[_0x4002('0x41')][0x1][_0x4002('0x3f')]:undefined)||null},{'name':_0x4002('0x54'),'value':_0x3c1330[_0x4002('0x54')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330[_0x4002('0x41')][0x2]?_0x3c1330[_0x4002('0x41')][0x2][_0x4002('0x3f')]:undefined)||null},{'name':'attrVoiceQueues','value':_0x3c1330[_0x4002('0x4a')]||(_0x3c1330['attrs']&&_0x3c1330['attrs'][0x3]?_0x3c1330[_0x4002('0x41')][0x3]['value']:undefined)||[]},{'name':_0x4002('0x4b'),'value':_0x3c1330[_0x4002('0x4b')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330[_0x4002('0x41')][0x4]?_0x3c1330[_0x4002('0x41')][0x4][_0x4002('0x3f')]:undefined)||_0x4002('0x4c')},{'name':_0x4002('0x4d'),'value':_0x3c1330[_0x4002('0x4d')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330[_0x4002('0x41')][0x5]?_0x3c1330[_0x4002('0x41')][0x5][_0x4002('0x3f')]:undefined)||''},{'name':_0x4002('0x4e'),'value':_0x3c1330[_0x4002('0x4e')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330[_0x4002('0x41')][0x6]?_0x3c1330[_0x4002('0x41')][0x6][_0x4002('0x3f')]:undefined)||''},{'name':_0x4002('0x55'),'value':_0x3c1330[_0x4002('0x55')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330[_0x4002('0x41')][0x7]?_0x3c1330[_0x4002('0x41')][0x7][_0x4002('0x3f')]:undefined)||''},{'name':_0x4002('0x4f'),'value':_0x3c1330[_0x4002('0x4f')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330[_0x4002('0x41')][0x8]?_0x3c1330[_0x4002('0x41')][0x8][_0x4002('0x3f')]:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x3c1330[_0x4002('0x56')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330['attrs'][0x9]?_0x3c1330[_0x4002('0x41')][0x9]['value']:undefined)||''},{'name':'attrChatWebsites','value':_0x3c1330[_0x4002('0x50')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330[_0x4002('0x41')][0xa]?_0x3c1330['attrs'][0xa]['value']:undefined)||''}];case _0x4002('0x57'):return[{'name':_0x4002('0x58'),'type':_0x3c1330[_0x4002('0x59')]||(_0x3c1330['attrs']&&_0x3c1330['attrs'][0x0]?_0x3c1330[_0x4002('0x41')][0x0][_0x4002('0x5a')]:undefined)||null,'value':_0x3c1330['attrReport']||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330[_0x4002('0x41')][0x0]?_0x3c1330[_0x4002('0x41')][0x0]['value']:undefined)||null},{'name':_0x4002('0x5b'),'value':_0x3c1330[_0x4002('0x5b')]||(_0x3c1330[_0x4002('0x41')]&&_0x3c1330['attrs'][0x1]?_0x3c1330[_0x4002('0x41')][0x1][_0x4002('0x3f')]:undefined)||0x0}];default:return[];}}catch(_0x51a951){logger[_0x4002('0x29')](_0x4002('0x5c'),JSON[_0x4002('0x5d')](_0x51a951));return[];}}exports[_0x4002('0x5e')]=function(_0x5d1c12,_0x57922d){if(_0x5d1c12[_0x4002('0x5f')]){_0x5d1c12['body'][_0x4002('0x41')]=widgetAttributes(_0x5d1c12[_0x4002('0x5f')]);}return db[_0x4002('0x30')][_0x4002('0x5e')](_0x5d1c12['body'],{})[_0x4002('0x28')](respondWithResult(_0x57922d,0xc9))['catch'](handleError(_0x57922d,null));};exports[_0x4002('0x26')]=function(_0x4f596d,_0x2c0af7){if(_0x4f596d['body']['id']){delete _0x4f596d[_0x4002('0x5f')]['id'];}_0x4f596d['body'][_0x4002('0x41')]=widgetAttributes(_0x4f596d[_0x4002('0x5f')]);return db[_0x4002('0x30')][_0x4002('0x3c')]({'where':{'id':_0x4f596d[_0x4002('0x2d')]['id']}})['then'](handleEntityNotFound(_0x2c0af7,null))[_0x4002('0x28')](saveUpdates(_0x4f596d['body'],null))[_0x4002('0x28')](respondWithResult(_0x2c0af7,null))[_0x4002('0x3b')](handleError(_0x2c0af7,null));};