From f0018bead374da7bc49689de55d32977d0ffcab8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fe=CC=81lix=20Pe=CC=81ault?= Date: Sun, 25 Dec 2022 16:08:09 +0100 Subject: [PATCH] Return Responses --- src/routes/api/newsletter/+server.ts | 38 ++++++++++------------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/src/routes/api/newsletter/+server.ts b/src/routes/api/newsletter/+server.ts index 1ce6da5..1297d73 100644 --- a/src/routes/api/newsletter/+server.ts +++ b/src/routes/api/newsletter/+server.ts @@ -1,6 +1,5 @@ import { NEWSLETTER_API_TOKEN, NEWSLETTER_LIST_ID } from '$env/static/private' import type { RequestHandler } from './$types' -import { json } from '@sveltejs/kit' export const POST = (async ({ request, fetch }) => { const data: { email: string } = await request.json() @@ -8,15 +7,13 @@ export const POST = (async ({ request, fetch }) => { // No email if (!email) { - return json({ message: 'NO_EMAIL' }) + return new Response(JSON.stringify({ message: 'NO_EMAIL' }), { status: 400 }) } // Invalid email if (!email.match(/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)) { - return json({ message: 'INVALID_EMAIL' }) + return new Response(JSON.stringify({ message: 'INVALID_EMAIL' }), { status: 400 }) } - // return json(email) - // Newsletter API request const req = await fetch(`https://emailoctopus.com/api/1.6/lists/${NEWSLETTER_LIST_ID}/contacts`, { method: 'POST', @@ -26,25 +23,18 @@ export const POST = (async ({ request, fetch }) => { email_address: email, }) }) + const res = await req.json() + console.log('server API response:', res) - try { - if (req.ok) { - const res = await req.json() - console.log('server API response:', res) - - // Other error - if (res && res.status !== 'PENDING') { - return json({ message: res.error.code }) - } - - return new Response(JSON.stringify({ - success: true, - message: res.status, - }), { - status: 200 - }) - } - } catch (err) { - console.error(err) + // Other error + if (res && res.status !== 'PENDING') { + return new Response(JSON.stringify({ message: res.error.code }), { status: 400 }) } + + return new Response(JSON.stringify({ + success: true, + message: res.status, + }), { + status: 200 + }) }) satisfies RequestHandler \ No newline at end of file