import { NextResponse } from 'next/server'; import { getAufgaben, addAufgabe, getAufgabenCount } from '@/lib/db'; // GET /api/tasks - Aufgaben mit Paginierung und Sortierung abrufen export async function GET(request: Request) { try { const { searchParams } = new URL(request.url); const page = parseInt(searchParams.get('page') || '1'); const limit = parseInt(searchParams.get('limit') || '10'); const sort = searchParams.get('sort') as 'text_asc' | 'text_desc' | 'datum_asc' | 'datum_desc' || 'datum_desc'; const offset = (page - 1) * limit; const aufgaben = await getAufgaben(limit, offset, sort); const total = await getAufgabenCount(); const totalPages = Math.ceil(total / limit); return NextResponse.json({ aufgaben, pagination: { page, limit, total, totalPages } }); } catch (error) { console.error('Fehler beim Abrufen:', error); return NextResponse.json( { error: 'Fehler beim Abrufen der Aufgaben' }, { status: 500 } ); } } // POST /api/tasks - Neue Aufgabe hinzufügen export async function POST(request: Request) { try { const { beschreibung } = await request.json(); if (!beschreibung || typeof beschreibung !== 'string') { return NextResponse.json( { error: 'Beschreibung ist erforderlich' }, { status: 400 } ); } const neueAufgabe = await addAufgabe(beschreibung.trim()); return NextResponse.json(neueAufgabe, { status: 201 }); } catch (error) { console.error('Fehler beim Hinzufügen:', error); return NextResponse.json( { error: 'Fehler beim Hinzufügen der Aufgabe' }, { status: 500 } ); } }