Dateien nach "backend/src/tools/kalkulator3d" hochladen
This commit is contained in:
64
backend/src/tools/kalkulator3d/routes.js
Normal file
64
backend/src/tools/kalkulator3d/routes.js
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
// Tool: 3D-Druck-Kalkulator
|
||||||
|
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,
|
||||||
|
image = null, bemerkung = '' } = 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,image,bemerkung)
|
||||||
|
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, image, bemerkung);
|
||||||
|
|
||||||
|
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,
|
||||||
|
image = ex.image, bemerkung = ex.bemerkung } = 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=?,image=?,bemerkung=?,
|
||||||
|
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, image, bemerkung,
|
||||||
|
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