712c93d90ed64fa7648c8c9ce9dad5c22bd90c4d
[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 _0xd8a5=['localhost','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','destroy','then','error','stack','name','show','params','model','keys','rawAttributes','query','filters','intersection','attributes','fields','merge','find','catch','DashboardItem','type','iframe','attrs','value','https://','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','attrFontSize','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','attrSerie1','attrSerie2','attrSerie3','reportType','widgetAttributes:\x20%s','stringify','body','create','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','defaults'];(function(_0x57c8a7,_0x595947){var _0x3dccc4=function(_0x1b2b46){while(--_0x1b2b46){_0x57c8a7['push'](_0x57c8a7['shift']());}};_0x3dccc4(++_0x595947);}(_0xd8a5,0x160));var _0x5d8a=function(_0x3d0dbf,_0x4c29e4){_0x3d0dbf=_0x3d0dbf-0x0;var _0x67e3ab=_0xd8a5[_0x3d0dbf];return _0x67e3ab;};'use strict';var emlformat=require(_0x5d8a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x5d8a('0x1'));var jsonpatch=require(_0x5d8a('0x2'));var rp=require('request-promise');var moment=require(_0x5d8a('0x3'));var BPromise=require(_0x5d8a('0x4'));var Mustache=require(_0x5d8a('0x5'));var util=require(_0x5d8a('0x6'));var path=require(_0x5d8a('0x7'));var sox=require(_0x5d8a('0x8'));var csv=require(_0x5d8a('0x9'));var ejs=require(_0x5d8a('0xa'));var fs=require('fs');var fs_extra=require(_0x5d8a('0xb'));var _=require(_0x5d8a('0xc'));var squel=require(_0x5d8a('0xd'));var crypto=require(_0x5d8a('0xe'));var jsforce=require(_0x5d8a('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x5d8a('0x9'));var querystring=require(_0x5d8a('0x10'));var Papa=require(_0x5d8a('0x11'));var Redis=require(_0x5d8a('0x12'));var authService=require(_0x5d8a('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x5d8a('0x14'));var hardwareService=require(_0x5d8a('0x15'));var logger=require(_0x5d8a('0x16'))(_0x5d8a('0x17'));var utils=require('../../config/utils');var config=require(_0x5d8a('0x18'));var licenseUtil=require(_0x5d8a('0x19'));var db=require('../../mysqldb')['db'];config[_0x5d8a('0x1a')]=_[_0x5d8a('0x1b')](config[_0x5d8a('0x1a')],{'host':_0x5d8a('0x1c'),'port':0x18eb});var socket=require(_0x5d8a('0x1d'))(new Redis(config[_0x5d8a('0x1a')]));require(_0x5d8a('0x1e'))[_0x5d8a('0x1f')](socket);function respondWithStatusCode(_0x3d852e,_0x33b2de){_0x33b2de=_0x33b2de||0xcc;return function(_0x94a2ba){if(_0x94a2ba){return _0x3d852e[_0x5d8a('0x20')](_0x33b2de);}return _0x3d852e['status'](_0x33b2de)['end']();};}function respondWithResult(_0x39a1b8,_0x1567e0){_0x1567e0=_0x1567e0||0xc8;return function(_0x596ab7){if(_0x596ab7){return _0x39a1b8[_0x5d8a('0x21')](_0x1567e0)[_0x5d8a('0x22')](_0x596ab7);}};}function respondWithFilteredResult(_0x341262,_0x129a1d){return function(_0x5eb748){if(_0x5eb748){var _0x16ff4e=typeof _0x129a1d['offset']===_0x5d8a('0x23')&&typeof _0x129a1d[_0x5d8a('0x24')]===_0x5d8a('0x23');var _0x235257=_0x5eb748[_0x5d8a('0x25')];var _0x478612=_0x16ff4e?0x0:_0x129a1d[_0x5d8a('0x26')];var _0x48fc2b=_0x16ff4e?_0x5eb748[_0x5d8a('0x25')]:_0x129a1d[_0x5d8a('0x26')]+_0x129a1d[_0x5d8a('0x24')];var _0x3c2524;if(_0x48fc2b>=_0x235257){_0x48fc2b=_0x235257;_0x3c2524=0xc8;}else{_0x3c2524=0xce;}_0x341262['status'](_0x3c2524);return _0x341262[_0x5d8a('0x27')](_0x5d8a('0x28'),_0x478612+'-'+_0x48fc2b+'/'+_0x235257)[_0x5d8a('0x22')](_0x5eb748);}return null;};}function patchUpdates(_0x5443b9){return function(_0x43d9ec){try{jsonpatch[_0x5d8a('0x29')](_0x43d9ec,_0x5443b9,!![]);}catch(_0x186aa9){return BPromise[_0x5d8a('0x2a')](_0x186aa9);}return _0x43d9ec['save']();};}function saveUpdates(_0x8cbf6e,_0x463519){return function(_0x482532){if(_0x482532){return _0x482532[_0x5d8a('0x2b')](_0x8cbf6e)['then'](function(_0x194b9e){return _0x194b9e;});}return null;};}function removeEntity(_0x281c93,_0x2f57da){return function(_0x564636){if(_0x564636){return _0x564636[_0x5d8a('0x2c')]()[_0x5d8a('0x2d')](function(){_0x281c93['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3a637f,_0x189617){return function(_0x20fae2){if(!_0x20fae2){_0x3a637f['sendStatus'](0x194);}return _0x20fae2;};}function handleError(_0x2fa9fd,_0x3cafbf){_0x3cafbf=_0x3cafbf||0x1f4;return function(_0x4e4c43){logger[_0x5d8a('0x2e')](_0x4e4c43[_0x5d8a('0x2f')]);if(_0x4e4c43[_0x5d8a('0x30')]){delete _0x4e4c43[_0x5d8a('0x30')];}_0x2fa9fd[_0x5d8a('0x21')](_0x3cafbf)['send'](_0x4e4c43);};}exports[_0x5d8a('0x31')]=function(_0x13c112,_0x6fda47){var _0x1b1d4b={'raw':![],'where':{'id':_0x13c112[_0x5d8a('0x32')]['id']}},_0x2b10e6={};_0x2b10e6[_0x5d8a('0x33')]=_[_0x5d8a('0x34')](db['DashboardItem'][_0x5d8a('0x35')]);_0x2b10e6[_0x5d8a('0x36')]=_[_0x5d8a('0x34')](_0x13c112[_0x5d8a('0x36')]);_0x2b10e6[_0x5d8a('0x37')]=_[_0x5d8a('0x38')](_0x2b10e6[_0x5d8a('0x33')],_0x2b10e6[_0x5d8a('0x36')]);_0x1b1d4b[_0x5d8a('0x39')]=_[_0x5d8a('0x38')](_0x2b10e6[_0x5d8a('0x33')],qs[_0x5d8a('0x3a')](_0x13c112['query'][_0x5d8a('0x3a')]));_0x1b1d4b[_0x5d8a('0x39')]=_0x1b1d4b[_0x5d8a('0x39')]['length']?_0x1b1d4b[_0x5d8a('0x39')]:_0x2b10e6['model'];if(_0x13c112[_0x5d8a('0x36')]['includeAll']){_0x1b1d4b['include']=[{'all':!![]}];}_0x1b1d4b=_[_0x5d8a('0x3b')]({},_0x1b1d4b,_0x13c112['options']);return db['DashboardItem'][_0x5d8a('0x3c')](_0x1b1d4b)[_0x5d8a('0x2d')](handleEntityNotFound(_0x6fda47,null))[_0x5d8a('0x2d')](respondWithResult(_0x6fda47,null))[_0x5d8a('0x3d')](handleError(_0x6fda47,null));};exports[_0x5d8a('0x2c')]=function(_0x2d9a48,_0x20fb04){return db[_0x5d8a('0x3e')][_0x5d8a('0x3c')]({'where':{'id':_0x2d9a48['params']['id']}})['then'](handleEntityNotFound(_0x20fb04,null))['then'](removeEntity(_0x20fb04,null))[_0x5d8a('0x3d')](handleError(_0x20fb04,null));};function widgetAttributes(_0x1d1c7a){try{switch(_0x1d1c7a[_0x5d8a('0x3f')]){case _0x5d8a('0x40'):return[{'name':'attrUrl','value':_0x1d1c7a['attrUrl']||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x0]?_0x1d1c7a[_0x5d8a('0x41')][0x0][_0x5d8a('0x42')]:undefined)||_0x5d8a('0x43')}];case _0x5d8a('0x44'):return[{'name':_0x5d8a('0x45'),'value':_0x1d1c7a['attrPath']||(_0x1d1c7a['attrs']&&_0x1d1c7a['attrs'][0x0]?_0x1d1c7a[_0x5d8a('0x41')][0x0][_0x5d8a('0x42')]:undefined)||''}];case _0x5d8a('0x46'):return[{'name':_0x5d8a('0x47'),'value':_0x1d1c7a[_0x5d8a('0x47')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x0]?_0x1d1c7a['attrs'][0x0][_0x5d8a('0x42')]:undefined)||_0x5d8a('0x48')},{'name':_0x5d8a('0x49'),'value':_0x1d1c7a['attrTimezone']||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x1]?_0x1d1c7a[_0x5d8a('0x41')][0x1][_0x5d8a('0x42')]:undefined)||'0.00'},{'name':'attrFontSize','value':_0x1d1c7a[_0x5d8a('0x4a')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x2]?_0x1d1c7a['attrs'][0x2][_0x5d8a('0x42')]:undefined)||0xc}];case'counter':return[{'name':_0x5d8a('0x4b'),'value':_0x1d1c7a[_0x5d8a('0x4b')]||(_0x1d1c7a['attrs']&&_0x1d1c7a['attrs'][0x0]?_0x1d1c7a[_0x5d8a('0x41')][0x0][_0x5d8a('0x42')]:undefined)||_0x5d8a('0x4c')},{'name':_0x5d8a('0x4d'),'value':_0x1d1c7a[_0x5d8a('0x4d')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x1]?_0x1d1c7a[_0x5d8a('0x41')][0x1][_0x5d8a('0x42')]:undefined)||[]},{'name':_0x5d8a('0x4a'),'value':_0x1d1c7a[_0x5d8a('0x4a')]||(_0x1d1c7a['attrs']&&_0x1d1c7a[_0x5d8a('0x41')][0x2]?_0x1d1c7a[_0x5d8a('0x41')][0x2][_0x5d8a('0x42')]:undefined)||0x14},{'name':_0x5d8a('0x4e'),'value':_0x1d1c7a[_0x5d8a('0x4e')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a['attrs'][0x3]?_0x1d1c7a['attrs'][0x3][_0x5d8a('0x42')]:undefined)||_0x5d8a('0x4f')},{'name':_0x5d8a('0x50'),'value':_0x1d1c7a[_0x5d8a('0x50')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x4]?_0x1d1c7a[_0x5d8a('0x41')][0x4][_0x5d8a('0x42')]:undefined)||''},{'name':'attrFaxAccounts','value':_0x1d1c7a[_0x5d8a('0x51')]||(_0x1d1c7a['attrs']&&_0x1d1c7a['attrs'][0x5]?_0x1d1c7a[_0x5d8a('0x41')][0x5]['value']:undefined)||''},{'name':_0x5d8a('0x52'),'value':_0x1d1c7a[_0x5d8a('0x52')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x6]?_0x1d1c7a['attrs'][0x6]['value']:undefined)||''},{'name':_0x5d8a('0x53'),'value':_0x1d1c7a[_0x5d8a('0x53')]||(_0x1d1c7a['attrs']&&_0x1d1c7a[_0x5d8a('0x41')][0x7]?_0x1d1c7a['attrs'][0x7]['value']:undefined)||''},{'name':_0x5d8a('0x54'),'value':_0x1d1c7a[_0x5d8a('0x54')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x8]?_0x1d1c7a['attrs'][0x8][_0x5d8a('0x42')]:undefined)||''},{'name':_0x5d8a('0x55'),'value':_0x1d1c7a[_0x5d8a('0x55')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x9]?_0x1d1c7a[_0x5d8a('0x41')][0x9][_0x5d8a('0x42')]:undefined)||''}];case _0x5d8a('0x56'):case'pie-chart':return[{'name':'attrSerie1','value':_0x1d1c7a[_0x5d8a('0x57')]||(_0x1d1c7a['attrs']&&_0x1d1c7a['attrs'][0x0]?_0x1d1c7a[_0x5d8a('0x41')][0x0][_0x5d8a('0x42')]:undefined)||'total'},{'name':'attrSerie2','value':_0x1d1c7a[_0x5d8a('0x58')]||(_0x1d1c7a['attrs']&&_0x1d1c7a[_0x5d8a('0x41')][0x1]?_0x1d1c7a['attrs'][0x1][_0x5d8a('0x42')]:undefined)||null},{'name':_0x5d8a('0x59'),'value':_0x1d1c7a[_0x5d8a('0x59')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x2]?_0x1d1c7a[_0x5d8a('0x41')][0x2][_0x5d8a('0x42')]:undefined)||null},{'name':'attrVoiceQueues','value':_0x1d1c7a[_0x5d8a('0x4d')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x3]?_0x1d1c7a[_0x5d8a('0x41')][0x3][_0x5d8a('0x42')]:undefined)||[]},{'name':'attrChannel','value':_0x1d1c7a[_0x5d8a('0x4e')]||(_0x1d1c7a['attrs']&&_0x1d1c7a[_0x5d8a('0x41')][0x4]?_0x1d1c7a['attrs'][0x4][_0x5d8a('0x42')]:undefined)||'voice'},{'name':_0x5d8a('0x50'),'value':_0x1d1c7a[_0x5d8a('0x50')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x5]?_0x1d1c7a[_0x5d8a('0x41')][0x5][_0x5d8a('0x42')]:undefined)||''},{'name':_0x5d8a('0x51'),'value':_0x1d1c7a[_0x5d8a('0x51')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x6]?_0x1d1c7a[_0x5d8a('0x41')][0x6][_0x5d8a('0x42')]:undefined)||''},{'name':_0x5d8a('0x52'),'value':_0x1d1c7a[_0x5d8a('0x52')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a['attrs'][0x7]?_0x1d1c7a[_0x5d8a('0x41')][0x7][_0x5d8a('0x42')]:undefined)||''},{'name':_0x5d8a('0x53'),'value':_0x1d1c7a[_0x5d8a('0x53')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x8]?_0x1d1c7a[_0x5d8a('0x41')][0x8]['value']:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x1d1c7a[_0x5d8a('0x54')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x9]?_0x1d1c7a['attrs'][0x9][_0x5d8a('0x42')]:undefined)||''},{'name':_0x5d8a('0x55'),'value':_0x1d1c7a[_0x5d8a('0x55')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0xa]?_0x1d1c7a['attrs'][0xa][_0x5d8a('0x42')]:undefined)||''}];case'web-report':return[{'name':'attrReport','type':_0x1d1c7a[_0x5d8a('0x5a')]||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x0]?_0x1d1c7a[_0x5d8a('0x41')][0x0][_0x5d8a('0x3f')]:undefined)||null,'value':_0x1d1c7a['attrReport']||(_0x1d1c7a[_0x5d8a('0x41')]&&_0x1d1c7a[_0x5d8a('0x41')][0x0]?_0x1d1c7a['attrs'][0x0][_0x5d8a('0x42')]:undefined)||null},{'name':'attrRefresh','value':_0x1d1c7a['attrRefresh']||(_0x1d1c7a['attrs']&&_0x1d1c7a[_0x5d8a('0x41')][0x1]?_0x1d1c7a['attrs'][0x1][_0x5d8a('0x42')]:undefined)||0x0}];default:return[];}}catch(_0x413fb7){logger[_0x5d8a('0x2e')](_0x5d8a('0x5b'),JSON[_0x5d8a('0x5c')](_0x413fb7));return[];}}exports['create']=function(_0x44becd,_0x3e4d0d){if(_0x44becd[_0x5d8a('0x5d')]){_0x44becd[_0x5d8a('0x5d')]['attrs']=widgetAttributes(_0x44becd[_0x5d8a('0x5d')]);}return db[_0x5d8a('0x3e')][_0x5d8a('0x5e')](_0x44becd[_0x5d8a('0x5d')],{})[_0x5d8a('0x2d')](respondWithResult(_0x3e4d0d,0xc9))[_0x5d8a('0x3d')](handleError(_0x3e4d0d,null));};exports[_0x5d8a('0x2b')]=function(_0x5213ae,_0x16b070){if(_0x5213ae[_0x5d8a('0x5d')]['id']){delete _0x5213ae['body']['id'];}_0x5213ae['body'][_0x5d8a('0x41')]=widgetAttributes(_0x5213ae[_0x5d8a('0x5d')]);return db[_0x5d8a('0x3e')][_0x5d8a('0x3c')]({'where':{'id':_0x5213ae[_0x5d8a('0x32')]['id']}})[_0x5d8a('0x2d')](handleEntityNotFound(_0x16b070,null))[_0x5d8a('0x2d')](saveUpdates(_0x5213ae[_0x5d8a('0x5d')],null))[_0x5d8a('0x2d')](respondWithResult(_0x16b070,null))[_0x5d8a('0x3d')](handleError(_0x16b070,null));};