From 734dbfe24bc1b1af1d28f714722570a51c46659a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhard=20X=2E=20F=C3=BCrst?= Date: Fri, 27 Feb 2026 20:07:45 +0000 Subject: [PATCH] =?UTF-8?q?Autovervollst=C3=A4ndigung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/ausgaben/autocomplete/route.ts | 51 ++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 app/api/ausgaben/autocomplete/route.ts diff --git a/app/api/ausgaben/autocomplete/route.ts b/app/api/ausgaben/autocomplete/route.ts new file mode 100644 index 0000000..a64b1d6 --- /dev/null +++ b/app/api/ausgaben/autocomplete/route.ts @@ -0,0 +1,51 @@ +import { NextResponse } from 'next/server'; +import { getDbPool } from '@/lib/db'; +import { RowDataPacket } from 'mysql2'; + +// GET /api/ausgaben/autocomplete - Fetch unique Wo and Was values for autocomplete +export async function GET(request: Request) { + try { + const { searchParams } = new URL(request.url); + const typ = searchParams.get('typ'); + + const pool = getDbPool(); + + let query = 'SELECT DISTINCT Wo, Was FROM Ausgaben'; + const params: any[] = []; + + if (typ !== null && typ !== undefined) { + query += ' WHERE TYP = ?'; + params.push(parseInt(typ)); + } + + query += ' ORDER BY Wo, Was'; + + const [rows] = await pool.query(query, params); + + // Extract unique Wo and Was values + const woSet = new Set(); + const wasSet = new Set(); + + rows.forEach((row) => { + if (row.Wo) woSet.add(row.Wo); + if (row.Was) wasSet.add(row.Was); + }); + + const wo = Array.from(woSet).sort(); + const was = Array.from(wasSet).sort(); + + return NextResponse.json({ + success: true, + data: { + wo, + was, + }, + }); + } catch (error) { + console.error('Database error:', error); + return NextResponse.json( + { success: false, error: 'Database error' }, + { status: 500 } + ); + } +}