diff --git a/src/components/molecules/EmailForm.svelte b/src/components/molecules/EmailForm.svelte index 397da17..e3da1b9 100644 --- a/src/components/molecules/EmailForm.svelte +++ b/src/components/molecules/EmailForm.svelte @@ -45,16 +45,16 @@ }) const result: FormStatus = await req.json() formStatus = result - console.log(result) + console.log('SK api response:', result) - // // If successful - // if (formStatus.success) { - // sendEvent('newsletterSubscribe') - // } else { - // // Hide message for errors - // clearTimeout(formMessageTimeout) - // formMessageTimeout = requestAnimationFrame(() => setTimeout(() => formStatus = null, 4000)) - // } + // If successful + if (formStatus.success) { + sendEvent('newsletterSubscribe') + } else { + // Hide message for errors + clearTimeout(formMessageTimeout) + formMessageTimeout = requestAnimationFrame(() => setTimeout(() => formStatus = null, 4000)) + } } } diff --git a/src/routes/api/newsletter/+server.ts b/src/routes/api/newsletter/+server.ts index 4f7070b..ff01efa 100644 --- a/src/routes/api/newsletter/+server.ts +++ b/src/routes/api/newsletter/+server.ts @@ -1,6 +1,6 @@ import { NEWSLETTER_API_TOKEN, NEWSLETTER_LIST_ID } from '$env/static/private' import type { RequestHandler } from './$types' -import { error } from '@sveltejs/kit' +import { error, json } from '@sveltejs/kit' export const POST = (async ({ request, fetch }) => { const data: { email: string } = await request.json() @@ -15,28 +15,27 @@ export const POST = (async ({ request, fetch }) => { throw error(400, { message: 'INVALID_EMAIL' }) } - return new Response(JSON.stringify({ - 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() + // 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 }) - // } + // Other error + if (res && res.status !== 'PENDING') { + throw error(400, { message: res.error.code }) + } - // return new Response(JSON.stringify({ - // success: true, - // message: res.status, - // })) + return json({ + success: true, + message: res.status, + }) }) satisfies RequestHandler \ No newline at end of file