import { BookingError } from "../services/booking-service.js"; import { json, readJson } from "./bookings.js"; export async function handleContact(request, response, service, validateOnly) { if (request.method !== "POST") { response.setHeader("Allow", "POST"); return json(response, 405, { error: { code: "METHOD_NOT_ALLOWED", message: "Bitte POST verwenden.", }, }); } try { const input = await readJson(request); const result = await (validateOnly ? service.validate(input) : service.submit(input)); return json(response, validateOnly ? 200 : 201, result); } catch (error) { return json( response, error instanceof BookingError ? error.status : 500, { error: { code: error instanceof BookingError ? error.code : "INTERNAL_ERROR", message: error instanceof BookingError ? error.message : "Die Kontaktanfrage konnte nicht verarbeitet werden.", }, }, ); } }