21 lines
793 B
TypeScript
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 ?? ''} <${lead.email}></p><p>${lead.message ?? ''}</p>`,
|
|
}).catch((e) => console.error('[email] lead', e));
|
|
|
|
setResponseStatus(event, 201);
|
|
return { ok: true };
|
|
});
|