Built motion from commit 85328c08.|2.5.50
[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 _0x5a5a=['json','offset','limit','undefined','count','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','model','DashboardItem','rawAttributes','keys','query','intersection','attributes','fields','length','includeAll','include','merge','options','find','catch','type','attrUrl','attrs','https://','attrPath','value','clock','attrHourFormat','HH:mm:ss','attrTimezone','attrFontSize','counter','attrMetric','total','attrVoiceQueues','attrChannel','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','voice','attrChatWebsites','web-report','attrReport','attrRefresh','widgetAttributes:\x20%s','create','body','params','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./dashboardItem.socket','sendStatus','status','end'];(function(_0x4e4f0e,_0x1c3892){var _0x1a7219=function(_0x3821ad){while(--_0x3821ad){_0x4e4f0e['push'](_0x4e4f0e['shift']());}};_0x1a7219(++_0x1c3892);}(_0x5a5a,0x1d1));var _0xa5a5=function(_0x48084f,_0x2d1e50){_0x48084f=_0x48084f-0x0;var _0x215480=_0x5a5a[_0x48084f];return _0x215480;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa5a5('0x0'));var zipdir=require(_0xa5a5('0x1'));var jsonpatch=require(_0xa5a5('0x2'));var rp=require(_0xa5a5('0x3'));var moment=require(_0xa5a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xa5a5('0x5'));var util=require(_0xa5a5('0x6'));var path=require(_0xa5a5('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xa5a5('0x8'));var fs=require('fs');var fs_extra=require(_0xa5a5('0x9'));var _=require('lodash');var squel=require(_0xa5a5('0xa'));var crypto=require(_0xa5a5('0xb'));var jsforce=require(_0xa5a5('0xc'));var deskjs=require(_0xa5a5('0xd'));var toCsv=require(_0xa5a5('0xe'));var querystring=require('querystring');var Papa=require(_0xa5a5('0xf'));var Redis=require(_0xa5a5('0x10'));var authService=require(_0xa5a5('0x11'));var qs=require(_0xa5a5('0x12'));var as=require(_0xa5a5('0x13'));var hardwareService=require(_0xa5a5('0x14'));var logger=require(_0xa5a5('0x15'))(_0xa5a5('0x16'));var utils=require(_0xa5a5('0x17'));var config=require(_0xa5a5('0x18'));var licenseUtil=require(_0xa5a5('0x19'));var db=require(_0xa5a5('0x1a'))['db'];config['redis']=_[_0xa5a5('0x1b')](config[_0xa5a5('0x1c')],{'host':_0xa5a5('0x1d'),'port':0x18eb});var socket=require(_0xa5a5('0x1e'))(new Redis(config[_0xa5a5('0x1c')]));require(_0xa5a5('0x1f'))['register'](socket);function respondWithStatusCode(_0x3382c6,_0x2f5900){_0x2f5900=_0x2f5900||0xcc;return function(_0x14b6da){if(_0x14b6da){return _0x3382c6[_0xa5a5('0x20')](_0x2f5900);}return _0x3382c6[_0xa5a5('0x21')](_0x2f5900)[_0xa5a5('0x22')]();};}function respondWithResult(_0x1464d9,_0x62aa04){_0x62aa04=_0x62aa04||0xc8;return function(_0x48d369){if(_0x48d369){return _0x1464d9[_0xa5a5('0x21')](_0x62aa04)[_0xa5a5('0x23')](_0x48d369);}};}function respondWithFilteredResult(_0x4571f5,_0x184652){return function(_0x3c4cae){if(_0x3c4cae){var _0x12e2f2=typeof _0x184652[_0xa5a5('0x24')]==='undefined'&&typeof _0x184652[_0xa5a5('0x25')]===_0xa5a5('0x26');var _0x21488a=_0x3c4cae[_0xa5a5('0x27')];var _0x5e3412=_0x12e2f2?0x0:_0x184652[_0xa5a5('0x24')];var _0x553c93=_0x12e2f2?_0x3c4cae[_0xa5a5('0x27')]:_0x184652[_0xa5a5('0x24')]+_0x184652[_0xa5a5('0x25')];var _0x379f0d;if(_0x553c93>=_0x21488a){_0x553c93=_0x21488a;_0x379f0d=0xc8;}else{_0x379f0d=0xce;}_0x4571f5['status'](_0x379f0d);return _0x4571f5['set'](_0xa5a5('0x28'),_0x5e3412+'-'+_0x553c93+'/'+_0x21488a)[_0xa5a5('0x23')](_0x3c4cae);}return null;};}function patchUpdates(_0x417df3){return function(_0x4bfbd8){try{jsonpatch[_0xa5a5('0x29')](_0x4bfbd8,_0x417df3,!![]);}catch(_0x4b4613){return BPromise[_0xa5a5('0x2a')](_0x4b4613);}return _0x4bfbd8['save']();};}function saveUpdates(_0x4c0ff2,_0x29c914){return function(_0x210293){if(_0x210293){return _0x210293[_0xa5a5('0x2b')](_0x4c0ff2)[_0xa5a5('0x2c')](function(_0x55ed28){return _0x55ed28;});}return null;};}function removeEntity(_0x3583b1,_0x54dfdc){return function(_0x1c2bc6){if(_0x1c2bc6){return _0x1c2bc6[_0xa5a5('0x2d')]()['then'](function(){_0x3583b1['status'](0xcc)[_0xa5a5('0x22')]();});}};}function handleEntityNotFound(_0xdfa813,_0x47992c){return function(_0x5e50ae){if(!_0x5e50ae){_0xdfa813[_0xa5a5('0x20')](0x194);}return _0x5e50ae;};}function handleError(_0x20b3a5,_0x1133d3){_0x1133d3=_0x1133d3||0x1f4;return function(_0x4d1201){logger[_0xa5a5('0x2e')](_0x4d1201[_0xa5a5('0x2f')]);if(_0x4d1201['name']){delete _0x4d1201[_0xa5a5('0x30')];}_0x20b3a5['status'](_0x1133d3)[_0xa5a5('0x31')](_0x4d1201);};}exports['show']=function(_0xa4639c,_0x190a33){var _0x593279={'raw':![],'where':{'id':_0xa4639c['params']['id']}},_0x47ed1d={};_0x47ed1d[_0xa5a5('0x32')]=_['keys'](db[_0xa5a5('0x33')][_0xa5a5('0x34')]);_0x47ed1d['query']=_[_0xa5a5('0x35')](_0xa4639c[_0xa5a5('0x36')]);_0x47ed1d['filters']=_[_0xa5a5('0x37')](_0x47ed1d[_0xa5a5('0x32')],_0x47ed1d[_0xa5a5('0x36')]);_0x593279[_0xa5a5('0x38')]=_[_0xa5a5('0x37')](_0x47ed1d[_0xa5a5('0x32')],qs[_0xa5a5('0x39')](_0xa4639c['query'][_0xa5a5('0x39')]));_0x593279[_0xa5a5('0x38')]=_0x593279[_0xa5a5('0x38')][_0xa5a5('0x3a')]?_0x593279[_0xa5a5('0x38')]:_0x47ed1d[_0xa5a5('0x32')];if(_0xa4639c[_0xa5a5('0x36')][_0xa5a5('0x3b')]){_0x593279[_0xa5a5('0x3c')]=[{'all':!![]}];}_0x593279=_[_0xa5a5('0x3d')]({},_0x593279,_0xa4639c[_0xa5a5('0x3e')]);return db[_0xa5a5('0x33')][_0xa5a5('0x3f')](_0x593279)[_0xa5a5('0x2c')](handleEntityNotFound(_0x190a33,null))[_0xa5a5('0x2c')](respondWithResult(_0x190a33,null))[_0xa5a5('0x40')](handleError(_0x190a33,null));};exports[_0xa5a5('0x2d')]=function(_0x4b538c,_0x4577cc){return db['DashboardItem']['find']({'where':{'id':_0x4b538c['params']['id']}})[_0xa5a5('0x2c')](handleEntityNotFound(_0x4577cc,null))['then'](removeEntity(_0x4577cc,null))[_0xa5a5('0x40')](handleError(_0x4577cc,null));};function widgetAttributes(_0x353d32){try{switch(_0x353d32[_0xa5a5('0x41')]){case'iframe':return[{'name':_0xa5a5('0x42'),'value':_0x353d32['attrUrl']||(_0x353d32['attrs']&&_0x353d32[_0xa5a5('0x43')][0x0]?_0x353d32[_0xa5a5('0x43')][0x0]['value']:undefined)||_0xa5a5('0x44')}];case'custom':return[{'name':'attrPath','value':_0x353d32[_0xa5a5('0x45')]||(_0x353d32['attrs']&&_0x353d32[_0xa5a5('0x43')][0x0]?_0x353d32['attrs'][0x0][_0xa5a5('0x46')]:undefined)||''}];case _0xa5a5('0x47'):return[{'name':_0xa5a5('0x48'),'value':_0x353d32[_0xa5a5('0x48')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x0]?_0x353d32[_0xa5a5('0x43')][0x0][_0xa5a5('0x46')]:undefined)||_0xa5a5('0x49')},{'name':_0xa5a5('0x4a'),'value':_0x353d32['attrTimezone']||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32['attrs'][0x1]?_0x353d32[_0xa5a5('0x43')][0x1][_0xa5a5('0x46')]:undefined)||'0.00'},{'name':_0xa5a5('0x4b'),'value':_0x353d32[_0xa5a5('0x4b')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x2]?_0x353d32[_0xa5a5('0x43')][0x2]['value']:undefined)||0xc}];case _0xa5a5('0x4c'):return[{'name':_0xa5a5('0x4d'),'value':_0x353d32['attrMetric']||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x0]?_0x353d32[_0xa5a5('0x43')][0x0][_0xa5a5('0x46')]:undefined)||_0xa5a5('0x4e')},{'name':_0xa5a5('0x4f'),'value':_0x353d32[_0xa5a5('0x4f')]||(_0x353d32['attrs']&&_0x353d32[_0xa5a5('0x43')][0x1]?_0x353d32['attrs'][0x1][_0xa5a5('0x46')]:undefined)||[]},{'name':'attrFontSize','value':_0x353d32['attrFontSize']||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x2]?_0x353d32[_0xa5a5('0x43')][0x2]['value']:undefined)||0x14},{'name':_0xa5a5('0x50'),'value':_0x353d32['attrChannel']||(_0x353d32['attrs']&&_0x353d32[_0xa5a5('0x43')][0x3]?_0x353d32[_0xa5a5('0x43')][0x3][_0xa5a5('0x46')]:undefined)||'voice'},{'name':_0xa5a5('0x51'),'value':_0x353d32['attrEmailAccounts']||(_0x353d32['attrs']&&_0x353d32[_0xa5a5('0x43')][0x4]?_0x353d32[_0xa5a5('0x43')][0x4][_0xa5a5('0x46')]:undefined)||''},{'name':_0xa5a5('0x52'),'value':_0x353d32[_0xa5a5('0x52')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x5]?_0x353d32[_0xa5a5('0x43')][0x5]['value']:undefined)||''},{'name':_0xa5a5('0x53'),'value':_0x353d32[_0xa5a5('0x53')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x6]?_0x353d32[_0xa5a5('0x43')][0x6][_0xa5a5('0x46')]:undefined)||''},{'name':'attrOpenchannelAccounts','value':_0x353d32[_0xa5a5('0x54')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32['attrs'][0x7]?_0x353d32[_0xa5a5('0x43')][0x7][_0xa5a5('0x46')]:undefined)||''},{'name':_0xa5a5('0x55'),'value':_0x353d32['attrWhatsappAccounts']||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x8]?_0x353d32[_0xa5a5('0x43')][0x8][_0xa5a5('0x46')]:undefined)||''},{'name':'attrChatWebsites','value':_0x353d32['attrChatWebsites']||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x9]?_0x353d32[_0xa5a5('0x43')][0x9]['value']:undefined)||''}];case _0xa5a5('0x56'):case _0xa5a5('0x57'):return[{'name':_0xa5a5('0x58'),'value':_0x353d32[_0xa5a5('0x58')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x0]?_0x353d32[_0xa5a5('0x43')][0x0]['value']:undefined)||_0xa5a5('0x4e')},{'name':_0xa5a5('0x59'),'value':_0x353d32[_0xa5a5('0x59')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x1]?_0x353d32[_0xa5a5('0x43')][0x1]['value']:undefined)||null},{'name':_0xa5a5('0x5a'),'value':_0x353d32[_0xa5a5('0x5a')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32['attrs'][0x2]?_0x353d32[_0xa5a5('0x43')][0x2][_0xa5a5('0x46')]:undefined)||null},{'name':'attrVoiceQueues','value':_0x353d32[_0xa5a5('0x4f')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x3]?_0x353d32[_0xa5a5('0x43')][0x3]['value']:undefined)||[]},{'name':'attrChannel','value':_0x353d32[_0xa5a5('0x50')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x4]?_0x353d32[_0xa5a5('0x43')][0x4][_0xa5a5('0x46')]:undefined)||_0xa5a5('0x5b')},{'name':'attrEmailAccounts','value':_0x353d32['attrEmailAccounts']||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x5]?_0x353d32[_0xa5a5('0x43')][0x5]['value']:undefined)||''},{'name':'attrFaxAccounts','value':_0x353d32['attrFaxAccounts']||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x6]?_0x353d32[_0xa5a5('0x43')][0x6][_0xa5a5('0x46')]:undefined)||''},{'name':_0xa5a5('0x53'),'value':_0x353d32[_0xa5a5('0x53')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x7]?_0x353d32[_0xa5a5('0x43')][0x7][_0xa5a5('0x46')]:undefined)||''},{'name':'attrOpenchannelAccounts','value':_0x353d32[_0xa5a5('0x54')]||(_0x353d32['attrs']&&_0x353d32[_0xa5a5('0x43')][0x8]?_0x353d32[_0xa5a5('0x43')][0x8][_0xa5a5('0x46')]:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x353d32[_0xa5a5('0x55')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32['attrs'][0x9]?_0x353d32[_0xa5a5('0x43')][0x9][_0xa5a5('0x46')]:undefined)||''},{'name':_0xa5a5('0x5c'),'value':_0x353d32[_0xa5a5('0x5c')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0xa]?_0x353d32[_0xa5a5('0x43')][0xa][_0xa5a5('0x46')]:undefined)||''}];case _0xa5a5('0x5d'):return[{'name':_0xa5a5('0x5e'),'type':_0x353d32['reportType']||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x0]?_0x353d32[_0xa5a5('0x43')][0x0]['type']:undefined)||null,'value':_0x353d32[_0xa5a5('0x5e')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x0]?_0x353d32[_0xa5a5('0x43')][0x0][_0xa5a5('0x46')]:undefined)||null},{'name':_0xa5a5('0x5f'),'value':_0x353d32[_0xa5a5('0x5f')]||(_0x353d32[_0xa5a5('0x43')]&&_0x353d32[_0xa5a5('0x43')][0x1]?_0x353d32['attrs'][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x3f0523){logger[_0xa5a5('0x2e')](_0xa5a5('0x60'),JSON['stringify'](_0x3f0523));return[];}}exports[_0xa5a5('0x61')]=function(_0x5bb712,_0x3dfee1){if(_0x5bb712[_0xa5a5('0x62')]){_0x5bb712[_0xa5a5('0x62')][_0xa5a5('0x43')]=widgetAttributes(_0x5bb712['body']);}return db['DashboardItem'][_0xa5a5('0x61')](_0x5bb712[_0xa5a5('0x62')],{})['then'](respondWithResult(_0x3dfee1,0xc9))[_0xa5a5('0x40')](handleError(_0x3dfee1,null));};exports[_0xa5a5('0x2b')]=function(_0xfb357b,_0x284888){if(_0xfb357b['body']['id']){delete _0xfb357b['body']['id'];}_0xfb357b[_0xa5a5('0x62')]['attrs']=widgetAttributes(_0xfb357b[_0xa5a5('0x62')]);return db[_0xa5a5('0x33')][_0xa5a5('0x3f')]({'where':{'id':_0xfb357b[_0xa5a5('0x63')]['id']}})['then'](handleEntityNotFound(_0x284888,null))[_0xa5a5('0x2c')](saveUpdates(_0xfb357b['body'],null))[_0xa5a5('0x2c')](respondWithResult(_0x284888,null))[_0xa5a5('0x40')](handleError(_0x284888,null));};