42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
// /opt/erp-system/app/api/customers/[id]/contacts/route.ts
|
|
import { NextResponse } from 'next/server';
|
|
import prisma from '../../../../../lib/prisma';
|
|
|
|
export async function POST(request: Request, context: { params: Promise<{ id: string }> }) {
|
|
try {
|
|
const params = await context.params;
|
|
const body = await request.json();
|
|
|
|
const contact = await prisma.customerContact.create({
|
|
data: {
|
|
firstName: body.firstName,
|
|
lastName: body.lastName,
|
|
email: body.email,
|
|
phone: body.phone || null,
|
|
customerId: parseInt(params.id)
|
|
}
|
|
});
|
|
|
|
return NextResponse.json(contact, { status: 201 });
|
|
} catch (error) {
|
|
return NextResponse.json({ error: 'Fehler beim Erstellen' }, { status: 500 });
|
|
}
|
|
}
|
|
|
|
export async function DELETE(request: Request, context: { params: Promise<{ id: string }> }) {
|
|
try {
|
|
const { searchParams } = new URL(request.url);
|
|
const contactId = searchParams.get('contactId');
|
|
|
|
if (!contactId) return NextResponse.json({ error: 'Kontakt-ID fehlt' }, { status: 400 });
|
|
|
|
await prisma.customerContact.delete({
|
|
where: { id: parseInt(contactId) }
|
|
});
|
|
|
|
return NextResponse.json({ success: true });
|
|
} catch (error) {
|
|
return NextResponse.json({ error: 'Löschen fehlgeschlagen' }, { status: 500 });
|
|
}
|
|
}
|