d6372302f8060a08b4fcf31b2e761bf62bb08f11
[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 _0x2a07=['attrWhatsappAccounts','attrChatWebsites','pie-chart','attrSerie1','total','attrSerie2','web-report','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','body','create','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','show','params','keys','DashboardItem','rawAttributes','query','filters','intersection','attributes','fields','length','model','includeAll','include','merge','options','catch','find','type','iframe','attrUrl','attrs','value','custom','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','attrMetric','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts'];(function(_0x3eadcd,_0xda37b4){var _0x1bc036=function(_0x2d7346){while(--_0x2d7346){_0x3eadcd['push'](_0x3eadcd['shift']());}};_0x1bc036(++_0xda37b4);}(_0x2a07,0x74));var _0x72a0=function(_0x58b6c7,_0x3bf35e){_0x58b6c7=_0x58b6c7-0x0;var _0x5f50d0=_0x2a07[_0x58b6c7];return _0x5f50d0;};'use strict';var emlformat=require(_0x72a0('0x0'));var rimraf=require(_0x72a0('0x1'));var zipdir=require(_0x72a0('0x2'));var jsonpatch=require(_0x72a0('0x3'));var rp=require(_0x72a0('0x4'));var moment=require('moment');var BPromise=require(_0x72a0('0x5'));var Mustache=require(_0x72a0('0x6'));var util=require(_0x72a0('0x7'));var path=require(_0x72a0('0x8'));var sox=require(_0x72a0('0x9'));var csv=require(_0x72a0('0xa'));var ejs=require(_0x72a0('0xb'));var fs=require('fs');var fs_extra=require(_0x72a0('0xc'));var _=require(_0x72a0('0xd'));var squel=require(_0x72a0('0xe'));var crypto=require(_0x72a0('0xf'));var jsforce=require(_0x72a0('0x10'));var deskjs=require(_0x72a0('0x11'));var toCsv=require(_0x72a0('0xa'));var querystring=require(_0x72a0('0x12'));var Papa=require(_0x72a0('0x13'));var Redis=require('ioredis');var authService=require(_0x72a0('0x14'));var qs=require(_0x72a0('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x72a0('0x16'));var logger=require(_0x72a0('0x17'))(_0x72a0('0x18'));var utils=require(_0x72a0('0x19'));var config=require(_0x72a0('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x72a0('0x1b'))['db'];config[_0x72a0('0x1c')]=_[_0x72a0('0x1d')](config[_0x72a0('0x1c')],{'host':_0x72a0('0x1e'),'port':0x18eb});var socket=require(_0x72a0('0x1f'))(new Redis(config[_0x72a0('0x1c')]));require('./dashboardItem.socket')['register'](socket);function respondWithStatusCode(_0xe103dc,_0x3cd89f){_0x3cd89f=_0x3cd89f||0xcc;return function(_0x19eaf9){if(_0x19eaf9){return _0xe103dc[_0x72a0('0x20')](_0x3cd89f);}return _0xe103dc[_0x72a0('0x21')](_0x3cd89f)[_0x72a0('0x22')]();};}function respondWithResult(_0x4ab55e,_0x30248e){_0x30248e=_0x30248e||0xc8;return function(_0x2e7552){if(_0x2e7552){return _0x4ab55e[_0x72a0('0x21')](_0x30248e)[_0x72a0('0x23')](_0x2e7552);}};}function respondWithFilteredResult(_0x2d1e95,_0x54495e){return function(_0x100d8f){if(_0x100d8f){var _0x42e9ec=typeof _0x54495e[_0x72a0('0x24')]==='undefined'&&typeof _0x54495e[_0x72a0('0x25')]===_0x72a0('0x26');var _0x30899b=_0x100d8f[_0x72a0('0x27')];var _0x5437df=_0x42e9ec?0x0:_0x54495e[_0x72a0('0x24')];var _0x5b8f2c=_0x42e9ec?_0x100d8f[_0x72a0('0x27')]:_0x54495e[_0x72a0('0x24')]+_0x54495e[_0x72a0('0x25')];var _0x5c7479;if(_0x5b8f2c>=_0x30899b){_0x5b8f2c=_0x30899b;_0x5c7479=0xc8;}else{_0x5c7479=0xce;}_0x2d1e95[_0x72a0('0x21')](_0x5c7479);return _0x2d1e95[_0x72a0('0x28')](_0x72a0('0x29'),_0x5437df+'-'+_0x5b8f2c+'/'+_0x30899b)[_0x72a0('0x23')](_0x100d8f);}return null;};}function patchUpdates(_0x5d6145){return function(_0x38a7ba){try{jsonpatch[_0x72a0('0x2a')](_0x38a7ba,_0x5d6145,!![]);}catch(_0x1ddd54){return BPromise[_0x72a0('0x2b')](_0x1ddd54);}return _0x38a7ba[_0x72a0('0x2c')]();};}function saveUpdates(_0x174b1b,_0x5c4daf){return function(_0x4dd1a6){if(_0x4dd1a6){return _0x4dd1a6[_0x72a0('0x2d')](_0x174b1b)[_0x72a0('0x2e')](function(_0x123df4){return _0x123df4;});}return null;};}function removeEntity(_0x1504ed,_0xf5cb49){return function(_0x27ca5a){if(_0x27ca5a){return _0x27ca5a[_0x72a0('0x2f')]()[_0x72a0('0x2e')](function(){_0x1504ed[_0x72a0('0x21')](0xcc)[_0x72a0('0x22')]();});}};}function handleEntityNotFound(_0x4f9718,_0x304b92){return function(_0x553641){if(!_0x553641){_0x4f9718[_0x72a0('0x20')](0x194);}return _0x553641;};}function handleError(_0x2928f6,_0x1773ea){_0x1773ea=_0x1773ea||0x1f4;return function(_0x177a3a){logger[_0x72a0('0x30')](_0x177a3a[_0x72a0('0x31')]);if(_0x177a3a[_0x72a0('0x32')]){delete _0x177a3a[_0x72a0('0x32')];}_0x2928f6['status'](_0x1773ea)[_0x72a0('0x33')](_0x177a3a);};}exports[_0x72a0('0x34')]=function(_0x39136d,_0xfbe9b3){var _0x13c04={'raw':![],'where':{'id':_0x39136d[_0x72a0('0x35')]['id']}},_0x19e783={};_0x19e783['model']=_[_0x72a0('0x36')](db[_0x72a0('0x37')][_0x72a0('0x38')]);_0x19e783[_0x72a0('0x39')]=_[_0x72a0('0x36')](_0x39136d[_0x72a0('0x39')]);_0x19e783[_0x72a0('0x3a')]=_[_0x72a0('0x3b')](_0x19e783['model'],_0x19e783[_0x72a0('0x39')]);_0x13c04[_0x72a0('0x3c')]=_[_0x72a0('0x3b')](_0x19e783['model'],qs[_0x72a0('0x3d')](_0x39136d['query'][_0x72a0('0x3d')]));_0x13c04[_0x72a0('0x3c')]=_0x13c04[_0x72a0('0x3c')][_0x72a0('0x3e')]?_0x13c04[_0x72a0('0x3c')]:_0x19e783[_0x72a0('0x3f')];if(_0x39136d[_0x72a0('0x39')][_0x72a0('0x40')]){_0x13c04[_0x72a0('0x41')]=[{'all':!![]}];}_0x13c04=_[_0x72a0('0x42')]({},_0x13c04,_0x39136d[_0x72a0('0x43')]);return db[_0x72a0('0x37')]['find'](_0x13c04)[_0x72a0('0x2e')](handleEntityNotFound(_0xfbe9b3,null))['then'](respondWithResult(_0xfbe9b3,null))[_0x72a0('0x44')](handleError(_0xfbe9b3,null));};exports[_0x72a0('0x2f')]=function(_0x446222,_0x1a9597){return db[_0x72a0('0x37')][_0x72a0('0x45')]({'where':{'id':_0x446222[_0x72a0('0x35')]['id']}})[_0x72a0('0x2e')](handleEntityNotFound(_0x1a9597,null))[_0x72a0('0x2e')](removeEntity(_0x1a9597,null))['catch'](handleError(_0x1a9597,null));};function widgetAttributes(_0x4a973a){try{switch(_0x4a973a[_0x72a0('0x46')]){case _0x72a0('0x47'):return[{'name':_0x72a0('0x48'),'value':_0x4a973a[_0x72a0('0x48')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a['attrs'][0x0]?_0x4a973a[_0x72a0('0x49')][0x0][_0x72a0('0x4a')]:undefined)||'https://'}];case _0x72a0('0x4b'):return[{'name':'attrPath','value':_0x4a973a['attrPath']||(_0x4a973a['attrs']&&_0x4a973a[_0x72a0('0x49')][0x0]?_0x4a973a['attrs'][0x0][_0x72a0('0x4a')]:undefined)||''}];case _0x72a0('0x4c'):return[{'name':_0x72a0('0x4d'),'value':_0x4a973a[_0x72a0('0x4d')]||(_0x4a973a['attrs']&&_0x4a973a['attrs'][0x0]?_0x4a973a['attrs'][0x0]['value']:undefined)||_0x72a0('0x4e')},{'name':_0x72a0('0x4f'),'value':_0x4a973a['attrTimezone']||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a[_0x72a0('0x49')][0x1]?_0x4a973a['attrs'][0x1][_0x72a0('0x4a')]:undefined)||_0x72a0('0x50')},{'name':_0x72a0('0x51'),'value':_0x4a973a[_0x72a0('0x51')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a[_0x72a0('0x49')][0x2]?_0x4a973a['attrs'][0x2][_0x72a0('0x4a')]:undefined)||0xc}];case'counter':return[{'name':_0x72a0('0x52'),'value':_0x4a973a['attrMetric']||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a[_0x72a0('0x49')][0x0]?_0x4a973a['attrs'][0x0][_0x72a0('0x4a')]:undefined)||'total'},{'name':_0x72a0('0x53'),'value':_0x4a973a[_0x72a0('0x53')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a['attrs'][0x1]?_0x4a973a[_0x72a0('0x49')][0x1][_0x72a0('0x4a')]:undefined)||[]},{'name':_0x72a0('0x51'),'value':_0x4a973a['attrFontSize']||(_0x4a973a['attrs']&&_0x4a973a[_0x72a0('0x49')][0x2]?_0x4a973a['attrs'][0x2][_0x72a0('0x4a')]:undefined)||0x14},{'name':_0x72a0('0x54'),'value':_0x4a973a[_0x72a0('0x54')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a[_0x72a0('0x49')][0x3]?_0x4a973a[_0x72a0('0x49')][0x3][_0x72a0('0x4a')]:undefined)||_0x72a0('0x55')},{'name':_0x72a0('0x56'),'value':_0x4a973a['attrEmailAccounts']||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a[_0x72a0('0x49')][0x4]?_0x4a973a[_0x72a0('0x49')][0x4][_0x72a0('0x4a')]:undefined)||''},{'name':_0x72a0('0x57'),'value':_0x4a973a[_0x72a0('0x57')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a['attrs'][0x5]?_0x4a973a['attrs'][0x5][_0x72a0('0x4a')]:undefined)||''},{'name':_0x72a0('0x58'),'value':_0x4a973a[_0x72a0('0x58')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a[_0x72a0('0x49')][0x6]?_0x4a973a[_0x72a0('0x49')][0x6][_0x72a0('0x4a')]:undefined)||''},{'name':_0x72a0('0x59'),'value':_0x4a973a[_0x72a0('0x59')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a['attrs'][0x7]?_0x4a973a[_0x72a0('0x49')][0x7][_0x72a0('0x4a')]:undefined)||''},{'name':_0x72a0('0x5a'),'value':_0x4a973a[_0x72a0('0x5a')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a['attrs'][0x8]?_0x4a973a[_0x72a0('0x49')][0x8]['value']:undefined)||''},{'name':'attrChatWebsites','value':_0x4a973a[_0x72a0('0x5b')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a[_0x72a0('0x49')][0x9]?_0x4a973a[_0x72a0('0x49')][0x9][_0x72a0('0x4a')]:undefined)||''}];case'multibar-chart':case _0x72a0('0x5c'):return[{'name':_0x72a0('0x5d'),'value':_0x4a973a['attrSerie1']||(_0x4a973a['attrs']&&_0x4a973a[_0x72a0('0x49')][0x0]?_0x4a973a[_0x72a0('0x49')][0x0][_0x72a0('0x4a')]:undefined)||_0x72a0('0x5e')},{'name':_0x72a0('0x5f'),'value':_0x4a973a[_0x72a0('0x5f')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a[_0x72a0('0x49')][0x1]?_0x4a973a['attrs'][0x1][_0x72a0('0x4a')]:undefined)||null},{'name':'attrSerie3','value':_0x4a973a['attrSerie3']||(_0x4a973a['attrs']&&_0x4a973a[_0x72a0('0x49')][0x2]?_0x4a973a[_0x72a0('0x49')][0x2]['value']:undefined)||null},{'name':_0x72a0('0x53'),'value':_0x4a973a['attrVoiceQueues']||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a['attrs'][0x3]?_0x4a973a['attrs'][0x3][_0x72a0('0x4a')]:undefined)||[]},{'name':_0x72a0('0x54'),'value':_0x4a973a['attrChannel']||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a['attrs'][0x4]?_0x4a973a[_0x72a0('0x49')][0x4]['value']:undefined)||'voice'},{'name':_0x72a0('0x56'),'value':_0x4a973a[_0x72a0('0x56')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a['attrs'][0x5]?_0x4a973a['attrs'][0x5][_0x72a0('0x4a')]:undefined)||''},{'name':'attrFaxAccounts','value':_0x4a973a[_0x72a0('0x57')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a[_0x72a0('0x49')][0x6]?_0x4a973a[_0x72a0('0x49')][0x6][_0x72a0('0x4a')]:undefined)||''},{'name':_0x72a0('0x58'),'value':_0x4a973a[_0x72a0('0x58')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a[_0x72a0('0x49')][0x7]?_0x4a973a[_0x72a0('0x49')][0x7][_0x72a0('0x4a')]:undefined)||''},{'name':_0x72a0('0x59'),'value':_0x4a973a['attrOpenchannelAccounts']||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a['attrs'][0x8]?_0x4a973a['attrs'][0x8]['value']:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x4a973a[_0x72a0('0x5a')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a[_0x72a0('0x49')][0x9]?_0x4a973a['attrs'][0x9][_0x72a0('0x4a')]:undefined)||''},{'name':'attrChatWebsites','value':_0x4a973a[_0x72a0('0x5b')]||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a['attrs'][0xa]?_0x4a973a[_0x72a0('0x49')][0xa][_0x72a0('0x4a')]:undefined)||''}];case _0x72a0('0x60'):return[{'name':_0x72a0('0x61'),'type':_0x4a973a['reportType']||(_0x4a973a[_0x72a0('0x49')]&&_0x4a973a['attrs'][0x0]?_0x4a973a[_0x72a0('0x49')][0x0][_0x72a0('0x46')]:undefined)||null,'value':_0x4a973a[_0x72a0('0x61')]||(_0x4a973a['attrs']&&_0x4a973a[_0x72a0('0x49')][0x0]?_0x4a973a[_0x72a0('0x49')][0x0][_0x72a0('0x4a')]:undefined)||null},{'name':_0x72a0('0x62'),'value':_0x4a973a[_0x72a0('0x62')]||(_0x4a973a['attrs']&&_0x4a973a['attrs'][0x1]?_0x4a973a[_0x72a0('0x49')][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x421c35){logger['error'](_0x72a0('0x63'),JSON[_0x72a0('0x64')](_0x421c35));return[];}}exports['create']=function(_0x1cfd1d,_0x1b960e){if(_0x1cfd1d[_0x72a0('0x65')]){_0x1cfd1d['body'][_0x72a0('0x49')]=widgetAttributes(_0x1cfd1d['body']);}return db[_0x72a0('0x37')][_0x72a0('0x66')](_0x1cfd1d['body'],{})[_0x72a0('0x2e')](respondWithResult(_0x1b960e,0xc9))['catch'](handleError(_0x1b960e,null));};exports['update']=function(_0x5142de,_0x28969a){if(_0x5142de['body']['id']){delete _0x5142de[_0x72a0('0x65')]['id'];}_0x5142de['body'][_0x72a0('0x49')]=widgetAttributes(_0x5142de[_0x72a0('0x65')]);return db[_0x72a0('0x37')]['find']({'where':{'id':_0x5142de[_0x72a0('0x35')]['id']}})[_0x72a0('0x2e')](handleEntityNotFound(_0x28969a,null))[_0x72a0('0x2e')](saveUpdates(_0x5142de[_0x72a0('0x65')],null))[_0x72a0('0x2e')](respondWithResult(_0x28969a,null))['catch'](handleError(_0x28969a,null));};