36 lines
1.3 KiB
JavaScript
36 lines
1.3 KiB
JavaScript
const fs = require('fs');
|
|
const zlib = require('zlib');
|
|
|
|
const getDataWithinRange = (req, res) => {
|
|
const { tableName, from, to } = req.params;
|
|
const jsonFile = `./data/${tableName}.json.gz`;
|
|
|
|
try {
|
|
// Check if the compressed JSON file exists and load the existing data
|
|
if (fs.existsSync(jsonFile)) {
|
|
const compressedData = fs.readFileSync(jsonFile);
|
|
const decompressedData = zlib.gunzipSync(compressedData);
|
|
const jsonData = JSON.parse(decompressedData);
|
|
|
|
// Filter the data based on the provided date/time range
|
|
const filteredData = jsonData.filter(item => {
|
|
const submittedDateStr = item['Request submitted date'];
|
|
const submittedDate = new Date(submittedDateStr.replace(/-/g, '/')); // Convert to JavaScript Date object
|
|
|
|
// Compare the submittedDate with the from and to dates
|
|
return submittedDate >= new Date(from) && submittedDate <= new Date(to);
|
|
});
|
|
|
|
res.json(filteredData);
|
|
} else {
|
|
// If the file does not exist, return a 404 status code
|
|
res.sendStatus(404);
|
|
}
|
|
} catch (error) {
|
|
console.error(error);
|
|
res.sendStatus(500);
|
|
}
|
|
};
|
|
|
|
module.exports = getDataWithinRange;
|