import type { APIRoute } from "astro"; import { appendToSheet, emailExists } from "../lib/googleSheets"; export const prerender = false; export const POST: APIRoute = async ({ request }) => { try { // 🔹 Leer datos del formulario const formData = await request.formData(); const nombres = formData.get("nombres")?.toString().trim(); const apellidos = formData.get("apellidos")?.toString().trim(); const pais = formData.get("pais")?.toString().trim(); const lugar = formData.get("lugar")?.toString().trim(); const direccion = formData.get("direccion")?.toString().trim(); const telefono = formData.get("telefono")?.toString().trim(); const email = formData.get("email")?.toString().trim(); // 🔹 Validación básica if (!nombres || !apellidos || !telefono || !email) { return Response.redirect("/?error=datos", 303); } const exists = await emailExists(email); if (exists) { return Response.json({ success: false, message: 'El email ya existe en la base de datos', }) } const dataSend = { nombres, apellidos, pais, lugar, direccion, telefono, email }; const emailApiKey = import.meta.env.EMAIL_API_KEY; const valuesForSheets = [ nombres, apellidos, pais, lugar, direccion, telefono, email, new Date().toLocaleString() ]; // 🔹 Enviar a tu backend real const [emailResponse] = await Promise.all([ fetch("http://155.138.215.11:3050/email/send", { method: "POST", headers: { "Content-Type": "application/json", "x-api-key": emailApiKey!, }, body: JSON.stringify({ type: "CENTRO_DEL_REINO_PAZ_Y_JUSTICIA_POSTULACION", data: dataSend, }), }), appendToSheet(valuesForSheets) // Guardar en Google Sheets ]); if (!emailResponse.ok) { return new Response(null, { status: 302, headers: { Location: "/", }, }); } // 🔹 Redirección elegante después de enviar return new Response(null, { status: 302, headers: { Location: "/?success=true", }, }); } catch (error) { return new Response(null, { status: 302, headers: { Location: "/", }, }); } };