diff --git a/api/feedback.js b/api/feedback.js index 56a08f91..51f1d0fa 100644 --- a/api/feedback.js +++ b/api/feedback.js @@ -1,4 +1,3 @@ -const { formidablePromise } = require('./_shared/formidablePromise') const formData = require('form-data') const Mailgun = require('mailgun.js') @@ -8,7 +7,7 @@ const { MAILGUN_API_KEY, MAILGUN_DOMAIN } = process.env const mg = mailgun.client({ username: 'discoursio', key: MAILGUN_API_KEY }) export default async function handler(req, res) { - const { contact, subject, message } = await formidablePromise(req) + const { contact, subject, message } = req.body const text = `${contact}\n\n${message}` diff --git a/api/newsletter.js b/api/newsletter.js index 29198971..ec2a88cc 100644 --- a/api/newsletter.js +++ b/api/newsletter.js @@ -1,20 +1,16 @@ -const MG = require('mailgun.js') -const fd = require('form-data') -const mailgun = new MG(fd) +const formData = require('form-data') +const Mailgun = require('mailgun.js') -const mgOptions = { - key: process.env.MAILGUN_API_KEY, - domain: process.env.MAILGUN_DOMAIN, - username: 'discoursio' // FIXME -} +const mailgun = new Mailgun(formData) -const client = mailgun.client(mgOptions) +const { MAILGUN_API_KEY, MAILGUN_DOMAIN } = process.env +const mg = mailgun.client({ username: 'discoursio', key: MAILGUN_API_KEY }) export default async (req, res) => { - const { email } = req.query + const { email } = req.body try { - const response = await client.lists.members.createMember(mgOptions.domain, { + const response = await mg.lists.members.createMember(MAILGUN_DOMAIN, { address: email, subscribed: true, upsert: 'yes' diff --git a/src/components/Discours/Subscribe.tsx b/src/components/Discours/Subscribe.tsx index cc8a817e..f03ca8cd 100644 --- a/src/components/Discours/Subscribe.tsx +++ b/src/components/Discours/Subscribe.tsx @@ -10,7 +10,18 @@ export default () => { const [title, setTitle] = createSignal('') const subscribe = async () => { setTitle(t('...subscribing')) - const r = await fetch(`/api/newsletter?email=${emailElement?.value}`) + + const requestOptions = { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + email: emailElement?.value + }) + } + + const r = await fetch('/api/newsletter', requestOptions) setTitle(r.ok ? t('You are subscribed') : '') }