const express = require('express'); const router = express.Router(); const db = require('../database'); // Get all categories router.get('/', (req, res) => { db.all('SELECT * FROM categories ORDER BY name', (err, rows) => { if (err) { console.error(err); res.status(500).json({ error: 'Database error' }); } else { res.json(rows); } }); }); // Get category by ID router.get('/:id', (req, res) => { const { id } = req.params; db.get('SELECT * FROM categories WHERE id = ?', [id], (err, row) => { if (err) { console.error(err); res.status(500).json({ error: 'Database error' }); } else if (!row) { res.status(404).json({ error: 'Category not found' }); } else { res.json(row); } }); }); // Create new category router.post('/', (req, res) => { const { name, description } = req.body; if (!name) { return res.status(400).json({ error: 'Name is required' }); } db.run( 'INSERT INTO categories (name, description) VALUES (?, ?)', [name, description], function(err) { if (err) { console.error(err); res.status(500).json({ error: 'Database error' }); } else { res.status(201).json({ id: this.lastID, name, description }); } } ); }); // Update category router.put('/:id', (req, res) => { const { id } = req.params; const { name, description } = req.body; if (!name) { return res.status(400).json({ error: 'Name is required' }); } db.run( 'UPDATE categories SET name = ?, description = ? WHERE id = ?', [name, description, id], function(err) { if (err) { console.error(err); res.status(500).json({ error: 'Database error' }); } else if (this.changes === 0) { res.status(404).json({ error: 'Category not found' }); } else { res.json({ id: parseInt(id), name, description }); } } ); }); // Delete category router.delete('/:id', (req, res) => { const { id } = req.params; db.run('DELETE FROM categories WHERE id = ?', [id], function(err) { if (err) { console.error(err); res.status(500).json({ error: 'Database error' }); } else if (this.changes === 0) { res.status(404).json({ error: 'Category not found' }); } else { res.json({ message: 'Category deleted successfully' }); } }); }); module.exports = router;