const SENDGRID_API_KEY = process.env.SENDGRID_API_KEY const SENDGRID_URL = 'https://api.sendgrid.com/v3/mail/send' // TODO: move to env const BOOKING_ADMIN_EMAIL = 'tomru@mail.id0.link' const FROM_EMAIL = 'pfadibussle@mail.id0.link' if (!SENDGRID_API_KEY) { throw new Error('NO SENDGRID_API_KEY set!') } if (!SENDGRID_API_KEY) { throw new Error('NO SENDGRID_API_KEY set!') } async function sendMail(data) { const fetchOptions = { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${SENDGRID_API_KEY}`, }, body: JSON.stringify(data), } const response = await fetch(SENDGRID_URL, fetchOptions) if (!repsonse.ok) { throw new Error( `Failed to send booking ${data._id} to booking admin with status ${response.status}: ${response.statusText}` ) } } export async function sendReceivedBookingMail(booking) { const data = { personalizations: [ { to: [{ email: BOOKING_ADMIN_EMAIL }], }, ], from: { email: FROM_EMAIL }, subject: 'Pfadi Bussle - Buchung eingegangen!', content: [ { type: 'text/plain', value: `${JSON.stringify(booking, null, 4)}` }, ], } await sendMail(data) }