27 lines
781 B
TypeScript
27 lines
781 B
TypeScript
import { NextApiRequest, NextApiResponse } from 'next'
|
|
import mailchimp from '@mailchimp/mailchimp_marketing'
|
|
|
|
mailchimp.setConfig({
|
|
apiKey: process.env.MAILCHIMP_API_KEY,
|
|
server: process.env.MAILCHIMP_API_SERVER, // E.g. us1
|
|
})
|
|
|
|
// eslint-disable-next-line import/no-anonymous-default-export
|
|
export default async (req: NextApiRequest, res: NextApiResponse) => {
|
|
const { email } = req.body
|
|
|
|
if (!email) {
|
|
return res.status(400).json({ error: 'Email is required' })
|
|
}
|
|
|
|
try {
|
|
await mailchimp.lists.addListMember(process.env.MAILCHIMP_AUDIENCE_ID, {
|
|
email_address: email,
|
|
status: 'subscribed',
|
|
})
|
|
return res.status(201).json({ error: '' })
|
|
} catch (error) {
|
|
return res.status(500).json({ error: error.message || error.toString() })
|
|
}
|
|
}
|