Dicken Dock v1.0.0
This commit is contained in:
57
backend/src/tools/kalkulator3d/routes.js
Normal file
57
backend/src/tools/kalkulator3d/routes.js
Normal file
@@ -0,0 +1,57 @@
|
||||
// Tool: 3D-Druck-Kalkulator
|
||||
// Routen werden unter /api/tools/kalkulator3d/... eingebunden
|
||||
const express = require('express');
|
||||
const db = require('../../db');
|
||||
const { authenticate } = require('../../middleware/auth');
|
||||
const router = express.Router();
|
||||
|
||||
router.get('/', authenticate, (req, res) => {
|
||||
res.json(db.prepare('SELECT * FROM calculations WHERE user_id=? ORDER BY created_at DESC').all(req.user.id));
|
||||
});
|
||||
|
||||
router.post('/', authenticate, (req, res) => {
|
||||
const { name, gramm, stunden, farben,
|
||||
materialpreis_pro_gramm, stromverbrauch_kw, strompreis_pro_kwh,
|
||||
druckerpreis, gesamtdruckstunden, verschleiss_pro_stunde,
|
||||
preis_freundschaft, preis_normal, preis_auftrag } = req.body;
|
||||
if (!name || gramm == null || stunden == null)
|
||||
return res.status(400).json({ error: 'Name, Gramm und Stunden erforderlich' });
|
||||
const r = db.prepare(`INSERT INTO calculations
|
||||
(user_id,name,gramm,stunden,farben,materialpreis_pro_gramm,stromverbrauch_kw,
|
||||
strompreis_pro_kwh,druckerpreis,gesamtdruckstunden,verschleiss_pro_stunde,
|
||||
preis_freundschaft,preis_normal,preis_auftrag)
|
||||
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)`)
|
||||
.run(req.user.id, name, gramm, stunden, farben,
|
||||
materialpreis_pro_gramm, stromverbrauch_kw, strompreis_pro_kwh,
|
||||
druckerpreis, gesamtdruckstunden, verschleiss_pro_stunde,
|
||||
preis_freundschaft, preis_normal, preis_auftrag);
|
||||
res.json(db.prepare('SELECT * FROM calculations WHERE id=?').get(r.lastInsertRowid));
|
||||
});
|
||||
|
||||
router.put('/:id', authenticate, (req, res) => {
|
||||
const ex = db.prepare('SELECT * FROM calculations WHERE id=? AND user_id=?').get(req.params.id, req.user.id);
|
||||
if (!ex) return res.status(404).json({ error: 'Nicht gefunden' });
|
||||
const { name, gramm, stunden, farben,
|
||||
materialpreis_pro_gramm, stromverbrauch_kw, strompreis_pro_kwh,
|
||||
druckerpreis, gesamtdruckstunden, verschleiss_pro_stunde,
|
||||
preis_freundschaft, preis_normal, preis_auftrag } = req.body;
|
||||
db.prepare(`UPDATE calculations SET
|
||||
name=?,gramm=?,stunden=?,farben=?,materialpreis_pro_gramm=?,stromverbrauch_kw=?,
|
||||
strompreis_pro_kwh=?,druckerpreis=?,gesamtdruckstunden=?,verschleiss_pro_stunde=?,
|
||||
preis_freundschaft=?,preis_normal=?,preis_auftrag=?,updated_at=CURRENT_TIMESTAMP
|
||||
WHERE id=? AND user_id=?`)
|
||||
.run(name, gramm, stunden, farben,
|
||||
materialpreis_pro_gramm, stromverbrauch_kw, strompreis_pro_kwh,
|
||||
druckerpreis, gesamtdruckstunden, verschleiss_pro_stunde,
|
||||
preis_freundschaft, preis_normal, preis_auftrag,
|
||||
req.params.id, req.user.id);
|
||||
res.json(db.prepare('SELECT * FROM calculations WHERE id=?').get(req.params.id));
|
||||
});
|
||||
|
||||
router.delete('/:id', authenticate, (req, res) => {
|
||||
const r = db.prepare('DELETE FROM calculations WHERE id=? AND user_id=?').run(req.params.id, req.user.id);
|
||||
if (!r.changes) return res.status(404).json({ error: 'Nicht gefunden' });
|
||||
res.json({ success: true });
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user