const express = require('express'); const fs = require('fs'); const path = require('path'); const router = express.Router(); const TABLES_DIR = path.join(__dirname, '..', '..', 'data', 'tables'); const NAME_PATTERN = /^[a-z0-9-]+$/; router.get('/:name', (req, res) => { const { name } = req.params; if (!NAME_PATTERN.test(name)) { return res.status(400).json({ error: 'invalid table name' }); } const filePath = path.join(TABLES_DIR, `${name}.json`); fs.readFile(filePath, 'utf8', (err, data) => { if (err) { if (err.code === 'ENOENT') { return res.status(404).json({ error: 'table not found' }); } return res.status(500).json({ error: 'failed to read table' }); } try { res.json(JSON.parse(data)); } catch { res.status(500).json({ error: 'invalid table data' }); } }); }); module.exports = router;