V 1.1.0 - Bearbeiten bei Liste geht, auch Löschen.

This commit is contained in:
rxf
2025-09-01 18:47:31 +02:00
parent 90662d8d0b
commit 6466bb2d92
7 changed files with 124 additions and 90 deletions

View File

@@ -2,8 +2,6 @@ import { MongoAPIError, ObjectId } from 'mongodb';
import bcrypt from 'bcrypt';
import { getCollections, update_pflux } from '../db/mongo.js';
export function registerApiRoutes(app, requireLogin) {
const { usersCollection, prop_fluxCollection } = getCollections();
@@ -20,7 +18,7 @@ export function registerApiRoutes(app, requireLogin) {
});
app.post('/api/save', requireLogin, async (req, res) => {
let { espId, sensorNumber, name, description, address } = req.body;
let { espId, sensorNumber, name, description} = req.body;
if (!espId || !sensorNumber) {
return res.json({ error: 'ESP-ID und Sensornummer sind Pflichtfelder' });
}
@@ -30,7 +28,7 @@ export function registerApiRoutes(app, requireLogin) {
id: espId,
name: name || '',
description: description || '',
createdAt: new Date()
lastUpdatedAt: new Date()
};
await update_pflux(sensorNumber, doc)
res.json({ success: true });
@@ -40,24 +38,6 @@ export function registerApiRoutes(app, requireLogin) {
}
});
app.put('/api/update/:id', requireLogin, async (req, res) => {
const { id } = req.params;
let { espId, sensorNumber, name, description, address } = req.body;
if (!espId || !sensorNumber) {
return res.json({ error: 'ESP-ID und Sensornummer sind Pflichtfelder' });
}
sensorNumber = parseInt(sensorNumber, 10);
try {
await prop_fluxCollection.updateOne(
{ _id: new ObjectId(id) },
{ $set: { espId, sensorNumber, name, description, address } }
);
res.json({ success: true });
} catch (err) {
console.error(err);
res.status(500).json({ error: 'Fehler beim Aktualisieren' });
}
});
app.get('/api/list', requireLogin, async (req, res) => {
const { id } = req.query;
@@ -83,7 +63,7 @@ export function registerApiRoutes(app, requireLogin) {
const skip = (page - 1) * limit;
try {
const items = await prop_fluxCollection.find({chip: {$exists: true}})
.sort({ "chip.createdAt": -1 })
.sort({ "chip.lastUpdatedAt": -1 })
.skip(skip)
.limit(limit)
.toArray();
@@ -96,7 +76,7 @@ export function registerApiRoutes(app, requireLogin) {
});
app.delete('/api/delete/:id', requireLogin, async (req, res) => {
await prop_fluxCollection.deleteOne({ _id: new ObjectId(req.params.id) });
await prop_fluxCollection.deleteOne({ _id: parseInt(req.params.id) });
res.json({ success: true });
});
}