templates2.Landing.Nuxt/server/api/leads.post.ts
w4c-templates b41099ee06
Some checks failed
CI / quality (push) Has been cancelled
chore(template): publish Landing.Nuxt
2026-10-11 23:24:06 +03:00

21 lines
793 B
TypeScript

import { createLead, leadSchema } from '../utils/leads';
import { sendEmail } from '../utils/email';
export default defineEventHandler(async (event) => {
const parsed = leadSchema.safeParse(await readBody(event).catch(() => ({})));
if (!parsed.success) {
throw createError({ statusCode: 400, statusMessage: 'Please enter a valid email address.' });
}
const lead = await createLead(parsed.data);
// Notify the site owner (log provider by default).
await sendEmail(event, {
to: 'owner@example.com',
subject: `New lead: ${lead.email}`,
html: `<p>New ${lead.source} lead.</p><p>${lead.name ?? ''} &lt;${lead.email}&gt;</p><p>${lead.message ?? ''}</p>`,
}).catch((e) => console.error('[email] lead', e));
setResponseStatus(event, 201);
return { ok: true };
});