2676295ac43372309d04d9b416e5d294ff474334
[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 _0x5496=['../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','./dashboardItem.socket','register','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','then','sendStatus','error','name','show','params','model','keys','DashboardItem','rawAttributes','query','filters','intersection','fields','attributes','includeAll','find','catch','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','attrSerie1','attrSerie2','attrSerie3','web-report','reportType','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x1b71fd,_0x1c9703){var _0x550e06=function(_0x56def5){while(--_0x56def5){_0x1b71fd['push'](_0x1b71fd['shift']());}};_0x550e06(++_0x1c9703);}(_0x5496,0x175));var _0x6549=function(_0x53ea7d,_0x3c977b){_0x53ea7d=_0x53ea7d-0x0;var _0x2fb9fd=_0x5496[_0x53ea7d];return _0x2fb9fd;};'use strict';var emlformat=require(_0x6549('0x0'));var rimraf=require(_0x6549('0x1'));var zipdir=require(_0x6549('0x2'));var jsonpatch=require(_0x6549('0x3'));var rp=require(_0x6549('0x4'));var moment=require('moment');var BPromise=require(_0x6549('0x5'));var Mustache=require('mustache');var util=require(_0x6549('0x6'));var path=require(_0x6549('0x7'));var sox=require(_0x6549('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6549('0x9'));var _=require(_0x6549('0xa'));var squel=require('squel');var crypto=require(_0x6549('0xb'));var jsforce=require(_0x6549('0xc'));var deskjs=require(_0x6549('0xd'));var toCsv=require('to-csv');var querystring=require(_0x6549('0xe'));var Papa=require(_0x6549('0xf'));var Redis=require(_0x6549('0x10'));var authService=require(_0x6549('0x11'));var qs=require(_0x6549('0x12'));var as=require(_0x6549('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x6549('0x14'));var utils=require(_0x6549('0x15'));var config=require(_0x6549('0x16'));var licenseUtil=require(_0x6549('0x17'));var db=require(_0x6549('0x18'))['db'];config['redis']=_['defaults'](config[_0x6549('0x19')],{'host':_0x6549('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x6549('0x19')]));require(_0x6549('0x1b'))[_0x6549('0x1c')](socket);function respondWithStatusCode(_0x12b068,_0xc0e859){_0xc0e859=_0xc0e859||0xcc;return function(_0x86ae9d){if(_0x86ae9d){return _0x12b068['sendStatus'](_0xc0e859);}return _0x12b068['status'](_0xc0e859)[_0x6549('0x1d')]();};}function respondWithResult(_0x25da29,_0x47a81a){_0x47a81a=_0x47a81a||0xc8;return function(_0x238a04){if(_0x238a04){return _0x25da29[_0x6549('0x1e')](_0x47a81a)[_0x6549('0x1f')](_0x238a04);}};}function respondWithFilteredResult(_0x387e60,_0xffc8b9){return function(_0x53b12b){if(_0x53b12b){var _0x5d61a0=typeof _0xffc8b9[_0x6549('0x20')]==='undefined'&&typeof _0xffc8b9['limit']===_0x6549('0x21');var _0x1e5079=_0x53b12b[_0x6549('0x22')];var _0xfca192=_0x5d61a0?0x0:_0xffc8b9[_0x6549('0x20')];var _0x5ce3aa=_0x5d61a0?_0x53b12b[_0x6549('0x22')]:_0xffc8b9['offset']+_0xffc8b9[_0x6549('0x23')];var _0x72322b;if(_0x5ce3aa>=_0x1e5079){_0x5ce3aa=_0x1e5079;_0x72322b=0xc8;}else{_0x72322b=0xce;}_0x387e60[_0x6549('0x1e')](_0x72322b);return _0x387e60[_0x6549('0x24')](_0x6549('0x25'),_0xfca192+'-'+_0x5ce3aa+'/'+_0x1e5079)[_0x6549('0x1f')](_0x53b12b);}return null;};}function patchUpdates(_0x427b47){return function(_0x25bc01){try{jsonpatch[_0x6549('0x26')](_0x25bc01,_0x427b47,!![]);}catch(_0x6ae00c){return BPromise[_0x6549('0x27')](_0x6ae00c);}return _0x25bc01[_0x6549('0x28')]();};}function saveUpdates(_0x23c0ba,_0x5eeacd){return function(_0x30404e){if(_0x30404e){return _0x30404e[_0x6549('0x29')](_0x23c0ba)['then'](function(_0x126967){return _0x126967;});}return null;};}function removeEntity(_0x29f89e,_0x3768cb){return function(_0x583c7d){if(_0x583c7d){return _0x583c7d[_0x6549('0x2a')]()[_0x6549('0x2b')](function(){_0x29f89e[_0x6549('0x1e')](0xcc)[_0x6549('0x1d')]();});}};}function handleEntityNotFound(_0x442862,_0x3edf02){return function(_0x2f58f7){if(!_0x2f58f7){_0x442862[_0x6549('0x2c')](0x194);}return _0x2f58f7;};}function handleError(_0x4c52f1,_0x1794bc){_0x1794bc=_0x1794bc||0x1f4;return function(_0x136518){logger[_0x6549('0x2d')](_0x136518['stack']);if(_0x136518[_0x6549('0x2e')]){delete _0x136518['name'];}_0x4c52f1['status'](_0x1794bc)['send'](_0x136518);};}exports[_0x6549('0x2f')]=function(_0x219a96,_0x4f3069){var _0x30aac6={'raw':![],'where':{'id':_0x219a96[_0x6549('0x30')]['id']}},_0x194ae7={};_0x194ae7[_0x6549('0x31')]=_[_0x6549('0x32')](db[_0x6549('0x33')][_0x6549('0x34')]);_0x194ae7['query']=_[_0x6549('0x32')](_0x219a96[_0x6549('0x35')]);_0x194ae7[_0x6549('0x36')]=_[_0x6549('0x37')](_0x194ae7[_0x6549('0x31')],_0x194ae7[_0x6549('0x35')]);_0x30aac6['attributes']=_[_0x6549('0x37')](_0x194ae7['model'],qs[_0x6549('0x38')](_0x219a96['query'][_0x6549('0x38')]));_0x30aac6[_0x6549('0x39')]=_0x30aac6[_0x6549('0x39')]['length']?_0x30aac6[_0x6549('0x39')]:_0x194ae7[_0x6549('0x31')];if(_0x219a96[_0x6549('0x35')][_0x6549('0x3a')]){_0x30aac6['include']=[{'all':!![]}];}_0x30aac6=_['merge']({},_0x30aac6,_0x219a96['options']);return db[_0x6549('0x33')][_0x6549('0x3b')](_0x30aac6)['then'](handleEntityNotFound(_0x4f3069,null))[_0x6549('0x2b')](respondWithResult(_0x4f3069,null))[_0x6549('0x3c')](handleError(_0x4f3069,null));};exports[_0x6549('0x2a')]=function(_0xcf6db5,_0x3741f5){return db['DashboardItem']['find']({'where':{'id':_0xcf6db5[_0x6549('0x30')]['id']}})[_0x6549('0x2b')](handleEntityNotFound(_0x3741f5,null))[_0x6549('0x2b')](removeEntity(_0x3741f5,null))[_0x6549('0x3c')](handleError(_0x3741f5,null));};function widgetAttributes(_0xa96598){try{switch(_0xa96598[_0x6549('0x3d')]){case _0x6549('0x3e'):return[{'name':_0x6549('0x3f'),'value':_0xa96598[_0x6549('0x3f')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598['attrs'][0x0]?_0xa96598[_0x6549('0x40')][0x0][_0x6549('0x41')]:undefined)||_0x6549('0x42')}];case _0x6549('0x43'):return[{'name':_0x6549('0x44'),'value':_0xa96598['attrPath']||(_0xa96598['attrs']&&_0xa96598['attrs'][0x0]?_0xa96598[_0x6549('0x40')][0x0][_0x6549('0x41')]:undefined)||''}];case _0x6549('0x45'):return[{'name':_0x6549('0x46'),'value':_0xa96598['attrHourFormat']||(_0xa96598['attrs']&&_0xa96598[_0x6549('0x40')][0x0]?_0xa96598[_0x6549('0x40')][0x0][_0x6549('0x41')]:undefined)||'HH:mm:ss'},{'name':_0x6549('0x47'),'value':_0xa96598['attrTimezone']||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x1]?_0xa96598[_0x6549('0x40')][0x1][_0x6549('0x41')]:undefined)||_0x6549('0x48')},{'name':_0x6549('0x49'),'value':_0xa96598[_0x6549('0x49')]||(_0xa96598['attrs']&&_0xa96598[_0x6549('0x40')][0x2]?_0xa96598[_0x6549('0x40')][0x2][_0x6549('0x41')]:undefined)||0xc}];case _0x6549('0x4a'):return[{'name':_0x6549('0x4b'),'value':_0xa96598[_0x6549('0x4b')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x0]?_0xa96598[_0x6549('0x40')][0x0][_0x6549('0x41')]:undefined)||_0x6549('0x4c')},{'name':_0x6549('0x4d'),'value':_0xa96598[_0x6549('0x4d')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x1]?_0xa96598[_0x6549('0x40')][0x1]['value']:undefined)||[]},{'name':_0x6549('0x49'),'value':_0xa96598[_0x6549('0x49')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x2]?_0xa96598['attrs'][0x2][_0x6549('0x41')]:undefined)||0x14},{'name':'attrChannel','value':_0xa96598[_0x6549('0x4e')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598['attrs'][0x3]?_0xa96598[_0x6549('0x40')][0x3][_0x6549('0x41')]:undefined)||_0x6549('0x4f')},{'name':_0x6549('0x50'),'value':_0xa96598[_0x6549('0x50')]||(_0xa96598['attrs']&&_0xa96598['attrs'][0x4]?_0xa96598[_0x6549('0x40')][0x4][_0x6549('0x41')]:undefined)||''},{'name':_0x6549('0x51'),'value':_0xa96598[_0x6549('0x51')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598['attrs'][0x5]?_0xa96598[_0x6549('0x40')][0x5][_0x6549('0x41')]:undefined)||''},{'name':_0x6549('0x52'),'value':_0xa96598[_0x6549('0x52')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x6]?_0xa96598[_0x6549('0x40')][0x6][_0x6549('0x41')]:undefined)||''},{'name':'attrOpenchannelAccounts','value':_0xa96598[_0x6549('0x53')]||(_0xa96598['attrs']&&_0xa96598[_0x6549('0x40')][0x7]?_0xa96598[_0x6549('0x40')][0x7][_0x6549('0x41')]:undefined)||''},{'name':'attrWhatsappAccounts','value':_0xa96598[_0x6549('0x54')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x8]?_0xa96598['attrs'][0x8][_0x6549('0x41')]:undefined)||''},{'name':_0x6549('0x55'),'value':_0xa96598[_0x6549('0x55')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x9]?_0xa96598[_0x6549('0x40')][0x9]['value']:undefined)||''}];case _0x6549('0x56'):case'pie-chart':return[{'name':_0x6549('0x57'),'value':_0xa96598[_0x6549('0x57')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x0]?_0xa96598[_0x6549('0x40')][0x0][_0x6549('0x41')]:undefined)||_0x6549('0x4c')},{'name':_0x6549('0x58'),'value':_0xa96598[_0x6549('0x58')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x1]?_0xa96598[_0x6549('0x40')][0x1]['value']:undefined)||null},{'name':_0x6549('0x59'),'value':_0xa96598[_0x6549('0x59')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x2]?_0xa96598[_0x6549('0x40')][0x2][_0x6549('0x41')]:undefined)||null},{'name':_0x6549('0x4d'),'value':_0xa96598[_0x6549('0x4d')]||(_0xa96598['attrs']&&_0xa96598[_0x6549('0x40')][0x3]?_0xa96598[_0x6549('0x40')][0x3][_0x6549('0x41')]:undefined)||[]},{'name':_0x6549('0x4e'),'value':_0xa96598[_0x6549('0x4e')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x4]?_0xa96598[_0x6549('0x40')][0x4]['value']:undefined)||_0x6549('0x4f')},{'name':_0x6549('0x50'),'value':_0xa96598[_0x6549('0x50')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x5]?_0xa96598[_0x6549('0x40')][0x5]['value']:undefined)||''},{'name':_0x6549('0x51'),'value':_0xa96598[_0x6549('0x51')]||(_0xa96598['attrs']&&_0xa96598[_0x6549('0x40')][0x6]?_0xa96598[_0x6549('0x40')][0x6][_0x6549('0x41')]:undefined)||''},{'name':'attrSmsAccounts','value':_0xa96598[_0x6549('0x52')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598['attrs'][0x7]?_0xa96598[_0x6549('0x40')][0x7]['value']:undefined)||''},{'name':_0x6549('0x53'),'value':_0xa96598['attrOpenchannelAccounts']||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x8]?_0xa96598[_0x6549('0x40')][0x8][_0x6549('0x41')]:undefined)||''},{'name':_0x6549('0x54'),'value':_0xa96598[_0x6549('0x54')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x9]?_0xa96598[_0x6549('0x40')][0x9][_0x6549('0x41')]:undefined)||''},{'name':_0x6549('0x55'),'value':_0xa96598[_0x6549('0x55')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0xa]?_0xa96598['attrs'][0xa][_0x6549('0x41')]:undefined)||''}];case _0x6549('0x5a'):return[{'name':'attrReport','type':_0xa96598[_0x6549('0x5b')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x0]?_0xa96598[_0x6549('0x40')][0x0]['type']:undefined)||null,'value':_0xa96598[_0x6549('0x5c')]||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x0]?_0xa96598[_0x6549('0x40')][0x0]['value']:undefined)||null},{'name':_0x6549('0x5d'),'value':_0xa96598['attrRefresh']||(_0xa96598[_0x6549('0x40')]&&_0xa96598[_0x6549('0x40')][0x1]?_0xa96598[_0x6549('0x40')][0x1][_0x6549('0x41')]:undefined)||0x0}];default:return[];}}catch(_0x179dd7){logger[_0x6549('0x2d')](_0x6549('0x5e'),JSON[_0x6549('0x5f')](_0x179dd7));return[];}}exports[_0x6549('0x60')]=function(_0x1cd528,_0x49427f){if(_0x1cd528[_0x6549('0x61')]){_0x1cd528[_0x6549('0x61')][_0x6549('0x40')]=widgetAttributes(_0x1cd528[_0x6549('0x61')]);}return db[_0x6549('0x33')][_0x6549('0x60')](_0x1cd528['body'],{})['then'](respondWithResult(_0x49427f,0xc9))[_0x6549('0x3c')](handleError(_0x49427f,null));};exports[_0x6549('0x29')]=function(_0x34ee76,_0x4e8333){if(_0x34ee76[_0x6549('0x61')]['id']){delete _0x34ee76[_0x6549('0x61')]['id'];}_0x34ee76['body'][_0x6549('0x40')]=widgetAttributes(_0x34ee76[_0x6549('0x61')]);return db[_0x6549('0x33')][_0x6549('0x3b')]({'where':{'id':_0x34ee76[_0x6549('0x30')]['id']}})[_0x6549('0x2b')](handleEntityNotFound(_0x4e8333,null))[_0x6549('0x2b')](saveUpdates(_0x34ee76[_0x6549('0x61')],null))['then'](respondWithResult(_0x4e8333,null))[_0x6549('0x3c')](handleError(_0x4e8333,null));};