connect & newsletter form fixes

This commit is contained in:
bniwredyc 2023-05-11 21:54:05 +02:00
parent 2a16de3ff0
commit b040d5e0c9
3 changed files with 20 additions and 14 deletions

View File

@ -1,4 +1,3 @@
const { formidablePromise } = require('./_shared/formidablePromise')
const formData = require('form-data') const formData = require('form-data')
const Mailgun = require('mailgun.js') 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 }) const mg = mailgun.client({ username: 'discoursio', key: MAILGUN_API_KEY })
export default async function handler(req, res) { 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}` const text = `${contact}\n\n${message}`

View File

@ -1,20 +1,16 @@
const MG = require('mailgun.js') const formData = require('form-data')
const fd = require('form-data') const Mailgun = require('mailgun.js')
const mailgun = new MG(fd)
const mgOptions = { const mailgun = new Mailgun(formData)
key: process.env.MAILGUN_API_KEY,
domain: process.env.MAILGUN_DOMAIN,
username: 'discoursio' // FIXME
}
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) => { export default async (req, res) => {
const { email } = req.query const { email } = req.body
try { try {
const response = await client.lists.members.createMember(mgOptions.domain, { const response = await mg.lists.members.createMember(MAILGUN_DOMAIN, {
address: email, address: email,
subscribed: true, subscribed: true,
upsert: 'yes' upsert: 'yes'

View File

@ -10,7 +10,18 @@ export default () => {
const [title, setTitle] = createSignal('') const [title, setTitle] = createSignal('')
const subscribe = async () => { const subscribe = async () => {
setTitle(t('...subscribing')) 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') : '') setTitle(r.ok ? t('You are subscribed') : '')
} }