mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-13 03:13:47 +00:00
wip: get preview data from excel import
This commit is contained in:
@@ -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) => {
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user