oxen-website/pages/api/email.ts

43 lines
1.1 KiB
TypeScript

import { NextApiRequest, NextApiResponse } from 'next';
import base64 from 'base-64';
export default async function handler(
req: NextApiRequest,
res: NextApiResponse,
) {
if (req.method !== 'POST') {
res.status(400).json({
message: 'Email API: Invalid http method. | Only POST is accepted.',
});
}
const email = req.body.email;
const response = await fetch(
`https://api.createsend.com/api/v3.2/subscribers/${process.env.CAMPAIGN_MONITOR_LIST_API_ID}.json`,
{
body: JSON.stringify({
EmailAddress: email,
ConsentToTrack: 'Unchanged',
}),
headers: {
'Content-Type': 'application/json',
Authorization: `Basic ${base64.encode(
`${process.env.CAMPAIGN_MONITOR_API_KEY}:x`,
)}`,
},
method: 'POST',
},
);
if (response.status === 201) {
// console.log(`Email API: ${email} subscribed!`);
res.status(201).json({ email });
} else {
// const result = await response.json();
// console.warn(
// `Email API: | Code: ${result.Code} | Email: ${email} | ${result.Message}`
// );
res.status(400).json({ email });
}
}