From 71e38d233aa60470c0e5e3f51979ac11b27caf03 Mon Sep 17 00:00:00 2001 From: Untone Date: Tue, 25 Jun 2024 17:32:32 +0300 Subject: [PATCH] fns-back --- api/feedback.js | 27 +++++++++++++++++++++++++++ api/newsletter.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 api/feedback.js create mode 100644 api/newsletter.js diff --git a/api/feedback.js b/api/feedback.js new file mode 100644 index 00000000..d3d2062e --- /dev/null +++ b/api/feedback.js @@ -0,0 +1,27 @@ +import FormData from 'form-data' +import Mailgun from 'mailgun.js' + +const mailgun = new Mailgun(FormData) +const mg = mailgun.client({ username: 'discoursio', key: process.env.MAILGUN_API_KEY }) + +export default async function handler(req, res) { + const { contact, subject, message } = req.body + + const text = `${contact}\n\n${message}` + + const data = { + from: 'Discours Feedback Robot ', + to: 'welcome@discours.io', + subject, + text, + } + + try { + const response = await mg.messages.create('discours.io', data) + console.log('Email sent successfully!', response) + res.status(200).json({ result: 'great success' }) + } catch (error) { + console.log('Error:', error) + res.status(400).json(error) + } +} diff --git a/api/newsletter.js b/api/newsletter.js new file mode 100644 index 00000000..d964d52c --- /dev/null +++ b/api/newsletter.js @@ -0,0 +1,28 @@ +import FormData from 'form-data' +import Mailgun from 'mailgun.js' + +const mailgun = new Mailgun(FormData) +const mg = mailgun.client({ username: 'discoursio', key: process.env.MAILGUN_API_KEY }) + +export default async (req, res) => { + const { email } = req.body + + try { + const response = await mg.lists.members.createMember('newsletter@discours.io', { + address: email, + subscribed: true, + upsert: 'yes', + }) + + return res.status(200).json({ + success: true, + message: 'Email was added to newsletter list', + response: JSON.stringify(response), + }) + } catch (error) { + return res.status(400).json({ + success: false, + message: error.message, + }) + } +}