Built motion from commit 5ad77b03.|2.6.3
[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 _0x5549=['attrSmsAccounts','attrOpenchannelAccounts','attrChatWebsites','multibar-chart','pie-chart','attrSerie1','total','attrSerie2','attrSerie3','attrWhatsappAccounts','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','body','create','find','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','./dashboardItem.socket','sendStatus','end','status','offset','undefined','limit','count','set','Content-Range','apply','update','then','destroy','error','stack','name','send','show','keys','DashboardItem','rawAttributes','query','filters','intersection','attributes','fields','includeAll','merge','catch','type','iframe','attrUrl','attrs','value','https://','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','attrFontSize','counter','attrMetric','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts'];(function(_0x440322,_0x5bab3e){var _0x2857ae=function(_0xe1a084){while(--_0xe1a084){_0x440322['push'](_0x440322['shift']());}};_0x2857ae(++_0x5bab3e);}(_0x5549,0x1f4));var _0x9554=function(_0x21899f,_0x1821bd){_0x21899f=_0x21899f-0x0;var _0x2046f2=_0x5549[_0x21899f];return _0x2046f2;};'use strict';var emlformat=require(_0x9554('0x0'));var rimraf=require(_0x9554('0x1'));var zipdir=require(_0x9554('0x2'));var jsonpatch=require(_0x9554('0x3'));var rp=require(_0x9554('0x4'));var moment=require('moment');var BPromise=require(_0x9554('0x5'));var Mustache=require(_0x9554('0x6'));var util=require(_0x9554('0x7'));var path=require(_0x9554('0x8'));var sox=require(_0x9554('0x9'));var csv=require('to-csv');var ejs=require(_0x9554('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9554('0xb'));var squel=require(_0x9554('0xc'));var crypto=require(_0x9554('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x9554('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x9554('0xf'));var Redis=require('ioredis');var authService=require(_0x9554('0x10'));var qs=require(_0x9554('0x11'));var as=require(_0x9554('0x12'));var hardwareService=require(_0x9554('0x13'));var logger=require(_0x9554('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x9554('0x15'));var licenseUtil=require(_0x9554('0x16'));var db=require(_0x9554('0x17'))['db'];config['redis']=_[_0x9554('0x18')](config[_0x9554('0x19')],{'host':_0x9554('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9554('0x19')]));require(_0x9554('0x1b'))['register'](socket);function respondWithStatusCode(_0x2b9f7c,_0x268338){_0x268338=_0x268338||0xcc;return function(_0x377c4b){if(_0x377c4b){return _0x2b9f7c[_0x9554('0x1c')](_0x268338);}return _0x2b9f7c['status'](_0x268338)[_0x9554('0x1d')]();};}function respondWithResult(_0x37003a,_0x29ea31){_0x29ea31=_0x29ea31||0xc8;return function(_0x4df68a){if(_0x4df68a){return _0x37003a[_0x9554('0x1e')](_0x29ea31)['json'](_0x4df68a);}};}function respondWithFilteredResult(_0x18811c,_0x262038){return function(_0x5de328){if(_0x5de328){var _0x29bbb0=typeof _0x262038[_0x9554('0x1f')]===_0x9554('0x20')&&typeof _0x262038[_0x9554('0x21')]===_0x9554('0x20');var _0x43e013=_0x5de328[_0x9554('0x22')];var _0x540285=_0x29bbb0?0x0:_0x262038[_0x9554('0x1f')];var _0x4221e8=_0x29bbb0?_0x5de328[_0x9554('0x22')]:_0x262038[_0x9554('0x1f')]+_0x262038[_0x9554('0x21')];var _0x1efa6c;if(_0x4221e8>=_0x43e013){_0x4221e8=_0x43e013;_0x1efa6c=0xc8;}else{_0x1efa6c=0xce;}_0x18811c[_0x9554('0x1e')](_0x1efa6c);return _0x18811c[_0x9554('0x23')](_0x9554('0x24'),_0x540285+'-'+_0x4221e8+'/'+_0x43e013)['json'](_0x5de328);}return null;};}function patchUpdates(_0x7abc7e){return function(_0x49d5cc){try{jsonpatch[_0x9554('0x25')](_0x49d5cc,_0x7abc7e,!![]);}catch(_0x1755d3){return BPromise['reject'](_0x1755d3);}return _0x49d5cc['save']();};}function saveUpdates(_0x3fb762,_0x416f89){return function(_0x2cf4a6){if(_0x2cf4a6){return _0x2cf4a6[_0x9554('0x26')](_0x3fb762)[_0x9554('0x27')](function(_0x4356b9){return _0x4356b9;});}return null;};}function removeEntity(_0xdfb500,_0x16d54e){return function(_0x28821a){if(_0x28821a){return _0x28821a[_0x9554('0x28')]()['then'](function(){_0xdfb500[_0x9554('0x1e')](0xcc)[_0x9554('0x1d')]();});}};}function handleEntityNotFound(_0x17afca,_0x54e73c){return function(_0x5abb7c){if(!_0x5abb7c){_0x17afca['sendStatus'](0x194);}return _0x5abb7c;};}function handleError(_0x4be9fd,_0x14ba0b){_0x14ba0b=_0x14ba0b||0x1f4;return function(_0x497c13){logger[_0x9554('0x29')](_0x497c13[_0x9554('0x2a')]);if(_0x497c13[_0x9554('0x2b')]){delete _0x497c13[_0x9554('0x2b')];}_0x4be9fd['status'](_0x14ba0b)[_0x9554('0x2c')](_0x497c13);};}exports[_0x9554('0x2d')]=function(_0x37af8d,_0x14eb74){var _0x3237ef={'raw':![],'where':{'id':_0x37af8d['params']['id']}},_0x2d82f4={};_0x2d82f4['model']=_[_0x9554('0x2e')](db[_0x9554('0x2f')][_0x9554('0x30')]);_0x2d82f4[_0x9554('0x31')]=_[_0x9554('0x2e')](_0x37af8d[_0x9554('0x31')]);_0x2d82f4[_0x9554('0x32')]=_[_0x9554('0x33')](_0x2d82f4['model'],_0x2d82f4[_0x9554('0x31')]);_0x3237ef[_0x9554('0x34')]=_[_0x9554('0x33')](_0x2d82f4['model'],qs[_0x9554('0x35')](_0x37af8d[_0x9554('0x31')]['fields']));_0x3237ef[_0x9554('0x34')]=_0x3237ef[_0x9554('0x34')]['length']?_0x3237ef[_0x9554('0x34')]:_0x2d82f4['model'];if(_0x37af8d[_0x9554('0x31')][_0x9554('0x36')]){_0x3237ef['include']=[{'all':!![]}];}_0x3237ef=_[_0x9554('0x37')]({},_0x3237ef,_0x37af8d['options']);return db['DashboardItem']['find'](_0x3237ef)['then'](handleEntityNotFound(_0x14eb74,null))[_0x9554('0x27')](respondWithResult(_0x14eb74,null))['catch'](handleError(_0x14eb74,null));};exports[_0x9554('0x28')]=function(_0x22d54a,_0x424a45){return db[_0x9554('0x2f')]['find']({'where':{'id':_0x22d54a['params']['id']}})['then'](handleEntityNotFound(_0x424a45,null))['then'](removeEntity(_0x424a45,null))[_0x9554('0x38')](handleError(_0x424a45,null));};function widgetAttributes(_0x31b5e0){try{switch(_0x31b5e0[_0x9554('0x39')]){case _0x9554('0x3a'):return[{'name':'attrUrl','value':_0x31b5e0[_0x9554('0x3b')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x0]?_0x31b5e0[_0x9554('0x3c')][0x0][_0x9554('0x3d')]:undefined)||_0x9554('0x3e')}];case'custom':return[{'name':'attrPath','value':_0x31b5e0[_0x9554('0x3f')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x0]?_0x31b5e0['attrs'][0x0][_0x9554('0x3d')]:undefined)||''}];case _0x9554('0x40'):return[{'name':_0x9554('0x41'),'value':_0x31b5e0[_0x9554('0x41')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x0]?_0x31b5e0[_0x9554('0x3c')][0x0]['value']:undefined)||_0x9554('0x42')},{'name':_0x9554('0x43'),'value':_0x31b5e0['attrTimezone']||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x1]?_0x31b5e0[_0x9554('0x3c')][0x1][_0x9554('0x3d')]:undefined)||'0.00'},{'name':_0x9554('0x44'),'value':_0x31b5e0[_0x9554('0x44')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x2]?_0x31b5e0[_0x9554('0x3c')][0x2][_0x9554('0x3d')]:undefined)||0xc}];case _0x9554('0x45'):return[{'name':_0x9554('0x46'),'value':_0x31b5e0[_0x9554('0x46')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x0]?_0x31b5e0['attrs'][0x0]['value']:undefined)||'total'},{'name':_0x9554('0x47'),'value':_0x31b5e0['attrVoiceQueues']||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x1]?_0x31b5e0['attrs'][0x1][_0x9554('0x3d')]:undefined)||[]},{'name':_0x9554('0x44'),'value':_0x31b5e0[_0x9554('0x44')]||(_0x31b5e0['attrs']&&_0x31b5e0[_0x9554('0x3c')][0x2]?_0x31b5e0[_0x9554('0x3c')][0x2][_0x9554('0x3d')]:undefined)||0x14},{'name':_0x9554('0x48'),'value':_0x31b5e0[_0x9554('0x48')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x3]?_0x31b5e0[_0x9554('0x3c')][0x3][_0x9554('0x3d')]:undefined)||_0x9554('0x49')},{'name':'attrEmailAccounts','value':_0x31b5e0[_0x9554('0x4a')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0['attrs'][0x4]?_0x31b5e0[_0x9554('0x3c')][0x4][_0x9554('0x3d')]:undefined)||''},{'name':_0x9554('0x4b'),'value':_0x31b5e0[_0x9554('0x4b')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x5]?_0x31b5e0[_0x9554('0x3c')][0x5][_0x9554('0x3d')]:undefined)||''},{'name':_0x9554('0x4c'),'value':_0x31b5e0[_0x9554('0x4c')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0['attrs'][0x6]?_0x31b5e0['attrs'][0x6][_0x9554('0x3d')]:undefined)||''},{'name':_0x9554('0x4d'),'value':_0x31b5e0['attrOpenchannelAccounts']||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0['attrs'][0x7]?_0x31b5e0[_0x9554('0x3c')][0x7][_0x9554('0x3d')]:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x31b5e0['attrWhatsappAccounts']||(_0x31b5e0['attrs']&&_0x31b5e0[_0x9554('0x3c')][0x8]?_0x31b5e0[_0x9554('0x3c')][0x8][_0x9554('0x3d')]:undefined)||''},{'name':'attrChatWebsites','value':_0x31b5e0[_0x9554('0x4e')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x9]?_0x31b5e0['attrs'][0x9][_0x9554('0x3d')]:undefined)||''}];case _0x9554('0x4f'):case _0x9554('0x50'):return[{'name':_0x9554('0x51'),'value':_0x31b5e0[_0x9554('0x51')]||(_0x31b5e0['attrs']&&_0x31b5e0[_0x9554('0x3c')][0x0]?_0x31b5e0[_0x9554('0x3c')][0x0][_0x9554('0x3d')]:undefined)||_0x9554('0x52')},{'name':_0x9554('0x53'),'value':_0x31b5e0[_0x9554('0x53')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x1]?_0x31b5e0[_0x9554('0x3c')][0x1][_0x9554('0x3d')]:undefined)||null},{'name':_0x9554('0x54'),'value':_0x31b5e0[_0x9554('0x54')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x2]?_0x31b5e0[_0x9554('0x3c')][0x2][_0x9554('0x3d')]:undefined)||null},{'name':'attrVoiceQueues','value':_0x31b5e0[_0x9554('0x47')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x3]?_0x31b5e0[_0x9554('0x3c')][0x3][_0x9554('0x3d')]:undefined)||[]},{'name':_0x9554('0x48'),'value':_0x31b5e0[_0x9554('0x48')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x4]?_0x31b5e0[_0x9554('0x3c')][0x4][_0x9554('0x3d')]:undefined)||_0x9554('0x49')},{'name':_0x9554('0x4a'),'value':_0x31b5e0[_0x9554('0x4a')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x5]?_0x31b5e0[_0x9554('0x3c')][0x5][_0x9554('0x3d')]:undefined)||''},{'name':_0x9554('0x4b'),'value':_0x31b5e0[_0x9554('0x4b')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x6]?_0x31b5e0[_0x9554('0x3c')][0x6][_0x9554('0x3d')]:undefined)||''},{'name':_0x9554('0x4c'),'value':_0x31b5e0[_0x9554('0x4c')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x7]?_0x31b5e0['attrs'][0x7][_0x9554('0x3d')]:undefined)||''},{'name':_0x9554('0x4d'),'value':_0x31b5e0[_0x9554('0x4d')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x8]?_0x31b5e0[_0x9554('0x3c')][0x8][_0x9554('0x3d')]:undefined)||''},{'name':_0x9554('0x55'),'value':_0x31b5e0[_0x9554('0x55')]||(_0x31b5e0['attrs']&&_0x31b5e0[_0x9554('0x3c')][0x9]?_0x31b5e0['attrs'][0x9]['value']:undefined)||''},{'name':_0x9554('0x4e'),'value':_0x31b5e0[_0x9554('0x4e')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0xa]?_0x31b5e0[_0x9554('0x3c')][0xa]['value']:undefined)||''}];case _0x9554('0x56'):return[{'name':_0x9554('0x57'),'type':_0x31b5e0[_0x9554('0x58')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x0]?_0x31b5e0['attrs'][0x0][_0x9554('0x39')]:undefined)||null,'value':_0x31b5e0[_0x9554('0x57')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0['attrs'][0x0]?_0x31b5e0[_0x9554('0x3c')][0x0][_0x9554('0x3d')]:undefined)||null},{'name':'attrRefresh','value':_0x31b5e0[_0x9554('0x59')]||(_0x31b5e0[_0x9554('0x3c')]&&_0x31b5e0[_0x9554('0x3c')][0x1]?_0x31b5e0[_0x9554('0x3c')][0x1][_0x9554('0x3d')]:undefined)||0x0}];default:return[];}}catch(_0x4003ad){logger[_0x9554('0x29')](_0x9554('0x5a'),JSON[_0x9554('0x5b')](_0x4003ad));return[];}}exports['create']=function(_0x186a41,_0xff64f5){if(_0x186a41[_0x9554('0x5c')]){_0x186a41['body']['attrs']=widgetAttributes(_0x186a41[_0x9554('0x5c')]);}return db[_0x9554('0x2f')][_0x9554('0x5d')](_0x186a41[_0x9554('0x5c')],{})[_0x9554('0x27')](respondWithResult(_0xff64f5,0xc9))[_0x9554('0x38')](handleError(_0xff64f5,null));};exports[_0x9554('0x26')]=function(_0x1fdf00,_0x2d6f8b){if(_0x1fdf00[_0x9554('0x5c')]['id']){delete _0x1fdf00[_0x9554('0x5c')]['id'];}_0x1fdf00[_0x9554('0x5c')]['attrs']=widgetAttributes(_0x1fdf00['body']);return db[_0x9554('0x2f')][_0x9554('0x5e')]({'where':{'id':_0x1fdf00[_0x9554('0x5f')]['id']}})['then'](handleEntityNotFound(_0x2d6f8b,null))['then'](saveUpdates(_0x1fdf00[_0x9554('0x5c')],null))[_0x9554('0x27')](respondWithResult(_0x2d6f8b,null))[_0x9554('0x38')](handleError(_0x2d6f8b,null));};