wip: get preview data from excel import

This commit is contained in:
cv
2023-09-02 14:08:48 +02:00
parent 8d427a6bbe
commit 55ce38f4cd
4 changed files with 75 additions and 11 deletions
@@ -43,6 +43,23 @@ export const dbDownload = async (req, res) => {
});
};
async function justUploadAndParse(file, req, res, options) {
if (!fs.existsSync(file)) {
res.status(500).send({ message: 'Upload failed' });
return;
}
const result = await fileHandler(file);
if ('error' in result && result.error) {
throw new Error(result.message);
} else if ('data' in result && result.message === 'success') {
return result.data;
} else {
throw new Error('Failed parsing, no data');
}
}
/**
* handles file upload
* @param file
@@ -319,6 +336,23 @@ export const postOSC = async (req, res) => {
}
};
// Create controller for POST request to '/ontime/previewExcel'
// Returns -
export async function previewExcel(req, res) {
if (!req.file) {
res.status(400).send({ message: 'File not found' });
return;
}
const options = req.query;
const file = req.file.path;
try {
const data = await justUploadAndParse(file, req, res, options);
res.status(200).send(data);
} catch (error) {
res.status(500).send(error);
}
}
// Create controller for POST request to '/ontime/db'
// Returns -
export const dbUpload = async (req, res) => {
+4
View File
@@ -17,6 +17,7 @@ import {
postSettings,
postUserFields,
postViewSettings,
previewExcel,
} from '../controllers/ontimeController.js';
import {
@@ -40,6 +41,9 @@ router.get('/db', dbDownload);
// create route between controller and '/ontime/db' endpoint
router.post('/db', uploadFile, dbUpload);
// create route between controller and '/ontime/db' endpoint
router.post('/previewExcel', uploadFile, previewExcel);
// create route between controller and '/ontime/settings' endpoint
router.get('/settings', getSettings);