import { NEWSLETTER_API_TOKEN, NEWSLETTER_LIST_ID } from '$env/static/private' import type { RequestHandler } from './$types' import { error, json } from '@sveltejs/kit' export const POST = (async ({ request, fetch }) => { const data: { email: string } = await request.json() const { email } = data // No email if (!email) { throw error(400, { message: 'NO_EMAIL' }) } // Invalid email if (!email.match(/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)) { throw error(400, { message: 'INVALID_EMAIL' }) } // return json(email) // Newsletter API request const req = await fetch(`https://emailoctopus.com/api/1.6/lists/${NEWSLETTER_LIST_ID}/contacts`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ api_key: NEWSLETTER_API_TOKEN, email_address: email, }) }) const res = await req.json() console.log('server API response:', res) // Other error if (res && res.status !== 'PENDING') { throw error(400, { message: res.error.code }) } return json({ success: true, message: res.status, }) }) satisfies RequestHandler