41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
const { Router } = require('express');
|
|
const memory = require('../services/memory');
|
|
|
|
const router = Router();
|
|
|
|
router.get('/', async (req, res) => {
|
|
try {
|
|
res.json(await memory.getProjects());
|
|
} catch (err) {
|
|
res.status(500).json({ error: err.message });
|
|
}
|
|
});
|
|
|
|
router.post('/', async (req, res) => {
|
|
const { name, description, colour, icon } = req.body;
|
|
if (!name?.trim()) return res.status(400).json({ error: 'name is required' });
|
|
try {
|
|
res.status(201).json(await memory.createProject({ name: name.trim(), description, colour, icon }));
|
|
} catch (err) {
|
|
res.status(500).json({ error: err.message });
|
|
}
|
|
});
|
|
|
|
router.patch('/:id', async (req, res) => {
|
|
try {
|
|
res.json(await memory.updateProject(req.params.id, req.body));
|
|
} catch (err) {
|
|
res.status(500).json({ error: err.message });
|
|
}
|
|
});
|
|
|
|
router.delete('/:id', async (req, res) => {
|
|
try {
|
|
await memory.deleteProject(req.params.id);
|
|
res.status(204).send();
|
|
} catch (err) {
|
|
res.status(500).json({ error: err.message });
|
|
}
|
|
});
|
|
|
|
module.exports = router; |