diff --git a/netmanager/src/views/pages/ExportData/index.js b/netmanager/src/views/pages/ExportData/index.js index 5b2b8c4f88..f54ef534f5 100644 --- a/netmanager/src/views/pages/ExportData/index.js +++ b/netmanager/src/views/pages/ExportData/index.js @@ -421,18 +421,19 @@ const ExportData = (props) => { let filename = `airquality-data.${fileType.value}`; // Check if response has data - if (response && response.data) { + if (response) { + if (fileType.value === 'csv') { + if (typeof response !== 'string') { + throw new Error('Invalid CSV data format.'); + } + exportData(response, filename, 'text/csv;charset=utf-8;'); + } + if (fileType.value === 'json') { const jsonString = JSON.stringify(response.data); exportData(jsonString, filename, 'application/json'); } - if (fileType.value === 'csv') { - // Convert JSON data to CSV using Papa Parse - const csvData = Papa.unparse(response.data); - exportData(csvData, filename, 'text/csv;charset=utf-8;'); - } - dispatch( updateMainAlert({ message: 'Air quality data download successful', @@ -467,7 +468,10 @@ const ExportData = (props) => { ); return; } - errorMessage = err.response.data.message; + errorMessage = + typeof err.response.data.message === 'string' + ? err.response.data.message + : 'An error occurred while downloading data'; } } else if (err.request) { // Request made but no response @@ -530,7 +534,7 @@ const ExportData = (props) => { startDateTime: roundToStartOfDay(new Date(startDate).toISOString()), endDateTime: roundToEndOfDay(new Date(endDate).toISOString()), sites: sitesList, - devices: getValues(selectedDevices), + device_names: getValues(selectedDevices), airqlouds: getValues(selectedAirqlouds), network: activeNetwork.net_name, datatype: dataType.value,