Files
werte-next/app/api/werte/route.ts
2026-02-22 22:11:52 +01:00

64 lines
1.8 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server';
import { query } from '@/lib/db';
import { CreateWerteEntry } from '@/types/werte';
const TABLE = 'RXF.Werte_BZG';
// GET - Fetch entries
export async function GET(request: NextRequest) {
try {
const searchParams = request.nextUrl.searchParams;
const limit = parseInt(searchParams.get('limit') || '10', 10);
const sql = `SELECT ID, DATE_FORMAT(Datum, '%Y-%m-%d') as Datum, Zeit, Zucker, Essen, Gewicht, DruckD, DruckS, Puls FROM ${TABLE} ORDER BY Datum DESC, Zeit DESC LIMIT ${limit}`;
const rows = await query(sql);
return NextResponse.json(
{ success: true, data: rows },
{
headers: {
'Cache-Control': 'no-store, no-cache, must-revalidate',
'Pragma': 'no-cache',
'Expires': '0',
},
}
);
} catch (error) {
console.error('Database error:', error);
return NextResponse.json(
{ success: false, error: 'Failed to fetch entries' },
{ status: 500 }
);
}
}
// POST - Create new entry
export async function POST(request: NextRequest) {
try {
const body: CreateWerteEntry = await request.json();
const sql = `INSERT INTO ${TABLE} (Datum, Zeit, Zucker, Essen, Gewicht, DruckS, DruckD, Puls) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`;
const params = [
body.Datum,
body.Zeit,
body.Zucker || null,
body.Essen || null,
body.Gewicht || null,
body.DruckS || null,
body.DruckD || null,
body.Puls || null,
];
const result = await query(sql, params);
return NextResponse.json({ success: true, data: result });
} catch (error) {
console.error('Database error:', error);
return NextResponse.json(
{ success: false, error: 'Failed to create entry' },
{ status: 500 }
);
}
}