Autovervollständigung
This commit is contained in:
51
app/api/ausgaben/autocomplete/route.ts
Normal file
51
app/api/ausgaben/autocomplete/route.ts
Normal file
@@ -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<RowDataPacket[]>(query, params);
|
||||
|
||||
// Extract unique Wo and Was values
|
||||
const woSet = new Set<string>();
|
||||
const wasSet = new Set<string>();
|
||||
|
||||
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 }
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user