/** * Projects Routes * All routes related to project management */ const express = require('express'); const router = express.Router(); const db = require('../db'); /** * GET /api/projects * Get all projects */ router.get('/', (req, res, next) => { try { const projects = db.getAllProjects(); res.json(projects); } catch (err) { next(err); } }); /** * GET /api/projects/:id * Get a specific project */ router.get('/:id', (req, res, next) => { try { const project = db.getProject(req.params.id); if (!project) { return res.status(404).json({ error: 'Project not found' }); } res.json(project); } catch (err) { next(err); } }); /** * POST /api/projects * Create a new project */ router.post('/', (req, res, next) => { try { const { name, description } = req.body; if (!name || name.trim().length === 0) { return res.status(400).json({ error: 'Project name is required' }); } const project = db.createProject(name.trim(), description || ''); res.status(201).json(project); } catch (err) { next(err); } }); /** * PUT /api/projects/:id * Update a project */ router.put('/:id', (req, res, next) => { try { const { name, description } = req.body; if (!name || name.trim().length === 0) { return res.status(400).json({ error: 'Project name is required' }); } db.updateProject(req.params.id, name.trim(), description || ''); res.json({ success: true }); } catch (err) { next(err); } }); /** * DELETE /api/projects/:id * Delete a project */ router.delete('/:id', (req, res, next) => { try { db.deleteProject(req.params.id); res.json({ success: true }); } catch (err) { next(err); } }); module.exports = router;