fixed missing endpoint GET /routes/:id/pois/:id and added json style fileupload

This commit is contained in:
Florian Zumpe
2026-06-17 01:39:50 +02:00
parent 5c85a0194b
commit 09ce7c0605
10 changed files with 380 additions and 50 deletions
+7 -5
View File
@@ -151,10 +151,11 @@ export function listPois(db, routeId) {
}));
}
export function getPoi(db, poiId) {
const row = db.prepare(`SELECT p.route_id AS routeId FROM pois p JOIN routes r ON r.id = p.route_id WHERE p.id = ? AND r.status = 'active'`).get(poiId);
export function getPoi(db, routeId, poiId) {
const row = db.prepare(`SELECT p.id FROM pois p JOIN routes r ON r.id = p.route_id
WHERE p.id = ? AND p.route_id = ? AND r.status = 'active'`).get(poiId, routeId);
if (!row) throw new HttpError(404, 'POI nicht gefunden.');
return listPois(db, row.routeId).find(poi => poi.id === Number(poiId));
return listPois(db, routeId).find(poi => poi.id === Number(poiId));
}
export function createPoi(db, routeId, fields) {
@@ -171,8 +172,9 @@ export function createPoi(db, routeId, fields) {
return listPois(db, routeId).find(poi => poi.id === Number(result.lastInsertRowid));
}
export function updatePoi(db, poiId, fields) {
const existing = db.prepare(`SELECT p.*, r.status FROM pois p JOIN routes r ON r.id = p.route_id WHERE p.id = ?`).get(poiId);
export function updatePoi(db, routeId, poiId, fields) {
const existing = db.prepare(`SELECT p.*, r.status FROM pois p JOIN routes r ON r.id = p.route_id
WHERE p.id = ? AND p.route_id = ?`).get(poiId, routeId);
if (!existing || existing.status !== 'active') throw new HttpError(404, 'POI nicht gefunden.');
const lat = fields.lat == null ? existing.lat : Number.parseFloat(fields.lat);
const lon = fields.lon == null ? existing.lon : Number.parseFloat(fields.lon);