Fix healthchecks: install curl in backend and frontend images
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
const express = require('express');
|
||||
const authenticate = require('../middleware/auth');
|
||||
const Drawing = require('../models/Drawing');
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
// All routes require authentication
|
||||
router.use(authenticate);
|
||||
|
||||
// List drawings for current user
|
||||
router.get('/', async (req, res) => {
|
||||
try {
|
||||
const drawings = await Drawing.findAll({
|
||||
where: { userId: req.user.id },
|
||||
attributes: ['id', 'name', 'updatedAt'],
|
||||
order: [['updatedAt', 'DESC']],
|
||||
});
|
||||
res.json(drawings);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
res.status(500).json({ error: 'Failed to list drawings' });
|
||||
}
|
||||
});
|
||||
|
||||
// Create new drawing
|
||||
router.post('/', async (req, res) => {
|
||||
try {
|
||||
const { name, canvas_json } = req.body;
|
||||
const drawing = await Drawing.create({
|
||||
name: name || 'Unbenannt',
|
||||
canvas_json: canvas_json || '',
|
||||
userId: req.user.id,
|
||||
});
|
||||
res.status(201).json(drawing);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
res.status(500).json({ error: 'Failed to create drawing' });
|
||||
}
|
||||
});
|
||||
|
||||
// Get single drawing
|
||||
router.get('/:id', async (req, res) => {
|
||||
try {
|
||||
const drawing = await Drawing.findOne({
|
||||
where: { id: req.params.id, userId: req.user.id },
|
||||
});
|
||||
if (!drawing) {
|
||||
return res.status(404).json({ error: 'Drawing not found' });
|
||||
}
|
||||
res.json(drawing);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
res.status(500).json({ error: 'Failed to get drawing' });
|
||||
}
|
||||
});
|
||||
|
||||
// Update drawing
|
||||
router.put('/:id', async (req, res) => {
|
||||
try {
|
||||
const drawing = await Drawing.findOne({
|
||||
where: { id: req.params.id, userId: req.user.id },
|
||||
});
|
||||
if (!drawing) {
|
||||
return res.status(404).json({ error: 'Drawing not found' });
|
||||
}
|
||||
const { name, canvas_json } = req.body;
|
||||
if (name !== undefined) drawing.name = name;
|
||||
if (canvas_json !== undefined) drawing.canvas_json = canvas_json;
|
||||
await drawing.save();
|
||||
res.json(drawing);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
res.status(500).json({ error: 'Failed to update drawing' });
|
||||
}
|
||||
});
|
||||
|
||||
// Delete drawing
|
||||
router.delete('/:id', async (req, res) => {
|
||||
try {
|
||||
const drawing = await Drawing.findOne({
|
||||
where: { id: req.params.id, userId: req.user.id },
|
||||
});
|
||||
if (!drawing) {
|
||||
return res.status(404).json({ error: 'Drawing not found' });
|
||||
}
|
||||
await drawing.destroy();
|
||||
res.json({ message: 'Drawing deleted' });
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
res.status(500).json({ error: 'Failed to delete drawing' });
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user