mirror of
https://github.com/karma-riuk/crab-webapp.git
synced 2025-07-05 06:08:13 +02:00
added route to download comment_gen and
code_refinment
This commit is contained in:
34
src/routes/datasets.js
Normal file
34
src/routes/datasets.js
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import { Router } from 'express';
|
||||||
|
import { join } from 'path';
|
||||||
|
import { getProjectPath } from '../utils/paths.js';
|
||||||
|
|
||||||
|
const router = Router();
|
||||||
|
|
||||||
|
// Environment variables for paths (all relative to project root)
|
||||||
|
const DATA_DIR = process.env.DATA_DIR ? getProjectPath(process.env.DATA_DIR) : getProjectPath('data');
|
||||||
|
|
||||||
|
const DATASETS = [
|
||||||
|
"comment_generation",
|
||||||
|
"code_refinement"
|
||||||
|
];
|
||||||
|
|
||||||
|
router.get('/download/:dataset', async (req, res) => {
|
||||||
|
const { dataset } = req.params;
|
||||||
|
const withContext = req.query.withContext ? JSON.parse(req.query.withContext) : false;
|
||||||
|
|
||||||
|
if (!DATASETS.includes(dataset)) {
|
||||||
|
return res.status(400).json({ error: 'Invalid dataset name' });
|
||||||
|
}
|
||||||
|
|
||||||
|
const fileName = `${dataset}_${withContext ? 'with_context' : 'no_context'}.zip`;
|
||||||
|
const filePath = join(DATA_DIR, fileName);
|
||||||
|
|
||||||
|
try {
|
||||||
|
res.download(filePath);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error serving file:', error);
|
||||||
|
res.status(500).json({ error: 'Error serving file' });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
@ -1,4 +1,6 @@
|
|||||||
import { Router } from 'express';
|
import { Router } from 'express';
|
||||||
|
import datasetRoutes from './datasets.js';
|
||||||
|
|
||||||
const router = Router();
|
const router = Router();
|
||||||
|
|
||||||
// Routes
|
// Routes
|
||||||
@ -11,4 +13,7 @@ router.get('/api/hello', (_req, res) => {
|
|||||||
res.json({ message: 'Hello from the backend!' });
|
res.json({ message: 'Hello from the backend!' });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Dataset routes
|
||||||
|
router.use('/datasets', datasetRoutes);
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
11
src/utils/paths.js
Normal file
11
src/utils/paths.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import { fileURLToPath } from 'url';
|
||||||
|
import { dirname, join } from 'path';
|
||||||
|
|
||||||
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
|
const __dirname = dirname(__filename);
|
||||||
|
|
||||||
|
// Get the project root directory (2 levels up from src/utils)
|
||||||
|
export const PROJECT_ROOT = join(__dirname, '../..');
|
||||||
|
|
||||||
|
// Helper function to create paths relative to project root
|
||||||
|
export const getProjectPath = (relativePath) => join(PROJECT_ROOT, relativePath);
|
Reference in New Issue
Block a user